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 コードを実行することでアプリケーションが消費する電池量の比較ランキングが設定されます(フォアグラウンド アプリとしての時間とバックグラウンド アクティビティを含む合計時間は別々に報告されます)。