7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Android】ビルドが遅い原因をBuild Analyzerで探す

Posted at

はじめに

Android Studioも頻繁にアップデートを重ねており、新機能も盛りだくさんになってきましたね。
Composeで便利な機能なども豊富になってきた印象ですが、今回はビルドが遅いと感じた時の調査に便利なBuild Analyzer機能を紹介しようと思います。

Build Analyzerの参照方法

Build Analyzerはプロジェクトのビルドパフォーマンスを検査する為の機能になります。
この機能を使用することで、ビルド時の警告やどのタスクがどれくらいのパフォーマンスを占めているのか、などビルドが遅いと感じる原因を探し出すことが可能です。

注: Build AnalyzerはAndroid Studio Chipmunk以降と、Android Gradleプラグイン4.0.0以降を使用している必要があります。

Build AnalyzerはBuildタブより参照可能です。

スクリーンショット 2023-06-04 10.38.05.png

Build Analyzerで使用する機能は主に、【Task】と【Warnings】の2つである認識です。
以下でそれぞれ解説していきます。

Build Analyzer:Taskの参照方法

Taskを参照するには、ドロップダウンから【Task】を選択するか、【Tasks impacting build duration】から表示します。

スクリーンショット 2023-06-04 10.56.23.png

Taskを表示させると以下のような表示に切り替わります。

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

Build Analyzer:Warningsの参照方法

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

スクリーンショット 2023-06-04 10.56.23.png
上記を選択すると、以下のようなページが表示されます。

警告には主に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への移行が済んでいると思われますので、このフラグが不要なケースがほとんどだと思います。

スクリーンショット 2023-06-04 11.40.19.png

enableJetifierを有効にしていると上記のような警告が表示されます。
上記スクショ上の【Run Jetifer check】から本当にこのフラグが必要かどうかを調べ、不要な場合は削除してしまいましょう。

以上になります。

さいごに

ビルドが遅いと効率がどんどん落ちていくので、定期的にチェックがオススメです。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?