包括的な改善
Android Gradle プラグイン(AGP)は、Android アプリのビルドに使用されます。多くのパフォーマンス向上ツールは、新しいバージョンの AGP に依存しています。最新の改善を利用するには、アプリで最新バージョンの AGP を使用する必要があります。
評価 推奨事項
AGP 7.2 以前(0 ポイント)
多くのパフォーマンス ツールが使用できないか古い。

7.2 より前の AGP バージョンでは、ベースライン プロファイルと起動プロファイルはサポートされていません。圧縮ツールと最適化ツールも古く、最新のパフォーマンス改善は提供されていません。これは、アプリの起動とランタイムのパフォーマンスに大きな影響を与える機会を逃すことになります。

パフォーマンス ツールのサポートを改善するため、新しいバージョンの AGP に緊急にアップグレードしてください。

新しいバージョンの AGP にアップグレードすると、最新のパフォーマンス ツールを利用できるようになります。これにより、アプリのパフォーマンスとユーザー満足度を高めることができます。
新しいバージョンの AGP へのアップグレードについては、AGP アップグレード アシスタントのガイダンスをご覧ください。

AGP 7.3(1 ポイント)
パフォーマンスに大きな影響を与えるツールのサポートは非常に限定的です。

Android Gradle プラグイン(AGP)7.3 では、ベースライン プロファイルの基本的なサポートが提供されています。ベースライン プロファイルは機能しますが、このアプリではその機能を最大限に活用できません。また、このバージョンでは起動プロファイルはサポートされていません。圧縮ツールと最適化ツールも古く、最新のパフォーマンス改善に対応していません。これは、アプリの起動時と実行時にパフォーマンスを改善する機会を逃すことになります。

パフォーマンス ツールのサポートを改善するため、新しいバージョンの AGP にアップグレードします。

7 から 8 へのメジャー バージョンのアップグレードは大変ですが、パフォーマンスの観点から投資する価値があります。新しいバージョンの AGP にアップグレードすると、最新のパフォーマンス ツールを利用できるようになります。これにより、起動時と実行時のパフォーマンスが大幅に向上します。これにより、アプリのパフォーマンスとユーザー満足度を高めることができます。
新しいバージョンの AGP へのアップグレードについては、AGP アップグレード アシスタントのガイダンスをご覧ください。

AGP 7.4 ~ 8.1(5 ポイント)
影響の大きいパフォーマンス ツールのサポートが限定的。

Android Gradle プラグイン(AGP)バージョン 7.4 ~ 8.1 はベースライン プロファイルをサポートしています。AGP 8.0 以降では、専用の Gradle プラグインでベースライン プロファイルを使用できます。起動プロファイルは AGP 8.2 まではサポートされていません。圧縮ツールと最適化ツールも古く、最新のパフォーマンス改善は提供されていません。

できるだけ早く AGP の新しいバージョンにアップグレードしてください。

7 から 8 へのメジャー バージョンのアップグレードは大変ですが、パフォーマンスの観点から投資する価値があります。新しいバージョンの AGP にアップグレードすると、最新のパフォーマンス ツールを利用できるようになります。これにより、アプリの起動と実行時のパフォーマンスを改善し、ユーザー満足度を高めることができます。
新しいバージョンの AGP へのアップグレードについては、AGP アップグレード アシスタントのガイダンスをご覧ください。

AGP 8.2 ~ 8.5(15 ポイント)
パフォーマンスに最も大きな影響を与えるツールが利用可能になりました。

ベースライン プロファイルと起動プロファイルは、Android Gradle プラグインのバージョン 8.2 以降を使用している場合に完全に利用できます。ベースライン プロファイル Gradle プラグインを使用することもできます。また、R8 の最適化による内部的な改善も最近行われており、大きな影響があります。新しいバージョンの AGP にアップグレードすると、新しいバージョンの R8 も導入されるため、起動時と実行時のパフォーマンスが向上します。

AGP の最新リリースをご確認ください。

