私は.dexファイルを持っています、それを呼んでclasses.dexください。
その内容を「読み取り」、classes.dexそこにあるすべてのクラスのリストを、パッケージを含む完全なクラス名として取得する方法はありcom.mypackage.mysubpackage.MyClassますか?
について考えてcom.android.dx.dex.file.DexFileいましたが、クラスのセット全体を取得する方法が見つからないようです。
dexdumpAndroid-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ファイルを抽出できます。
また、このフレームワークを使用できます