@Nullable public String getOptionalType(int typeIndex) { if (typeIndex == -1) { return null; } return getType(typeIndex); }
String t = dexFile.getType(i);
@Nonnull @Override public String readItem(final int index) { return dexFile.getType(dexFile.readUshort(paramListStart + 2*index)); } @Override public int size() { return parameterCount; }
@Override @Nonnull public String get(int index) { return dexFile.getType(dexFile.readUshort(interfacesOffset + 4 + (2*index))); }
@Nonnull @Override public String readItem(final int index) { return dexFile.getType(dexFile.readUshort(paramListStart + 2*index)); } @Override public int size() { return parameterCount; }
@Nonnull @Override public String getDefiningClass() { return dexFile.getType(dexFile.readUshort(methodIdItemOffset + MethodIdItem.CLASS_OFFSET)); }
@Nonnull @Override public String readItem(final int index) { return dexFile.getType(dexFile.readUshort(paramListStart + 2*index)); } @Override public int size() { return parameterCount; }
@Nonnull @Override public String getReturnType() { return dexFile.getType(dexFile.readSmallUint(protoIdItemOffset + ProtoIdItem.RETURN_TYPE_OFFSET)); }
@Nonnull @Override public String getType() { return dexFile.getType(dexFile.readSmallUint(classDefOffset + ClassDefItem.CLASS_OFFSET)); }
@Nonnull @Override public String getReturnType() { int protoIdItemOffset = getProtoIdItemOffset(); return dexFile.getType(dexFile.readSmallUint(protoIdItemOffset + ProtoIdItem.RETURN_TYPE_OFFSET)); }
@Nonnull @Override public String getReturnType() { return dexFile.getType(dexFile.readSmallUint(getProtoIdItemOffset() + ProtoIdItem.RETURN_TYPE_OFFSET)); }
@Nonnull public static String getReferenceAnnotation(@Nonnull DexBackedDexFile dexFile, int typeIndex) { try { String typeString = dexFile.getType(typeIndex); return String.format("type_id_item[%d]: %s", typeIndex, typeString); } catch (Exception ex) { ex.printStackTrace(System.err); } return String.format("type_id_item[%d]", typeIndex); }
@Nonnull @Override public String getDefiningClass() { return dexFile.getType(dexFile.readUshort(fieldIdItemOffset + FieldIdItem.CLASS_OFFSET)); }
@Override @Nonnull public String get(int index) { return dexFile.getType(dexFile.readUshort(interfacesOffset + 4 + (2*index))); }
@Nonnull @Override public String getType() { return dexFile.getType(dexFile.readUshort(fieldIdItemOffset + FieldIdItem.TYPE_OFFSET)); }
@Nonnull public static String asString(@Nonnull DexBackedDexFile dexFile, int classIndex) { int offset = dexFile.getClassDefItemOffset(classIndex); int typeIndex = dexFile.readSmallUint(offset + CLASS_OFFSET); return dexFile.getType(typeIndex); }
@Nonnull @Override public String getType() { return dexFile.getType(dexFile.readUshort(getFieldIdItemOffset() + FieldIdItem.TYPE_OFFSET)); }
@Nonnull public static String asString(@Nonnull DexBackedDexFile dexFile, int fieldIndex) { int fieldOffset = dexFile.getFieldIdItemOffset(fieldIndex); int classIndex = dexFile.readUshort(fieldOffset + CLASS_OFFSET); String classType = dexFile.getType(classIndex); int typeIndex = dexFile.readUshort(fieldOffset + TYPE_OFFSET); String fieldType = dexFile.getType(typeIndex); int nameIndex = dexFile.readSmallUint(fieldOffset + NAME_OFFSET); String fieldName = dexFile.getString(nameIndex); return String.format("%s->%s:%s", classType, fieldName, fieldType); }
public static String asString(DexBackedDexFile dexFile, int fieldIndex) { int fieldOffset = dexFile.getFieldIdItemOffset(fieldIndex); int classIndex = dexFile.readUshort(fieldOffset + CLASS_OFFSET); String classType = dexFile.getType(classIndex); int typeIndex = dexFile.readUshort(fieldOffset + TYPE_OFFSET); String fieldType = dexFile.getType(typeIndex); int nameIndex = dexFile.readSmallUint(fieldOffset + NAME_OFFSET); String fieldName = dexFile.getString(nameIndex); return String.format("%s->%s:%s", classType, fieldName, fieldType); }
@Nonnull public static String asString(@Nonnull DexBackedDexFile dexFile, int methodIndex) { int methodOffset = dexFile.getMethodIdItemOffset(methodIndex); int classIndex = dexFile.readUshort(methodOffset + CLASS_OFFSET); String classType = dexFile.getType(classIndex); int protoIndex = dexFile.readUshort(methodOffset + PROTO_OFFSET); String protoString = ProtoIdItem.asString(dexFile, protoIndex); int nameIndex = dexFile.readSmallUint(methodOffset + NAME_OFFSET); String methodName = dexFile.getString(nameIndex); return String.format("%s->%s%s", classType, methodName, protoString); }