私は.dex
ファイルを持っています、それを呼んでclasses.dex
ください。
その内容を「読み取り」、classes.dex
そこにあるすべてのクラスのリストを、パッケージを含む完全なクラス名として取得する方法はありcom.mypackage.mysubpackage.MyClass
ますか?
について考えてcom.android.dx.dex.file.DexFile
いましたが、クラスのセット全体を取得する方法が見つからないようです。
dexdump
Android-SDKのコマンドライン ツールを使用します。です$ANDROID_HOME/build-tools/<some_version>/dexdump
。おそらく必要以上に多くの情報を出力します。dexdump
冗長にする方法は見つかりませんでしたが、
dexdump classes.dex | grep 'Class descriptor'
動作するはずです。
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クラスファイル)に格納される方法です。変換するには、最初と最後の文字を削除し、/を。に置き換えます。
dex2jar
に変換するユーティリティを.dex
使用できます.jar.
http://code.google.com/p/dex2jar/
その後、その.jar
ファイルを抽出できます。
また、このフレームワークを使用できます