page.title=Power Profiles for Android
@jd:body

<!--
    Copyright 2015 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<div id="qv-wrapper">
  <div id="qv">
    <h2>In this document</h2>
    <ol id="auto-toc"></ol>
  </div>
</div>

<p>Battery use information is derived from battery use statistics and power profile values.</p>

<h2 id="usage-statistics">Battery use statistics</h2>

<p>The framework automatically determines battery use statistics by tracking how long device
components spend in different states. As components (Wi-Fi chipset, cellular radio, Bluetooth, GPS,
display, CPU) change states (OFF/ON, idle/full power, low/high brightness, etc.), the controlling
service reports to the framework BatteryStats service. BatteryStats collects information over time
and stores it for use across reboots. The service doesn’t track battery current draw directly,
but instead collects timing information that can be used to approximate battery
consumption by different components.</p>

<p>The framework gathers statistics using the following methods:</p>

<ul>
<li><strong>Push</strong>. Services aware of component changes push state changes to the
BatteryStats service.</li>
<li><strong>Pull</strong>. For components such as the CPU use by apps, the framework
automatically pulls the data at transition points (such as starting or stopping an activity) to
take a snapshot.</li>
</ul>

<p>Resource consumption is associated with the application using the resource. When multiple
applications simultaneously use a resource (such as wakelocks that prevent the system from
suspending), the framework spreads consumption across those applications, although not necessarily
equally.</p>

<p>To avoid losing use statistics for a shutdown event, which may indicate battery power
consumption problems (i.e. shutdown occurs because the battery reached zero remaining capacity),
the framework flashes statistics approximately every 30 minutes.</p>

<p>Battery use statistics are handled entirely by the framework and do not require OEM
modifications.</p>

<h2 id="profile-values">Power profile values</h2>

<p class="caution"><strong>Caution:</strong> Device manufacturers must provide a component power
profile that defines the current consumption value for the component and the approximate battery
drain caused by the component over time. This profile is defined in
<a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/xml/power_profile.xml">platform/frameworks/base/core/res/res/xml/power_profile.xml</a>.
For guidance on these settings, see <a href="{@docRoot}devices/tech/power/values.html">Power Values</a>.</p>

<p>Within a power profile, power consumption is specified in milliamps (mA) of current draw at a
nominal voltage and can be a fractional value specified in microamps (uA). The value should be the
mA consumed at the battery and not a value applicable to a power rail that does not correspond to
current consumed from the battery.</p>

<p>For example, a display power profile specifies the mA of current required to keep the display on
at minimum brightness and at maximum brightness. To determine the power cost (i.e the battery
drained by the display component) of keeping the display on, the framework tracks the time spent at
each brightness level, then multiplies those time intervals by an interpolated display brightness
cost.</p>

<p>The framework also multiplies the CPU time for each application by the mA required to run the
CPU at a specific speed. This calculation establishes a comparative ranking of how much battery an
application consumes by executing CPU code (time as the foreground app and total time including
background activity are reported separately).</p>