新しいバージョンの AGP では、最新のパフォーマンス ツールを使用してアプリを最新の状態に保つことができます。これにより、アプリのパフォーマンスとユーザー満足度を高めることができます。アプリの起動とランタイムのパフォーマンスは、R8、ベースライン プロファイル、DEX レイアウトの最適化の裏側の改善によって改善できます。

AGP 8.6 以降(20 ポイント)
影響の大きいパフォーマンス ツールのサポートを完全に利用可能

このアプリは AGP の最新バージョンを使用しているため、最新のパフォーマンス ツールを最大限に活用できます。R8 による内部的な改善により、ベースライン プロファイルDex レイアウトの最適化が完全にサポートされています。これらのツールを使用して、アプリのパフォーマンスとユーザー満足度を高めてください。

この調子でがんばりましょう。

最新の AGP リリースを常に把握し、アプリで常に最新のパフォーマンス ツールを使用できるようにします。起動プロファイルが正しく設定され、ベースライン プロファイルが最も関連性の高いユーザー ジャーニーをカバーしていることを確認します。また、R8 構成が意図したとおりに機能していることも確認します。アプリのランタイム パフォーマンスを改善する方法については、全体的なパフォーマンス ガイダンスをご覧ください。

包括的な改善
R8 コンパイラは、多くの領域でパフォーマンスを向上させます。圧縮と最適化の手法を適用することで、アプリのサイズ、起動時間、ランタイム レンダリング、メモリ使用量、クラッシュ、ANR などが改善されます。これらの改善を最大限に活用するには、アプリで R8 をフルモードで使用してコードを圧縮し、最適化する必要があります。
評価 推奨事項
有効になっていない(0 ポイント)
このアプリは、パフォーマンスの大幅な改善を逃しています。

R8 によるコードの圧縮と最適化を使用しないと、アプリのパフォーマンスを改善する大きな機会を逃すことになります。内部的な改善の多くは、R8 が有効になっている場合にのみ利用できます。

R8 を緊急に有効にして、パフォーマンスを大幅に改善してください。

R8 最適化はできるだけ早く有効にしてください。これにより、パフォーマンスが大幅に向上します。その後、もう一度評価を受けて、より詳しいガイダンスをご確認ください。

互換モードまたは主要な例外(-dontoptimize、-dontshrink)(5 ポイント)
最適化を無効にすることは、アプリのパフォーマンスを改善する大きな機会を逃すことです。

このアプリのランタイム パフォーマンスは十分に最適化されていません。これは、アプリのパフォーマンスを改善する大きな機会を逃すことになります。

R8 最適化を有効にしてパフォーマンスの可能性を解き放つ。

R8 最適化をできるだけ早く有効にし、-dontoptimize と -dontshrink の例外を削除します。これにより、DEX レイアウトの最適化などの他の最適化を有効にすることもできます。R8 を完全モードで有効にしたら、もう一度評価を受けて、詳細なガイダンスをご確認ください。

R8 フルモード、圧縮、最適化、リソース圧縮(20 ポイント)
高いパフォーマンスの可能性を解き放つ。

R8 の最適化を有効にすると、最適化、難読化、コード圧縮によってパフォーマンスを向上させることができます。このアプリは、Dex レイアウトの最適化を利用して、起動パフォーマンスをさらに改善できます。

保持ルールが最新の状態であることを確認します。

アプリの進化に伴い、アプリが引き続き完全に最適化されるように、R8 の保持ルールを更新する必要があります。パフォーマンスの改善に取り組む際は、他の分野に重点を置きます。起動プロファイルと DEX レイアウトの最適化をご覧になりましたか?

起動時のパフォーマンス

ベースライン プロファイルにより、初回起動からのコード実行速度が向上し、新しいアプリのインストールやアプリのアップデートごとにパフォーマンスが向上します。このプロファイルに基づく最適化(PGO)を使用すると、起動の最適化、レンダリングの問題の軽減、エンドユーザーの全体的なランタイム パフォーマンスの向上がアプリの初回起動時から可能になります。ベースライン プロファイルが作成され、アプリの起動に使用されていますか?

評価 推奨事項
なし / 不明(0 ポイント)
ベースライン プロファイルがないことは、大きな機会損失につながります。

