アプリのランタイム パフォーマンスは、ローカルテストとフィールドテストに分けられます。これらの両方の領域で得られる結果と指標は異なります。結果自体が決定的である限り、その差異は許容されます。
フィールドテスト
フィールド テストは、実際のユーザーが実際の環境でアプリを使用する際のパフォーマンスを把握するのに役立ちます。これは重要な領域であり、フィールドでのアプリのパフォーマンスを理解するうえで役立ちます。Google Play Vitals や Firebase Performance Monitoring などのツールを使用して、ユーザーからフィールド指標を取得できます。
AndroidX Tracing ライブラリを使用してトレース ポイントを追加できます。これにより、フィールド指標により多くのコンテキストと分析情報を得ることができます。
ApplicationStartInfo
と ApplicationExitInfo
を使用して、アプリの起動と終了に関する詳細情報をユーザーから取得することもできます。
AndroidX JankStats ライブラリを使用すると、遅いフレームとドロップされたフレームの集計とレポートが可能になり、詳細な分析が可能になります。
ローカルテスト
アプリのランタイム パフォーマンスをローカルでテストするために、ベンチマーク ライブラリが用意されています。ユーザーフロー全体のパフォーマンスをテストするために使用できる macrobenchmark ライブラリと、アプリまたはライブラリのホットループ パフォーマンスを分析するために使用できる microbenchmark ライブラリに分かれています。
すべてのパフォーマンス テストは物理デバイスで実行する必要があります。これは、測定するパフォーマンスがデバイスで発生している実際のパフォーマンスであることを確認する唯一の方法です。ランタイム パフォーマンス テストの結果は、実行するデバイスとデバイスの負荷によって異なります。
アプリケーションのパフォーマンスが低下する可能性があります。回帰を回避するには、パフォーマンス テストを頻繁に実行することが重要です。理想的なシナリオでは、新しい機能が追加されるたびに、またはコードがメインブランチにマージされるたびに、アプリのベンチマークが行われます。パフォーマンス モニタリングの最低限の要件は、リリース候補版をベンチマークし、主要なユーザー ジャーニーで起動時間とフレーム タイミングが低下していないことを確認することです。可能な限りベンチマークを実行することをおすすめします。たとえば、機能をメインブランチに統合する前や、ナイトリー ビルドでベンチマークを実行します。
結果を使用する
パフォーマンス テストは継続的なプロセスです。パフォーマンス テストの結果を、経時的に比較できるように保存することをおすすめします。
パフォーマンス テストの結果は、いくつかの方法で使用できます。
- パフォーマンスの改善 - 測定結果を使用してパフォーマンスの改善に優先順位を付ける
- 回帰の回避 - 新しいリリースでパフォーマンスの低下が発生しないようにする
- 本番環境のモニタリング - 開発中に確認できなかった問題があるかどうかを把握する
Android ランタイム パフォーマンス テストの詳細については、アプリのパフォーマンスに関するガイドをご覧ください。