Power Profiler

Android Studio Hedgehog 以降では、Power Profiler にデバイスの消費電力が表示されます。この新しいデータは、On Device Power Rails Monitor(ODPM)で確認できます。「電源レール」と呼ばれるサブシステムごとに情報が分割されます。サポートされているサブシステムの一覧については、プロファイル可能な電源レールをご覧ください。

システム トレースにより、消費電力データが記録され、表示されます。これは CPU プロファイラの一部です。このデータを使用して、デバイスの消費電力とアプリで行われるアクションを視覚的に関連付けることができます。Power Profiler を使用すると、このデータを可視化できます。

図 1. さまざまな電源レールでの消費電力の例。

プロファイル可能な電源レール

ODPM では、プロファイル可能な電源レールがすべてレポートされます。ODPM は Android 10(API レベル 29)以降と、Google Pixel 6 以降の Google Pixel デバイスで利用できます。

表 1. 個々の電源レールの有無は、使用されるデバイスに応じて変わる可能性がある
電源レール名 説明
CPU(大) 大きな CPU コアが消費する電力。
CPU(小) 小さな CPU コアが消費する電力。
CPU(中) 中程度の CPU コアが消費する電力。
カメラ カメラセンサーが消費する電力。
モバイル モバイル センサーが消費する電力。
ディスプレイ ディスプレイが消費する電力。
GPS GPS センサーが消費する電力。
GPU GPU センサーが消費する電力。
メモリー RAM メモリセンサーが消費する電力。
センサーコア 他のデバイス センサーが消費する電力。
UFS(ディスク) ディスク センサーが消費する電力。
WLAN Wi-Fi センサーが消費する電力。

ODPM をサポートしていないデバイスでは、クーロン カウンターとバッテリー ゲージを介して消費電力データを確認できます。

表 2. 消費電力データ
名前 説明
キャパシティ バッテリー残量(%)。
充電量 バッテリーの残量。マイクロアンペア時間(μAh)単位。
電流 瞬間電流。マイクロアンペア(μA)単位。

Power Profiler を使用して消費電力をプロファイリングするシナリオの例

ネットワーク経由でのアセットのダウンロードを必要とするアプリを作成しているとします。 アセットを個別にダウンロードする場合と大きなチャンクでダウンロードする場合では、WLAN 電源レールの消費電力がどのように変化するかを把握する必要があります。

シナリオ A: アプリが WLAN 経由でアセットをダウンロードするよう、個別のネットワーク リクエストを実行します。

図 2.WLAN 経由でアセットをダウンロードする個別のネットワーク リクエスト

シナリオ B: アプリが WLAN 経由で 1 つの非常に大きなアセットをダウンロードするために、1 つのネットワーク リクエストを実行します。

図 3. WLAN 経由で非常に大きなアセットをダウンロードするための個別のネットワーク リクエスト

前述のシナリオのとおり、ダウンロードをトリガーする方法に応じて、2 つのシステム トレースで表示される WLAN 電源レールでの消費電力のシグネチャは異なります。

上記の例はさまざまなシナリオで消費電力を測定する簡単な方法ですが、アプリのより高度な A/B テストを作成するプロセスを示しています。これらのテストを使用して、異なる機能、または同じ機能の異なる実装にまたがって消費電力を最適化できます。

重要な注意点

  • ODPM は、特定のアプリだけでなく、デバイスレベルで消費電力を測定します。ODPM からの電力消費量の情報を、アプリのフォアグラウンドまたはバックグラウンドでの動作に関連付けることができます。そのため、ODPM データの読み取り時点でデバイスでアクティブになっているアプリの数によっては、消費電力データのノイズが予想されます。
  • Power Profiler は、ODPM から消費電力データを読み取ります。ODPM は、Android 10(API レベル 29)以降を搭載した、Google Pixel 6 以降の Google Pixel デバイスでのみ使用できます。
  • 一部の電源レールは、ODPM を実装している一部のデバイスでしか利用できない場合があります。