ior*_*vic 46 java android class dx dex
我有一个.dex文件,称之为classes.dex.
有没有办法"读取"它的内容classes.dex并获得所有类的列表作为完整的类名,包括它们的包com.mypackage.mysubpackage.MyClass,为exmaple?
我在考虑com.android.dx.dex.file.DexFile,但我似乎无法找到一个检索整个类的方法.
jcs*_*ica 105
使用dexdumpAndroid-SDK中的命令行工具.它在$ANDROID_HOME/build-tools/<some_version>/dexdump.它打印的信息比您想要的要多得多.我没有找到一种方法来dexdump减少冗长,但是
dexdump classes.dex | grep 'Class descriptor'
Run Code Online (Sandbox Code Playgroud)
应该管用.
Jes*_*eke 15
您可以将dexlib2库用作独立库(在maven中可用),以读取dex文件并获取类列表.
DexFile dexFile = DexFileFactory.loadDexFile("classes.dex", 19 /*api level*/);
for (ClassDef classDef: dexFile.getClasses()) {
System.out.println(classDef.getType());
}
Run Code Online (Sandbox Code Playgroud)
请注意,类名称的格式为"Ljava/lang/String;",它们是如何存储在dex文件中的(以及java类文件中).要转换,只需删除第一个和最后一个字母,然后替换/.
UVM*_*UVM 11
您可以使用dex2jar将转换.dex为的实用程序.jar.
http://code.google.com/p/dex2jar/
然后,您可以提取该.jar文件.
此外,您可以使用此框架
从 baksmali v2.2 开始,baksmali 具有执行此操作的功能。
baksmali list classes my.dex 将打印给定 dex 文件中所有类的列表。
参考:可从此处下载:https : //github.com/JesusFreke/smali。
| 归档时间: |
|
| 查看次数: |
27604 次 |
| 最近记录: |