apkanalyzerコマンドを使ってAPKの情報を取得する

Kenji Abe
4 min readDec 5, 2017

--

この記事は Android Advent Calendar 2017 の6日目の記事です。

APK AnalyzerのGUI版はAndroidStudio2.2からAndroidStudio上で使えてました。

それが、いつの間にかコマンドラインからも使えるようになってました。

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便利。

--

--

Kenji Abe

Programmer / Gamer / Google Developers Expert for Android, Kotlin / @STAR_ZERO