有没有办法从.dex文件中获取所有类的列表?
我有一个.dex
文件,称之为classes.dex
。
有没有一种方法来“读取”该类的内容,并获得所有类的列表,作为完整的类名,包括它们的包, com.mypackage.mysubpackage.MyClass
,例如?
我正在考虑com.android.dx.dex.file.DexFile
,但我似乎无法find检索一整套类的方法。
您可以使用dexlib2库作为独立库( maven中可用 )来读取dex文件并获取类的列表。
DexFile dexFile = DexFileFactory.loadDexFile("classes.dex", 19 /*api level*/); for (ClassDef classDef: dexFile.getClasses()) { System.out.println(classDef.getType()); }
请注意,类名称的forms是“Ljava / lang / String;”,这是如何将它们存储在dex文件(以及java类文件)中。 要转换,只需删除第一个和最后一个字母,并replace/。
使用Android-SDK中的命令行工具dexdump
。 它在$ANDROID_HOME/build-tools/<some_version>/dexdump
。 它打印了比你想要的更多的信息。 我没有find让dexdump
不那么冗长的方法,但是
dexdump classes.dex | grep 'Class descriptor'
应该pipe用。
baksmali有function可以从baksmali v2.2开始。
baksmali list classes my.dex
将打印给定的dex文件中的所有类的列表。
- MapView呈现,瓷砖缺less中心的“x”
- Android gradle build错误:(9,0)未findGradle DSL方法:'compile()'。
- FloatingActionButton与文本,而不是图像
- AsyncTask onPostExecute永远不会被调用
- Android Studio – 如何增加分配的堆大小
- 在Android Webview中,我可以修改网页的DOM吗?
- 错误:执行任务失败:app:transformResourcesWithMergeJavaResForDebug'
- 当应用程序被终止时,Android后台服务正在重新启动
- 什么在TtsService可以解释缺乏onUtteranceCompleted()playEarcon()?