Androidは個々のハードウェアコンポーネントが使用するエネルギーをどのように測定しますか?Androidは個々のプロセスで使用されるエネルギーをどのように測定しますか?
Androidは個々のハードウェアコンポーネントが使用するエネルギーをどのように測定しますか?Androidは個々のプロセスで使用されるエネルギーをどのように測定しますか?
回答:
Androidは、バッテリーの使用に影響するイベントを追跡し、この情報をbatterystats.binファイルに保存します。いくつかの例:
Androidは、メーカーによってデバイスに含まれている構成情報に基づいて、各アプリケーションまたはコンポーネント(画面など)が使用する電力を計算します。
すべてが測定されるわけではないため、統計が誤解を招く場合がありますが、Androidプラットフォームのリリースごとに改善されます。
バッテリー統計は、以下を使用してデバイスからダンプできます。
adb shell dumpsys batterystats
以下は、Diane Hackbornによる投稿の興味深い断片で、ウェイクロックの電力消費に関する詳細が含まれています。
ウェイクロックからの電力を計算する方法は2つあります。
一部のチップセットでは、ウェイクロックを保持するだけで、CPUが完全に深いスリープ状態になるのを防ぐ必要があります。報告されたバッテリー使用量では、この追加の電力使用量は、ウェイクロックを保持しているすべてのアプリに分散されます。
ウェイクロック自体が電力の使用を引き起こさない場合でも、1つのアプリでウェイクロックを保持することで、他のアプリケーションが実行され、CPUがそうでない場合はCPUを実行できるようになります。(たとえば、一部のアプリには{sleep(1); do something;}ループがあり、ウェイクロックが保持されていない場合は実行されません。)これに対処するために、アプリケーションのCPU使用率の半分が非難されるウェイクロックを保持しているもの。