Is there a way to get a list of all classes from a .dex file? Is there a way to get a list of all classes from a .dex file? android android

Is there a way to get a list of all classes from a .dex file?


Use the command line tool dexdump from the Android-SDK. It's in $ANDROID_HOME/build-tools/<some_version>/dexdump. It prints a lot more info than you probably want. I didn't find a way to make dexdump less verbose, but

dexdump classes.dex | grep 'Class descriptor'

should work.


You can use the dexlib2 library as a standalone library (available in maven), to read the dex file and get a list of classes.

DexFile dexFile = DexFileFactory.loadDexFile("classes.dex", 19 /*api level*/);for (ClassDef classDef: dexFile.getClasses()) {    System.out.println(classDef.getType());}

Note that the class names will be of the form "Ljava/lang/String;", which is how they are stored in the dex file (and in a java class file). To convert, just remove the first and last letter, and replace / with .


You can use dex2jar utility that will convert .dex to .jar.

http://code.google.com/p/dex2jar/

Then you can extract that .jar file.

Also , you can use this framework

Dedexer