Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

Android のツールとインフラストラクチャ

この記事では、パフォーマンス指標の測定とユーザー インターフェースのテストに使用できるツールについて説明します。

システム パフォーマンス ツール

起動時間

起動タイミングをプロファイリングするには、bootanalyze ツールを使用します。特定の製品ごとに、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 パフォーマンス パターン: Why 60fps? を参照)で動作し、フレームのドロップまたは遅延が起こらないことを確かめます。

詳細については、UI パフォーマンスのテストJankTest をご覧ください。

メモリ

アプリのメモリ使用量は、次の 2 つの方法のいずれかで検査できます。

  • 一定期間(procstats を使用)。
  • 特定の時点のスナップショット(meminfo を使用)。

詳しくは以下のページをご覧ください。

中央処理装置

  • Android アプリと Android で実行されているネイティブ プロセスをプロファイリングするには、Android 用のネイティブ中央処理装置(CPU)プロファイリング ツールである Simpleperf を使用します。Simpleperf は Android で Java コードと C++ コードをプロファイリングできます。Simpleperf 実行可能ファイルは L より後の Android リリースで実行でき、Python スクリプトは N より後の Android リリースで使用できます。

    Simpleperf は Android オープンソース プロジェクトの一部です。ソースコードは Simpleperf にあります。 詳細については、Simpleperf のドキュメントをご覧ください。

  • アプリの操作中にアプリの CPU 使用率とスレッド アクティビティをリアルタイムで検査するには、CPU Profiler を使用します。これにより、より高速でスムーズなユーザー エクスペリエンスを実現したり、デバイスのバッテリー寿命を延ばしたりなど、多くのメリットを得られます。また、記録されたメソッド、関数、システム トレースの詳細を調べることもできます。

ユーザー インターフェースのテストとフレームワーク

UI とフレームワークをテストするには、次のツールを使用します。

  • エンドツーエンドのユーザー インターフェース テストを自動化するには、UI Automator と、AOSP で提供されているオープンソースの Auto に固有のヘルパーを使用してください。

  • エンドツーエンドの Bluetooth 接続のテストを自動化するには、オープンソースの Google Mobly フレームワークを使用します。

  • 簡潔で、わかりやすく、信頼性の高い Android UI テストを作成するには、Espresso を使用します。

  • Android テストをローカルでビルド、インストール、実行するには、Atest コマンドライン ツールを使用します。

    $ atest [optional-arguments] test-to-run
    
  • Android コードをテストするには、Robolectric を使用します(テストはワークステーションの JVM で数秒で実行されます)。