アプリをリアルタイムで検査する

アプリをライブで検査すると、デバイスの CPU 使用率、スレッド アクティビティ、メモリ使用率の概要を確認できます。アプリのプロファイリングをどこから始めればよいかわからない場合は、ライブビューを使用して探索的分析を行い、最適化できる動作が見つかったら、特定のプロファイリング タスクでさらに詳しく調べます。

ライブビューを開始するには、[ライブ テレメトリーを表示] プロファイリング タスクを選択します。タスクが開始されると、次の可視化がリアルタイムで表示されます。

  • インタラクション: タイムラインでのユーザー インタラクション イベントとアプリ ライフサイクル イベントが表示されます(デバッグ可能なアプリプロセスと、API レベル 26 以降を搭載したデバイスが必要です)。
  • CPU 使用率: アプリのリアルタイム CPU 使用率を利用可能な合計 CPU 時間の割合で表すとともに、アプリが使用しているスレッドの合計数を示します。このタイムラインには、他のプロセス(システム プロセスまたは他のアプリ)の CPU 使用率も示されるため、アプリの CPU 使用率と比較できます。マウスをタイムラインで水平方向に動かすと、CPU 使用率の履歴データを調べることができます。
  • スレッド: アプリプロセスの各スレッドを一覧表示し、以下の色を使用して、スレッドのアクティビティをタイムラインに沿って示します。
    • 緑: スレッドがアクティブであるか、CPU を使う用意ができています。つまり、スレッドは実行中または実行可能な状態です。
    • 黄: スレッドはアクティブですが、タスクを完了する前に、ディスク I/O やネットワーク I/O などの I/O 操作を待機しています。
    • グレー: スレッドがスリープ状態であり、CPU 時間を消費していません。この状態は、スレッドがまだ利用できないリソースへのアクセスを要求したときに発生することがあります。スレッドは自発的にスリープ状態になるか、要求したリソースが利用可能になるまでカーネルによってスリープ状態に置かれます。
    • CPU Profiler は、JDWPProfile SaverStudio:VMStatsStudio:PerfaStudio:Heartbeat(スレッド アクティビティのタイムラインに表示される正確な名前は異なる場合があります)など、Android Studio と Android プラットフォームがアプリプロセスに追加したスレッドの CPU 使用率も報告します。Android Studio ではこのデータが報告されるため、アプリのコードによってスレッド アクティビティと CPU 使用率が実際に発生したタイミングを特定できます。
  • メモリ: 各メモリカテゴリで使用されているメモリ使用量の積み上げ棒グラフ。左の Y 軸はメモリ使用量を、上部の色キーはメモリカテゴリを示しています。