Android Studio 3.0 以降で提供される Android Profiler は、Android Monitor の後継ツールです。各種の Android Profiler ツールは、アプリによる CPU、メモリ、ネットワーク、バッテリー リソースの使用状況を把握するために役立つリアルタイム データを提供します。
各プロファイラについて詳しくは、以下を参照してください。
- CPU Profiler を使用して CPU アクティビティとトレースをプロファイリングする
- Memory Profiler を使用して Java ヒープとメモリ割り当てをプロファイリングする
- Network Profiler を使用してネットワーク トラフィックをプロファイリングする
- Energy Profiler を使用してエネルギー使用量をプロファイリングする
Android Profiler は、Android 5.0(API レベル 21)以降と互換性があります。
Android Profiler の概要については、次の動画をご覧ください。
[Profiler] ウィンドウを開くには、[View] > [Tool Windows] > [Profiler] を選択するか、ツールバーの [Profile] をクリックします。[Select Deployment Target] ダイアログでメッセージが表示されたら、アプリをプロファイリングするデバイスを選択します。USB 経由でデバイスを接続しているにもかかわらずデバイスがリストに表示されない場合は、USB デバッグが有効になっているかどうかを確認します。Android Emulator またはユーザーに root 権限のあるデバイスを使用している場合、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] を選択します。
古いデバイス(API レベル 26 より前)の追加のサポートを有効にする
Android 7.1 以前を搭載したデバイスで追加のプロファイリング データを表示するには、Android Studio でコンパイル済みアプリにモニタリング ロジックを挿入する必要があります。このような追加のプロファイリング データには、以下が含まれます。
- すべてのプロファイラ ウィンドウのイベント タイムライン
- Memory Profiler に割り当てられているオブジェクトの数
- Memory Profiler のガベージ コレクション イベント
- Network Profiler のすべての送信ファイルに関する詳細
古いデバイスの追加のサポートを有効にする手順は次のとおりです。
- [Run] > [Edit Configurations] の順に選択します。
- 左側のペインでアプリ モジュールを選択します。
- [Profiling] タブをクリックし、[Enable additional support for older devices (API level < 26)] をオンにします。
- 再度アプリをビルドして実行します。
古いデバイスの追加のサポートを有効にすると、ビルドプロセスが遅くなるため、アプリのプロファイリングを開始する場合にのみ有効にしてください。
スタンドアロン プロファイラを実行する
スタンドアロンの Android Studio プロファイラを使用すると、完全な Android Studio IDE を実行しなくてもアプリをプロファイリングできます。
スタンドアロン プロファイラを実行する手順は次のとおりです。
- プロファイラが現在 Android Studio 内で実行されていないことを確認します。
インストール ディレクトリにアクセスし、
bin
ディレクトリに移動します。Windows / Linux:
<studio-installation-folder>/bin
macOS:
<studio-installation-folder>/Contents/bin
OS に応じて、
profiler.exe
またはprofiler.sh
を実行します。Android Studio のスプラッシュ画面が表示されます。スプラッシュ画面が消えると、プロファイラ ウィンドウが開きます。
Android Emulator を起動するか Android デバイスに接続して、ホーム画面が読み込まれるまで待ちます。コマンドラインからエミュレータを実行するには、コマンドラインからのエミュレータの起動をご覧ください。Android Studio からエミュレータを起動する場合は、エミュレータの起動後に Android Studio を閉じてください。
スタンドアロン プロファイラのメニューで
ボタンをクリックすると、接続されているデバイスとエミュレータがすべて表示されます。
例として、エミュレータで Google マップを開きます。プルダウンからエミュレータを選択し、com.google.android.apps.maps (...) を選択して、新しいプロファイリング セッションを作成します。プロファイリング セッションが開始されます。
地図を操作すると、タッチイベントと CPU 使用率がプロファイラに表示されます。CPU、メモリ、ネットワーク、エネルギーのグラフをクリックすると、詳細が表示されます。
プロファイリング セッションを終了するには、 ボタンをクリックします。