这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -91,4 +91,84 @@ public int size() {
}
};
}

public Set<String> getStrings() {
final int stringCount = dexBuf.getStringCount();

return new FixedSizeSet<String>() {
@Override
public String readItem(int index) {
return dexBuf.getString(index);
}

@Override
public int size() {
return stringCount;
}
};
}

public Set<String> getTypes() {
final int typeCount = dexBuf.getTypeCount();

return new FixedSizeSet<String>() {
@Override
public String readItem(int index) {
return dexBuf.getType(index);
}

@Override
public int size() {
return typeCount;
}
};
}

public Set<String> getProtos() {
final int protoCount = dexBuf.getProtoCount();

return new FixedSizeSet<String>() {
@Override
public String readItem(int index) {
return dexBuf.getProto(index);
}

@Override
public int size() {
return protoCount;
}
};
}

public Set<String> getFields() {
final int fieldCount = dexBuf.getFieldCount();

return new FixedSizeSet<String>() {
@Override
public String readItem(int index) {
return dexBuf.getField(index);
}

@Override
public int size() {
return fieldCount;
}
};
}

public Set<String> getMethods() {
final int methodCount = dexBuf.getMethodCount();

return new FixedSizeSet<String>() {
@Override
public String readItem(int index) {
return dexBuf.getMethod(index);
}

@Override
public int size() {
return methodCount;
}
};
}
}
27 changes: 27 additions & 0 deletions dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBuffer.java
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,10 @@ public String getString(int stringIndex) {
return ret;
}

public int getStringCount() {
return stringCount;
}

@Nullable
public String getOptionalType(int typeIndex) {
if (typeIndex == -1) {
Expand All @@ -268,6 +272,21 @@ public String getType(int typeIndex) {
return getString(stringIndex);
}

public int getTypeCount() {
return typeCount;
}

@Nonnull
public String getProto(int typeIndex) {
int protoOffset = getProtoIdItemOffset(typeIndex);
int stringIndex = readSmallUint(protoOffset);
return getString(stringIndex);
}

public int getProtoCount() {
return protoCount;
}

@Nonnull
public String getField(int fieldIndex) {
int fieldOffset = getFieldIdItemOffset(fieldIndex);
Expand All @@ -285,6 +304,10 @@ public String getField(int fieldIndex) {
return sb.toString();
}

public int getFieldCount() {
return fieldCount;
}

@Nonnull
public String getMethod(int methodIndex) {
int methodOffset = getMethodIdItemOffset(methodIndex);
Expand Down Expand Up @@ -317,6 +340,10 @@ public String getMethod(int methodIndex) {
return sb.toString();
}

public int getMethodCount() {
return methodCount;
}

@Nonnull
public String getReference(int referenceType, int referenceIndex) {
switch (referenceType) {
Expand Down