apkanalyzerコマンドを使ってAPKの情報を取得する
この記事は Android Advent Calendar 2017 の6日目の記事です。
APK AnalyzerのGUI版はAndroidStudio2.2からAndroidStudio上で使えてました。
Analyze Your Build with APK Analyzer | Android Studio
Android Studio includes an APK Analyzer that provides immediate insight into the composition of your APK after the…developer.android.com
Android Studio includes an APK Analyzer that provides immediate insight into the composition of your APK after the…developer.android.com
それが、いつの間にかコマンドラインからも使えるようになってました。
apkanalyzer | Android Studio
apkanalyzer is included in the Android SDK Tools package and located atandroid_sdk/tools/bin/apkanalyzer. Alternatively…developer.android.com
apkanalyzer is included in the Android SDK Tools package and located atandroid_sdk/tools/bin/apkanalyzer. Alternatively…developer.android.com
apkanalyzerコマンドの使い方
簡単な使い方をいくつか紹介したいと思います。
実行ファイルは <android_sdk_path>/tools/bin/apkanalyzer にあります。
APKファイルサイズを取得
$ apkanalyzer -h apk file-size <apk_file_path>
455.9KB
-h
をつけると人が読みやすい感じに出力してくれます。
Permissionの一覧を取得する
$ apkanalyzer manifest permissions <apk_file_path>
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_NETWORK_STATE
ライブラリが追加してるPermission含まれるので、自分で追加してないものも確認できます。
メソッドリファレンス数を取得
$ apkanalyzer dex references <apk_file_path>
classes.dex 26849
64K問題もあるので、簡単に調べられるのはありがたいです。
簡単な使い方としてはこんな感じになります。ドキュメント見ればだいたい分かるかなと思います。
Dangerから使う
コマンドラインだけの紹介だけだと面白くないので、これをDangerから使います。
Dangerについての詳細について省略しますが、ザックリ言うと、CIからPull Requestに対して処理をして、コメントをつけたりラベルをつけたりできます。
Dangerからapkanalyzerを使うプラグインを作ってみました。
使い方等をGitHubのほうを見ていただければ。
apkanalyzerを実行した結果をPull Requestのコメントに投稿します。下のような感じです。
今のところ、ファイルサイズとPermission一覧とメソッドリファレンス数のみに対応しています。他に対応してほしいものあれば、IssueなりPull Requestなりをください。暇を見て対応しますので。
まとめ
apkanalyzerコマンド便利。Danger便利。