有没有办法从.dex文件中获取所有类的列表?

我有一个.dex文件,称之为classes.dex

有没有一种方法可以“读取”其中的内容,classes.dex并获取其中的所有类的列表作为完整的类名,包括其包,com.mypackage.mysubpackage.MyClass例如?

我在考虑com.android.dx.dex.file.DexFile,但是似乎找不到用于检索整个类集的方法。

回答:

您可以将dexlib2库用作独立库(在maven中可用),以读取dex文件并获取类列表。

DexFile dexFile = DexFileFactory.loadDexFile("classes.dex", 19 /*api level*/);

for (ClassDef classDef: dexFile.getClasses()) {

System.out.println(classDef.getType());

}

请注意,类名将采用“ Ljava / lang /

String;”的形式,这就是它们如何存储在dex文件(和Java类文件)中的方式。要进行转换,只需删除第一个和最后一个字母,然后将/替换为即可。

以上是 有没有办法从.dex文件中获取所有类的列表? 的全部内容, 来源链接: utcz.com/qa/418517.html

回到顶部