パフォーマンスを検査する

パフォーマンスを検査することで、アプリで何が起こっているかを理解し、想定どおりであることを確認できます。

Android には、アプリのパフォーマンスを検査するために使用できるツールがいくつか用意されています。最初は、検査の際には一度に一つの領域に集中することをおすすめします。たとえば、次のような領域です。

  • アプリの起動
  • 遅いレンダリング(ジャンク)
  • 画面遷移とナビゲーション イベント
  • 長時間の実行
  • I/O やネットワーキングなどのバックグラウンド処理

あるいは、アプリのワークフローのクリティカル ユーザー ジャーニーを検査することもできます。これにより、パフォーマンスが期待どおりでない領域を総合的に把握できます。

パフォーマンスの検査には、主に手動と自動の 2 つの方法があります。新しい領域を検査する際は、通常、手動デバッグから始めます。

手動検査

アプリのどの領域を検査するかが決まれば、さまざまなツールを使用して何が起こっているかを正確に特定できます。

Android 9 以降を搭載したデバイスでパフォーマンスを検査するための最も包括的なツールは、Perfetto です。Perfetto では、可能な限り詳細なトレース情報が提供されます。強力なフィルタを使用することで、必要に応じて詳細レベルを調整できます。Android デバイスからトレースをキャプチャする方法について詳しくは、クイックスタート: Android でトレースを記録するのガイドをご覧ください。

Android Studio に組み込まれている Android プロファイラを使用してもアプリのパフォーマンスに関する有用な分析情報を取得できます。その際、詳細レベルをご利用のアプリに限定することもできますし、バージョン 9 より前の Android を搭載したデバイスで実行することも可能です。

詳細については、システム トレースの概要、またはパフォーマンス デバッグに関する詳細な動画シリーズをご覧ください。

自動テスト

手動検査に加えて、自動テストをセットアップし、パフォーマンス データを収集して集計できます。これは、ユーザーに実際に何が表示されているかを理解し、いつ回帰が発生する可能性があるかを特定することに役立ちます。アプリの自動パフォーマンス テストのセットアップについて詳しくは、アプリのベンチマークを行うをご覧ください。

アプリ起動のパフォーマンス

パフォーマンスを検査およびモニタリングしてアプリの改善をサポートするツールが複数用意されています。

Benchmark ライブラリを使用してローカルでパフォーマンスを把握する

  • Macrobenchmark ライブラリは、起動、UI の操作、アニメーションのような上位レベルのエンドユーザー インタラクションの測定に利用できます。
  • Microbenchmark ライブラリは、より粒度の細かいアプリ固有の状況のパフォーマンスを分析するのに利用できます。

本番環境のパフォーマンスを把握する

  • Android Vitals は、各種のパフォーマンス指標が所定のしきい値を超えたときに通知するため、アプリのパフォーマンス改善に役立ちます。
  • Firebase Performance SDK は、アプリのパフォーマンスに関するさまざまな指標を収集します。たとえば、この SDK を使用すると、ユーザーがアプリを開いてからアプリが応答可能になるまでの時間を測定して、起動時の潜在的なボトルネックを特定できます。

Android Studio を使用してローカルでプロファイルする

  • Android Studio では、システム トレースまたはスタック サンプリング トレースの記録と確認が可能です。
  • Android Studio を使用してトレースを記録できます。詳細は、パフォーマンス デバッグの動画シリーズをご覧ください。
  • Android 用のネイティブ スタック サンプリング ツールである Simpleperf を使用して、Android アプリおよび Android 上で実行されているネイティブ プロセスをプロファイリングします。Android 上の Java コードと C++ コードの両方をプロファイリングできます。

高度なプロファイリング ツール: Perfetto のトレース

参考情報