public int getHeaderSize() { return dexFile.readSmallUint(HEADER_SIZE_OFFSET); }
public int getTypeCount() { return dexFile.readSmallUint(TYPE_COUNT_OFFSET); }
public int getFieldCount() { return dexFile.readSmallUint(FIELD_COUNT_OFFSET); }
public int getClassCount() { return dexFile.readSmallUint(CLASS_COUNT_OFFSET); }
public int getClassOffset() { return dexFile.readSmallUint(CLASS_START_OFFSET); }
public int getChecksum() { return dexFile.readSmallUint(CHECKSUM_OFFSET); }
public int getTypeOffset() { return dexFile.readSmallUint(TYPE_START_OFFSET); }
public int getMethodOffset() { return dexFile.readSmallUint(METHOD_START_OFFSET); }
public int getMapOffset() { return dexFile.readSmallUint(MAP_OFFSET); }
public int getProtoCount() { return dexFile.readSmallUint(PROTO_COUNT_OFFSET); }
public int getMethodCount() { return dexFile.readSmallUint(METHOD_COUNT_OFFSET); }
public int getStringCount() { return dexFile.readSmallUint(STRING_COUNT_OFFSET); }
public int getStringOffset() { return dexFile.readSmallUint(STRING_START_OFFSET); }
public int getProtoOffset() { return dexFile.readSmallUint(PROTO_START_OFFSET); }
public int getFieldOffset() { return dexFile.readSmallUint(FIELD_START_OFFSET); }
@Override public void annotateItem(@Nonnull AnnotatedBytes out, int itemIndex, @Nullable String itemIdentity) { int stringDataOffset = dexFile.readSmallUint(out.getCursor()); try { String stringValue = dexFile.getString(itemIndex); out.annotate(4, "string_data_item[0x%x]: \"%s\"", stringDataOffset, StringUtils.escapeString(stringValue)); return; } catch (Exception ex) { System.err.print("Error while resolving string value at index: "); System.err.print(itemIndex); ex.printStackTrace(System.err); } out.annotate(4, "string_id_item[0x%x]", stringDataOffset); } };
@Override public void annotateSection(@Nonnull AnnotatedBytes out) { out.moveTo(sectionOffset); int mapItemCount = dexFile.readSmallUint(out.getCursor()); out.annotate(4, "size = %d", mapItemCount); super.annotateSectionInner(out, mapItemCount); } };
@Override protected void annotateItem(@Nonnull AnnotatedBytes out, int itemIndex, @Nullable String itemIdentity) { int itemType = dexFile.readUshort(out.getCursor()); out.annotate(2, "type = 0x%x: %s", itemType, ItemType.getItemTypeName(itemType)); out.annotate(2, "unused"); int size = dexFile.readSmallUint(out.getCursor()); out.annotate(4, "size = %d", size); int offset = dexFile.readSmallUint(out.getCursor()); out.annotate(4, "offset = 0x%x", offset); }
@Override protected void annotateItem(@Nonnull AnnotatedBytes out, int itemIndex, @Nullable String itemIdentity) { int stringIndex = dexFile.readSmallUint(out.getCursor()); out.annotate(4, StringIdItem.getReferenceAnnotation(dexFile, stringIndex)); } };
@Override public void annotateItem(@Nonnull AnnotatedBytes out, int itemIndex, @Nullable String itemIdentity) { int classIndex = dexFile.readUshort(out.getCursor()); out.annotate(2, "class_idx = %s", TypeIdItem.getReferenceAnnotation(dexFile, classIndex)); int protoIndex = dexFile.readUshort(out.getCursor()); out.annotate(2, "proto_idx = %s", ProtoIdItem.getReferenceAnnotation(dexFile, protoIndex)); int nameIndex = dexFile.readSmallUint(out.getCursor()); out.annotate(4, "name_idx = %s", StringIdItem.getReferenceAnnotation(dexFile, nameIndex)); } };