ベースライン プロファイルにより、含まれるコードパスの解釈とジャストインタイム(JIT)コンパイルの手順を行う必要がなくなるため、初回起動からのコード実行速度が約 30% 向上します。アプリにベースライン プロファイルがあるかどうかを確認し、ベースライン プロファイルがない場合はその技術を採用してください。

ベースライン プロファイルを緊急に導入する。

ベースライン プロファイルにより、含まれるコードパスの解釈とジャストインタイム(JIT)コンパイルの手順を行う必要がなくなるため、初回起動からのコード実行速度が約 30% 向上します。これらの対策を講じて、再度評価を受けてスコアを更新する方法については、ガイダンスをご覧ください。

手動で、1 回または頻繁に(2 ポイント)
ベースライン プロファイルを最新の状態に保つには、自動化が鍵となります。

ベースライン プロファイルを手動で更新すると、簡単に見落としてしまう可能性があります。特に、1 回限りの場合はアプリの起動とランタイム パフォーマンスのパフォーマンス向上を最大限に高めるには、リリースごとにベースライン プロファイルを新しく生成する必要があります。

ベースライン プロファイルの作成の自動化に投資する。

ベースライン プロファイルの作成を自動化するには、ベースライン プロファイル Gradle プラグインを使用することをおすすめします。バリアントやリリースビルドなど、特定のビルドタイプに対して新しいプロファイルを自動的に生成するように構成できます。Dex レイアウトの最適化を利用する場合は、プロファイルの生成を自動化する必要があります。

リリースごとに手動で(5 ポイント)
ベースライン プロファイルを最新の状態に保つには、自動化が鍵となります。

ベースライン プロファイルを手動で更新すると、簡単に見落としてしまう可能性があります。古いベースライン プロファイルでは、アプリの起動や実行時のパフォーマンスを改善することはできません。

ベースライン プロファイルの作成の自動化に投資する。

ベースライン プロファイルの作成を自動化するには、ベースライン プロファイル Gradle プラグインを使用することをおすすめします。バリアントやリリースビルドなど、特定のビルドタイプに対して新しいプロファイルを自動的に生成するように構成できます。

リリースごとに自動化(15 ポイント)
自動化により、ベースライン プロファイルを最新の状態に保つことができます。

最新のベースライン プロファイルは、アプリの起動とランタイムのパフォーマンスを改善するうえで効果的な方法です。リリースごとに自動的にこれを行うことは、高品質のベースライン プロファイルを確実に得るためのほぼ完璧な方法です。

ベースライン プロファイルのカバレッジを高く保つ。夜間プロファイル生成を検討してください。

ベースライン プロファイルは、最新の状態に保たれている場合にのみ有用です。問題を早期に発見し、リリースが必要なときにプロファイルの生成が正常に機能するように、夜間に生成することを検討してください。ベースライン プロファイルの作成をさらに自動化する方法については、ベースライン プロファイル Gradle プラグインをご覧ください。

ナイトリー ビルドとリリースの自動化(20 ポイント)
これは、ベースライン プロファイルを最新の状態に保つ最善の方法です。

夜間およびリリースごとに生成されるベースライン プロファイルは最新の状態に保たれ、リリースがカットされるたびにアプリの起動とランタイムのパフォーマンスを改善するために使用できます。このような準備により、アプリのパフォーマンスが向上します。よくできました。

ベースライン プロファイルのサポート範囲の改善を継続。

このアプリのベースライン プロファイルの生成の自動化をマスターしました。引き続きがんばってください。ベースライン プロファイルでカバーされているユーザー ジャーニーも、アプリの成長に伴って定期的に更新し、拡張するようにしてください。これにより、ベースライン プロファイルが常に最新の状態になり、アプリの起動とランタイムのパフォーマンスを向上させるために使用できるようになります。

起動時のパフォーマンス

ベースライン プロファイルを使用すると、機能の使用中に JIT コンパイルを実行する必要がなくなります。これにより、ランタイム レンダリングのパフォーマンスが向上します。クリティカル ユーザー ジャーニーのベースライン プロファイルを追加すると、アプリの全体的なパフォーマンスを改善できます。

