@Nullable public String getOptionalString(int stringIndex) { if (stringIndex == -1) { return null; } return getString(stringIndex); }
@Nonnull public String getString() { return dexFile.getString(stringIndex); }
@Nonnull @Override public String getName() { return dexFile.getString(dexFile.readSmallUint(methodIdItemOffset + MethodIdItem.NAME_OFFSET)); }
public static String getReferenceAnnotation(@Nonnull DexBackedDexFile dexFile, int stringIndex, boolean quote) { try { String string = dexFile.getString(stringIndex); if (quote) { string = String.format("\"%s\"", StringUtils.escapeString(string)); } return String.format("string_id_item[%d]: %s", stringIndex, string); } catch (Exception ex) { ex.printStackTrace(System.err); } return String.format("string_id_item[%d]", stringIndex); }
@Nonnull @Override public String getName() { return dexFile.getString(dexFile.readSmallUint(getMethodIdItemOffset() + MethodIdItem.NAME_OFFSET)); }
@Nonnull public String getType(int typeIndex) { int typeOffset = getTypeIdItemOffset(typeIndex); int stringIndex = readSmallUint(typeOffset); return getString(stringIndex); }
@Override public String getName() { return dexFile.getString(nameIndex); }
@Nullable public String getOptionalString(int stringIndex) { if (stringIndex == -1) { return null; } return getString(stringIndex); }
@Nonnull @Override public String getName() { return dexFile.getString(dexFile.readSmallUint(fieldIdItemOffset + FieldIdItem.NAME_OFFSET)); }
@Nonnull @Override public String getName() { return dexFile.getString(dexFile.readSmallUint(fieldIdItemOffset + FieldIdItem.NAME_OFFSET)); }
public static String getReferenceAnnotation(@Nonnull DexBackedDexFile dexFile, int stringIndex, boolean quote) { try { String string = dexFile.getString(stringIndex); if (quote) { string = String.format("\"%s\"", StringUtils.escapeString(string)); } return String.format("string_id_item[%d]: %s", stringIndex, string); } catch (Exception ex) { ex.printStackTrace(System.err); } return String.format("string_id_item[%d]", stringIndex); }
@Nonnull @Override public String getName() { return dexFile.getString(dexFile.readSmallUint(getFieldIdItemOffset() + FieldIdItem.NAME_OFFSET)); }
@Nonnull @Override public String getName() { return dexFile.getString(dexFile.readSmallUint(getFieldIdItemOffset() + FieldIdItem.NAME_OFFSET)); }
@Nonnull @Override public String getName() { return dexFile.getString(dexFile.readSmallUint(getMethodIdItemOffset() + MethodIdItem.NAME_OFFSET)); }
@Nonnull @Override public String getName() { return dexFile.getString(dexFile.readSmallUint(getMethodIdItemOffset() + MethodIdItem.NAME_OFFSET)); }
@Nonnull @Override public String getName() { return dexFile.getString(dexFile.readSmallUint(getFieldIdItemOffset() + FieldIdItem.NAME_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); }
@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); }
@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); }
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); }