diff options
author | Ben Gruver <bgruv@google.com> | 2015-09-05 16:10:26 -0700 |
---|---|---|
committer | Ben Gruver <bgruv@google.com> | 2015-09-05 16:11:21 -0700 |
commit | 0c7e7b7ffcc11946a64b3c870c7d4b8c86bf06ca (patch) | |
tree | f3bd16036cbc2bcf61adbe359ebe0dbe85f302c0 /dexlib2/src | |
parent | 05221069a95beaa215465e5c65194082c4f13af9 (diff) | |
download | smali-0c7e7b7ffcc11946a64b3c870c7d4b8c86bf06ca.tar.gz |
Add ability to list methods/fields/types when assembling with smali
This can be useful in analyzing why you are going over the 64k
method/field/type limit
Diffstat (limited to 'dexlib2/src')
-rw-r--r-- | dexlib2/src/main/java/org/jf/dexlib2/writer/DexWriter.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/writer/DexWriter.java b/dexlib2/src/main/java/org/jf/dexlib2/writer/DexWriter.java index 0650ab3c..916147ec 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/writer/DexWriter.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/writer/DexWriter.java @@ -58,6 +58,7 @@ import org.jf.dexlib2.iface.reference.StringReference; import org.jf.dexlib2.iface.reference.TypeReference; import org.jf.dexlib2.util.InstructionUtil; import org.jf.dexlib2.util.MethodUtil; +import org.jf.dexlib2.util.ReferenceUtil; import org.jf.dexlib2.writer.io.DeferredOutputStream; import org.jf.dexlib2.writer.io.DeferredOutputStreamFactory; import org.jf.dexlib2.writer.io.DexDataStore; @@ -196,6 +197,33 @@ public abstract class DexWriter< classSection.getItems().size() * ClassDefItem.ITEM_SIZE; } + @Nonnull + public List<String> getMethodReferences() { + List<String> methodReferences = Lists.newArrayList(); + for (Entry<? extends MethodRefKey, Integer> methodReference: methodSection.getItems()) { + methodReferences.add(ReferenceUtil.getMethodDescriptor(methodReference.getKey())); + } + return methodReferences; + } + + @Nonnull + public List<String> getFieldReferences() { + List<String> fieldReferences = Lists.newArrayList(); + for (Entry<? extends FieldRefKey, Integer> fieldReference: fieldSection.getItems()) { + fieldReferences.add(ReferenceUtil.getFieldDescriptor(fieldReference.getKey())); + } + return fieldReferences; + } + + @Nonnull + public List<String> getTypeReferences() { + List<String> classReferences = Lists.newArrayList(); + for (Entry<? extends TypeKey, Integer> typeReference: typeSection.getItems()) { + classReferences.add(typeReference.getKey().toString()); + } + return classReferences; + } + public void writeTo(@Nonnull DexDataStore dest) throws IOException { this.writeTo(dest, MemoryDeferredOutputStream.getFactory()); } |