ベースライン プロファイルでカバーされるユーザー ジャーニーの数はどれくらいですか?
評価 推奨事項
なし / 不明(0 ポイント)
ランタイム パフォーマンスの向上を逃す。

クリティカル ユーザー ジャーニーにベースライン プロファイルを適用することで、アプリのランタイム パフォーマンスを改善できます。ベースライン プロファイルをアプリの起動にのみ適用すると、ランタイム パフォーマンスとユーザー満足度を改善する絶好の機会を逃すことになります。

ベースライン プロファイルを緊急に追加して、ランタイム パフォーマンスを改善してください。

アプリの起動とクリティカル ユーザー ジャーニーにベースライン プロファイルを採用します。これらは、多くのユーザーが使用し、アプリの機能にとって不可欠なジャーニーです。理解度チェックをもう一度受け直して、スコアの更新と詳細なガイダンスを確認してください。

アプリの起動 +1 ユーザー ジャーニー(5 ポイント)
ランタイム パフォーマンスの向上を逃す。

クリティカル ユーザー ジャーニーにベースライン プロファイルを適用することで、アプリのランタイム パフォーマンスを改善できます。アプリの起動時や単一のユーザー ジャーニーにのみベースライン プロファイルを採用すると、ランタイム パフォーマンスとユーザー満足度を改善する絶好の機会を逃すことになります。

ベースライン プロファイルをより多くのユーザー ジャーニーに適用。

より多くのユーザー ジャーニーにベースライン プロファイルを適用します。これにより、アプリのランタイム パフォーマンスとユーザー満足度が継続的に向上します。理解度チェックをもう一度受け直して、スコアの更新と詳細なガイダンスを確認してください。

アプリの起動 + 2 つのユーザー ジャーニー(10 ポイント)
ベースライン プロファイルにより、パフォーマンスがさらに向上します。

より多くのユーザー ジャーニーにベースライン プロファイルを適用することで、このアプリのランタイム パフォーマンスとユーザー満足度を改善できる可能性があります。アプリのランタイム パフォーマンスは、重要なユーザー ジャーニーにベースライン プロファイルを適用することで改善できます。
アプリの起動時や一部のユーザー ジャーニーにのみベースライン プロファイルを適用すると、ランタイム パフォーマンスとユーザー満足度を改善する大きな機会を逃すことになります。

ベースライン プロファイルをさらに多くのユーザー ジャーニーに適用します。

アプリの機能にとって重要なユーザー ジャーニーをさらに特定し、それらに対してベースライン プロファイルを採用します。これにより、アプリのランタイム パフォーマンスとユーザー満足度が継続的に向上します。理解度チェックをもう一度受け直して、スコアの更新と詳細なガイダンスを確認してください。

アプリの起動 +3 ユーザー ジャーニー(15 ポイント)
優れたベースライン プロファイルのサポート範囲。

ベースライン プロファイルを使用してアプリの起動といくつかのクリティカル ユーザー ジャーニーをカバーすることは、パフォーマンスとユーザー満足度を向上させるうえで効果的な方法です。ベースライン プロファイルでカバーできるユーザー ジャーニーは他にもあります。ただし、このアプリはベースライン プロファイルのカバレッジに関してすでに優れた状態です。この調子でがんばりましょう。

ベースライン プロファイルのカバレッジを拡大して、パフォーマンスの可能性を最大限に引き出します。

ベースライン プロファイルの導入を促進し続けます。コードサイズとアプリの全体的な実行時のパフォーマンスを改善するために、R8 の採用を強化することを検討してください。また、Dex レイアウトの最適化を採用して、アプリの起動パフォーマンスをさらに改善することも検討してください。

起動時のパフォーマンス

起動プロファイルは、ビルドシステムによって使用され、APK の DEX ファイル内のコードのレイアウトを改善することで、含まれるクラスとメソッドをさらに最適化します。起動プロファイルを使用すると、通常、ベースライン プロファイルのみを使用する場合よりもアプリの起動が 15 ~ 30% 高速になります。

