はじめに
Android Studioも頻繁にアップデートを重ねており、新機能も盛りだくさんになってきましたね。
Composeで便利な機能なども豊富になってきた印象ですが、今回はビルドが遅いと感じた時の調査に便利なBuild Analyzer機能を紹介しようと思います。
Build Analyzerの参照方法
Build Analyzerはプロジェクトのビルドパフォーマンスを検査する為の機能になります。
この機能を使用することで、ビルド時の警告やどのタスクがどれくらいのパフォーマンスを占めているのか、などビルドが遅いと感じる原因を探し出すことが可能です。
注: Build AnalyzerはAndroid Studio Chipmunk以降と、Android Gradleプラグイン4.0.0以降を使用している必要があります。
Build AnalyzerはBuildタブより参照可能です。
Build Analyzerで使用する機能は主に、【Task】と【Warnings】の2つである認識です。
以下でそれぞれ解説していきます。
Build Analyzer:Taskの参照方法
Taskを参照するには、ドロップダウンから【Task】を選択するか、【Tasks impacting build duration】から表示します。
Taskを表示させると以下のような表示に切り替わります。

プロジェクトでAGP8.0以降を使用している場合は以下のようにデフォルトでカテゴリ毎にグループ化される為、ビルド時間に影響を与えているタスクを探し出しやすくなるので、オススメです。

Build Analyzer:Warningsの参照方法
Warningsを参照するには、ドロップダウンから【Warnings】を選択するか、【All Warnings】を選択します。

警告には主に5種類存在しています。
- Always run tasks: 主に宣言手順に誤りがあると判断されたタスクが表示されます。
- Task setup issues: 主にタスクにおいて出力と同じディレクトリが宣言されている場合に表示されます。
- Non-incremental annotation processor: 対象タスクが非増分実行されたものがこちらの警告に表示されます。
- Configuration cache: キャッシュが有効になっていないタスクがこの警告で表示されます。
- Check Jetifier: enableJetifierがgradle.properties上で設定されている場合に表示されます。
以上の5種類になります。
上記警告の中でまずは、【Always run tasks】、【Configuration cache】、【Check Jetifier】を修正するのがわかりやすくて良いと思います。
Always run tasksに表示されている警告は主に、タスクの入力と出力を正しく宣言していないケースが多いようです。
対象プラグインに対して警告が出ている場合はアップデートを行い、以下を参考に入出力を調整することで修正可能です。
Configuration cacheに警告が出ている場合は対象タスクのキャッシュを有効にする必要があります。
対象タスクにキャッシュを保持する互換性がある場合はBuild Analyzer上からキャッシュを有効にすることができますので、有効にすることで改善可能です。
Check Jetifierはご説明の通り、enableJetifierが有効になっていると表示される警告ですが、古いプロジェクトだとよく有効になったままになっていることが多い印象ですね。
AndroidXへの移行は数年前の話であり、サードパーティ製のライブラリも多くの場合がAndroidXへの移行が済んでいると思われますので、このフラグが不要なケースがほとんどだと思います。
enableJetifierを有効にしていると上記のような警告が表示されます。
上記スクショ上の【Run Jetifer check】から本当にこのフラグが必要かどうかを調べ、不要な場合は削除してしまいましょう。
以上になります。
さいごに
ビルドが遅いと効率がどんどん落ちていくので、定期的にチェックがオススメです。