34

私は、dex メソッドのカウント制限に達している Android アプリに取り組んでいます。パッケージごとにグループ化されたメソッド数を表示する簡単な方法はありますか? メソッドの合計数を取得できますが、アプリには複数のコンポーネントがあり、どのコンポーネントがこれに最も大きく貢献しているかを把握しようとしています。

4

6 に答える 6

22

これにより、各パッケージ階層がメソッド数にどれだけ貢献しているかがわかります。結果には、そのディレクトリ/パッケージおよびすべてのサブディレクトリ/パッケージ内のすべてのクラスが含まれます。

baksmali blah.apk -o out
cd out
find * -type d -print -exec sh -c "smali {} -o {}/classes.dex && sh -c \"dexdump -f {}/classes.dex | grep method_ids_size\"" \;

このわずかに変更されたバージョンは、サブディレクトリ/サブパッケージを含まず、その特定のディレクトリ/パッケージ内のクラスのみを対象としていることを除いて、同様です。

baksmali blah.apk -o out
cd out
find * -type d -print0 | xargs -0 -I{} sh -c "echo {} && find {} -maxdepth 1 -name \"*.smali\" -print0 | xargs -r -0 smali -o {}/classes.dex"
find -name "*.dex" -print -exec sh -c "dexdump -f {} | grep method_ids_size" \;
于 2013-06-13T23:05:24.970 に答える