アプリは 起動プロファイルを使用して DEX レイアウトを最適化していますか?
評価 推奨事項
未使用 / 不明(0 ポイント)
アプリの起動時のパフォーマンスを改善する大きな機会を逃す。

起動プロファイルは、ビルドシステムによって使用され、APK の DEX ファイル内のコードのレイアウトを改善することで、含まれるクラスとメソッドをさらに最適化します。起動プロファイルを使用すると、通常、ベースライン プロファイルのみを使用する場合よりもアプリの起動が 15 ~ 30% 高速になります。
起動プロファイルは、アプリの起動パフォーマンスを改善するために使用されます。起動プロファイルによる Dex レイアウトの最適化を採用していないため、このアプリはアプリの起動パフォーマンスとユーザー満足度を改善する絶好の機会を逃しています。

起動プロファイルの導入に緊急に投資する。

起動プロファイルで DEX レイアウトの最適化を採用します。これにより、アプリの起動パフォーマンスとユーザー満足度が向上します。Dex レイアウトの最適化を使用するには、AGP 8.2 以降を使用し、最小化/R8 を有効にする必要があります。

メインのエントリ ポイント(10 ポイント)
メイン エントリ ポイントの起動パフォーマンスを最適化。

メインのエントリ ポイントに起動プロファイルを使用すると、アプリの起動パフォーマンスを大幅に改善できます。アプリのパフォーマンスが向上したことで、ユーザー エクスペリエンスが向上しています。この調子でがんばりましょう。

エントリ ポイントを増やすことを検討する。

アプリのメイン エントリ ポイントは、起動プロファイルでカバーする最も重要なエントリ ポイントです。このアプリに複数のエントリ ポイントがある場合は、起動プロファイルでそれらをカバーすることも検討してください。通知や補助的なランチャー アイコンなどです。

ほとんどのエントリ ポイント(15 ポイント)
最も使用頻度の高いエントリ ポイントをカバーすることは、アプリの起動パフォーマンスを改善するための優れた方法です。

起動時の操作を最適化すると、ユーザー満足度が向上します。ほとんどのエントリ ポイントに起動プロファイルを採用することで、このアプリはツールの観点から起動パフォーマンスの面で優れた状態になっています。この調子でがんばりましょう。

その他のパフォーマンス改善を調査し、回帰を防ぐ。

ベースライン プロファイル Gradle プラグインを使用して Dex レイアウトの最適化タスクを自動化し、リリースビルドごとに起動プロファイルが自動的に生成されるようにします。
Macrobenchmarks を使用して、アプリの起動パフォーマンスのモニタリングを継続します。

Compose の導入
最新バージョンの Jetpack Compose では、以前のバージョンよりもパフォーマンスが向上しています。これらの改善を利用するには、アプリで Compose の最新バージョンを使用する必要があります。アプリは Jetpack Compose の最新の安定版を使用していますか?
評価 推奨事項
Compose を使用していない(5 ポイント)
Compose の使用を開始する

Jetpack Compose は、ネイティブ UI をビルドする際に推奨される Android の最新ツールキットです。Android の UI 開発を簡素化し、加速します。少ないコード、パワフルなツール、直感的な Kotlin API を使用してアプリをすぐに動かすことができます。

UI を Jetpack Compose に移行する

Jetpack Compose では、既存の View システムとの相互運用が可能です。UI の一部を Compose に移行し、Compose が提供するメリットを活用する方法はいくつかあります。移行戦略に関するドキュメントを確認するか、Codelab で実践的なプロジェクトを確認してください。

Compose 2022.10.00 ~ 2023.10.01(1 ポイント)
多くの新機能とパフォーマンスの向上が利用できません。

古いバージョンの Jetpack Compose を使用していると、新機能や改善点がすべて利用できません。Jetpack Compose は、デベロッパーがアップグレードのタイミングを決定できるように、Android システムからバンドル解除されるように設計されています。

できるだけ早く新しいバージョンにアップグレードしてください

