このページでは、パフォーマンス指標の測定に使用できるツールについて説明します。
起動時間
起動タイミングをプロファイリングするには、Simpleperf のドキュメントを使用します。config.yaml
ファイルに検索するイベントを含めます。config.yaml
は次のようになります。
stop_event: <logcat log message which will terminate log collection after reboot> events: event1_name: <pattern that matches log message> event2_ ...
一部のデバイスでは、時計を起動してから最初の数秒間、間違った時刻が表示されることがあります。bootanalyze ツールにはすぐに使用できる時刻調整機能が用意されていますが、config.yaml
で任意の時刻調整パターンを指定することもできます。起動時間の最適化では、ブートローダー、デバイス カーネル、I/O 調整、ブート アニメーション、SELinux ポリシーなどのコンポーネントを使用して、起動時間を改善する方法について説明します。
アプリの起動時間
ユーザーは、アプリに対して読み込みの速さと応答性の高さを期待しています。 アプリの起動時間では、起動プロセスの内部構造の詳細と、起動パフォーマンスをプロファイリングして最適化する方法について説明します。
ユーザー インターフェース
ユーザー インターフェース(UI)のパフォーマンス テストでは、アプリが機能要件を満たし、ユーザーがアプリをスムーズに操作できることを確認します。具体的には、安定して毎秒 60 フレーム(Android Performance Patterns: Why 60fps? を参照)で動作し、フレームのドロップまたは遅延が起こらないことを確かめます。
詳細については、UI パフォーマンスのテスト と JankTest をご覧ください。
メモリ
アプリのメモリ使用量は、次の 2 つの方法のいずれかで検査できます。
- 一定期間(
procstats
を使用)。 - 特定の時点のスナップショット(
meminfo
を使用)。
詳しくは以下のページをご覧ください。
- メモリ使用量を測定するには、メモリ割り当てを表示するをご覧ください。
- Android Studio IDE を使用してメモリを検査するために、Android Studio には GUI ベースのメモリ使用状況ツールが用意されています。詳細については、Memory Profiler を使用して Java ヒープとメモリ割り当てを表示するをご覧ください。
- Linux、Android、Chrome プラットフォームとユーザー空間アプリでパフォーマンス インストルメンテーションとトレースを行うには、オープンソースの Perfetto を使用します。
中央処理装置
CPU のクエリに以下のツールを使用できます。
- Android アプリと Android で実行されているネイティブ プロセスをプロファイリングするには、Simpleperf のドキュメントを使用します。 これは Android 用のネイティブ中央処理装置(CPU)プロファイリング ツールです。Simpleperf は Android で Java コードと C++ コードをプロファイリングできます。Simpleperf 実行可能ファイルは L より後の Android リリースで実行でき、Python スクリプトは N より後の Android リリースで使用できます。
- アプリの操作中にアプリの CPU 使用率とスレッド アクティビティをリアルタイムで検査するには、CPU Profiler を使用します。これにより、より高速でスムーズなユーザー エクスペリエンスを実現したり、デバイスのバッテリー寿命を延ばしたりなど、多くのメリットを得られます。また、記録されたメソッド、関数、システム トレースの詳細を調べることもできます。
Simpleperf のドキュメントはこちらです。詳細については、Simpleperf のドキュメントをご覧ください。