Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Android Profiler でアプリのパフォーマンスを測定する

Android Studio 3.0 以降では、Android Monitor ツールに代わり Android Profiler を利用できます。Android Profiler ツールは、アプリによる CPU、メモリ、ネットワーク、バッテリー リソースの使用を把握するのに役立つリアルタイム データを提供します。

各プロファイラについて詳しくは、以下を参照してください。

Android Profiler は、Android 5.0(API レベル 21)以降と互換性があります。

Android Profiler の概要については、次の動画をご覧ください。

[Profiler] ウィンドウを開くには、[View] > [Tool Windows] > [Profiler] またはツールバーの [Profile] をクリックします。[Select Deployment Target] ダイアログでメッセージが表示されたら、アプリのプロファイルを作成するデバイスを選択します。USB 経由でデバイスに接続しているにもかかわらずデバイスがリストに表示されない場合は、USB デバッグが有効になっていることを確認します。Android Emulator またはユーザーにルート権限のあるデバイスを使用している場合、Android Profiler は、デバッグできない可能性があるプロセスを含む実行中のすべてのプロセスの一覧を表示します。デバッグ可能なアプリを起動すると、そのプロセスがデフォルトで選択されます。

Android Profiler は、デバイスを切断するかまたは [End Session] をクリックするまでプロファイリング データを収集し続けます。

図 1. Android Profiler のタイムライン ビュー

1 Android Profiler で現在プロファイリング中のプロセスとデバイスを表示しています。

2 [SESSIONS] ペインでは表示するセッションを選択したり、新しいプロファイリング セッションを開始したりできます。

3 ズームボタンを使用して表示するタイムラインの長さを変更したり、[Attach to live] ボタンを使用してリアルタイムの更新にジャンプしたりできます。

4 キーボード アクティビティ、ボリューム コントロールの変更、画面の回転などユーザーの操作に関連するイベントのタイムラインが表示されます。

5 CPU、メモリ、ネットワーク、エネルギー使用量のグラフを含む共有タイム ラインビュー。

共有タイムライン ビューには、タイムライン グラフのみが表示されます。詳細なプロファイリング ツールにアクセスするには、調べたいパフォーマンス データのグラフをクリックします。たとえば、ヒープの検査とメモリ割り当てのトラッキングを行うツールにアクセスするには、[MEMORY] グラフをクリックします。

すべてのプロファイリング データがデフォルトで表示されるわけではありません。「Advanced profiling is unavailable for the selected process」というメッセージが表示された場合は、実行構成で詳細なプロファイリングを有効にする必要があります。

セッション

Profiler のデータはセッションとして保存できます。セッションは Android Studio を終了するまで保持されます。プロファイリング情報を複数のセッションで記録して切り替えることで、さまざまな状況でリソースの使用状況を比較できます。

  • 新しいセッションを開始するには、[Start a new profiling session] ボタンをクリックして、表示されるプルダウン メニューからアプリのプロセスを選択します。

    トレースを記録またはヒープダンプをキャプチャすると、Android Studio はそのデータを(アプリケーションのネットワーク アクティビティとともに)個別のエントリとして現在のセッションに追加します。

  • 現在のセッションへのデータの追加を停止するには、[Stop the current profiling session] をクリックします。

  • 前回 Android Studio からエクスポートしたトレースをインポートするには、[Start new profiler session] をクリックして [Load from file] を選択します。

詳細なプロファイリングを有効にする

Android 7.1 以下でデバイスを実行している際に詳細なプロファイリング データを表示するには、コンパイル済みアプリに Android Studio がモニタリング ロジックを挿入する必要があります。詳細なプロファイリングでは、次のような機能が提供されます。

  • すべてのプロファイラ ウィンドウのイベント タイムライン
  • Memory Profiler に割り当てられているオブジェクトの数
  • Memory Profiler のガベージ コレクション イベント
  • Network Profiler のすべての送信ファイルに関する詳細

詳細なプロファイリングは次の手順で有効にします。

  1. [Run] > [Edit Configurations] の順に選択します。
  2. 左側のパネルでアプリ モジュールを選択します。
  3. [Profiling] タブをクリックして [Enable advanced profiling] をオンにします。
  4. 再度アプリをビルドして実行します。

詳細なプロファイリングを使用するとビルド処理が遅くなるので、アプリのプロファイリングを開始するときにだけ有効にしてください。