パフォーマンスは引き続き最優先事項であり、アップグレードすることで、全体的なパフォーマンスが大幅に向上します。スクロール パフォーマンスが約 20%、起動時間が 12%、テキスト コンポーザブルのパフォーマンスが 22% 向上しています。Jetpack Compose 2024.01.00 に追加された改善点について詳しくは、リリース ブログ投稿をご覧ください。

Compose 2024.01.00 ~ 2024.08.00(2 ポイント)
最新の Jetpack Compose でパフォーマンスが向上し、新機能が追加されました

Jetpack Compose の最新バージョンを採用していないと、美しい UI の構築に役立つバグの修正、パフォーマンスの向上、新機能のすべてを利用できません。

最新バージョンにアップグレードしてパフォーマンスをさらに改善する

最新の Compose バージョンにアップグレードすることで、ベンチマークの最初のピクセルまでの時間のパフォーマンスがさらに 17% 向上しました。また、このバージョンでは、不要なコンポジションを大幅に削減できる新しい強力なスキップ モードをデフォルトで有効にしました。さらに、インジケーション API を改善してリップルの遅延作成を可能にし、内部 Compose 表現をより効率的なデータ構造に最適化し、より効率的なコードの生成を開始しました。

リリース内容について詳しくは、Compose 2024.09.00 のブログ投稿をご覧ください。

最新の安定版 Compose(5 ポイント)
おめでとうございます。このアプリは、最新の安定版 Compose リリースに対応しています。

最新バージョンの Compose を使用すると、Compose の新しいバージョンごとにパフォーマンスが向上します。

この調子でいきましょう

最新の安定版 Compose リリースを常に最新の状態に保ち、パフォーマンスの向上とバグの修正を継続的に利用してください。この件について、早急にご対応いただく必要はありません。

モニタリングと最適化
FullyDrawnReporter または ReportDrawn() を使用して reportFullyDrawn() を呼び出すと、アプリがユーザーによる操作の準備ができたことをシステムに知らせることができます。 これにより、TTFD 指標にアクセスできるようになります。この指標はベンチマークに使用でき、起動プロファイルの作成を改善できます。
評価 推奨事項
reportFullyDrawn() / FullyDrawnReporter を使用していない(0 ポイント)
内部的な改善とパフォーマンス指標を利用できなくなる。

アプリが使用可能になったタイミングを報告しないと、アプリの起動時間を詳しく把握する機会を逃すことになります。この API を使用すると、Android システムでより詳細なパフォーマンス指標が提供され、完全に描画されるまでの時間をモニタリングできます。
アプリで遅延読み込みが行われており、初期表示にすべてのリソースが含まれていない場合(アプリがネットワークから画像を取得している場合など)は、アプリが使用可能になるまで reportFullyDrawn() の呼び出しを遅らせ、リストの入力をベンチマーク時間の一部として含めるようにすることをおすすめします。また、Android フレームワークが、起動プロファイルの測定を停止するポイントを把握することも重要です。

reportFullyDrawn() / FullyDrawnReporter を採用して、より詳細なパフォーマンス指標を取得。

FullyDrawnReporter API を使用して、アプリの使用準備が整ったことを報告します。これにより、より詳細なパフォーマンス指標が利用可能になり、完全に描画されるまでの時間のモニタリングが可能になります。

reportFullyDrawn() / FullyDrawnReporter を使用する(5 ポイント)
アプリの起動に関するより詳細なパフォーマンス指標を取得可能に。

このアプリは FullyDrawnReporter API を使用して、アプリの使用準備が整ったことを報告しています。これにより、より詳細なパフォーマンス指標が利用可能になり、Time to Fully Drawn のモニタリングが可能になります。

TTFD の情報を使用して、アプリの起動パフォーマンスを把握し、改善します。

Android フレームワークと Google Play Console には、完全に描画されるまでの時間に関する詳細なパフォーマンス指標が用意されています。これらの指標を使用して、アプリの起動パフォーマンスを把握し、改善します。
Macrobenchmarks を使用する場合は、トレースを検査して、アプリの起動中に正確に何が起こっているかを確認することもできます。

静的アプリのパフォーマンス スコア

(0/7 件の質問に回答)