Android の電力プロファイル

電池使用量の情報は、電池使用量の統計情報と電力プロファイルの値から取得できます。

電池使用量の統計情報

このフレームワークは、デバイス コンポーネントがさまざまな状態で電力を消費する時間を追跡することで、電池使用量の統計情報を自動的に決定します。コンポーネント(Wi-Fi チップセット、セル無線通信、Bluetooth、GPS、ディスプレイ、CPU)が状態を変更する(OFF/ON、アイドル/フル電力、明るさの低/高など)と、コントロール サービスはフレームワーク BatteryStats サービスに報告します。BatteryStats は時間の経過とともに情報を収集し、再起動後に使用するために保存します。このサービスでは、電池の電流引き込みを直接追跡するのではなく、さまざまなコンポーネントによる電池消費量の概算に使用できるタイミング情報を収集します。

このフレームワークは、次のメソッドを使用して統計情報を収集します。

  • プッシュ型: サービスがコンポーネントの変更を認識すると、状態の変更を BatteryStats サービスにプッシュします。
  • プル型: アプリケーションによるコンポーネント(CPU など)の使用の場合、フレームワークは移行ポイント(アクティビティの開始や停止など)で自動的にデータをプルし、スナップショットを取得します。

リソース消費は、リソースを使用するアプリケーションに関連付けられます。複数のアプリケーションが同時に 1 つのリソース(システムの停止を防ぐウェイクロックなど)を使用する場合、フレームワークはアプリケーション間で消費を分散させますが、必ずしも均等ではありません。

電池残量がゼロになったためシャットダウンするなど、電池の消費問題を示している可能性があるシャットダウン イベントで使用量の統計情報が失われるのを防ぐために、フレームワークは約 30 分ごとに統計情報をフラッシュします。

電池使用量の統計情報はフレームワークによって完全に処理され、OEM の変更は不要です。

電力プロファイルの値

注意: デバイス メーカーは、コンポーネントの電流消費値とコンポーネントに起因する経時的な電池の消耗を定義する、コンポーネントの電力プロファイルを提供しなければなりません。このプロファイルは platform/frameworks/base/core/res/res/xml/power_profile.xml で定義されています。設定のガイドについては、電力値をご覧ください。

電力プロファイルでは、消費電力は定格電圧での電流引き込みのミリアンブ(mA)で指定されます。小数値のマイクロ アンペア(μA)で指定されることもあります。この値は、電池で消費される mA であり、電池で消費される電流に対応しない電源レールに適用される値ではありません。

たとえば、ディスプレイの電力プロファイルは、ディスプレイを最小輝度と最大輝度で維持するのに必要な電流の mA を指定します。ディスプレイをオンに維持する電力コスト(ディスプレイ コンポーネントによる電池の消耗など)を決定するために、フレームワークは明るさのレベルごとで消費された時間を追跡し、それらの時間に、補間されたディスプレイの明るさにおけるコストを乗算します。

また、このフレームワークは、各アプリケーションの CPU 時間に、特定の速度で CPU を実行するために必要な mA を乗算します。この計算では、CPU コードを実行することでアプリケーションが消費する電池量の比較ランキングが設定されます(フォアグラウンド アプリとしての時間とバックグラウンド アクティビティを含む合計時間は別々に報告されます)。