page.title=Power Management
@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 life is a perennial user concern. To extend battery life, Android
continually adds new features and optimizations to help the platform optimize
the off-charger behavior of applications and devices.</p>
<p>Android includes the following battery life enhancements:</p>

<ul>
<li><b><a href="#app-standby">App Standby</b></a>. The platform can place
unused applications in App Standby mode, temporarily restricting network access
and deferring syncs and jobs for those applications.</li>
<li><b><a href="#doze">Doze</b></a>. The platform can enter a state of deep
sleep (periodically resuming normal operations) if users have not actively used
their device (screen off and stationary) for extended periods of time. Android N
also enables Doze to trigger a lighter set of optimizations when users turn
off the device screen yet continue to move around.</li>
<li><b><a href="#exempt-apps">Exemptions</b></a>. System apps and cloud
messaging services preloaded on a device are typically exempted from App Standby
and Doze by default (although app developers can intent their applications into
this setting). Users can exempt applications via the Settings menu.</li>
</ul>
<p>The following sections describe these enhancements.</p>

<h2 id="app-standby">App Standby</h2>
<p>App Standby extends battery life by deferring background network activity
and jobs for applications the user is not actively using.</p>

<h3 id="app-standby-life">App Standby lifecycle</h3>
<p>The platform detects inactive applications and places them in App Standby
until the user begins actively engaging with the application.</p>

<table>
<tbody>
<tr>
<th width=46%>Detection</th>
<th width=23%>During App Standby</th>
<th width=31%>Exit</th>
</tr>

<tr>
<td><p>The platform detects an application is inactive when the device is not
charging <strong>and</strong> the user has not launched the application directly
or indirectly for a specific amount of clock time as well as a specific amount
of screen-on time. (Indirect launches occur when a foreground app accesses a
service in a second app.)</p></td>
<td><p>The platform prevents applications from accessing the network more than
once a day, deferring application syncs and other jobs.</p></td>
<td><p>The platform exits the app from App Standby when:</p>
<ul>
<li>Application becomes active.</li>
<li>Device is plugged in and charging.</li>
</ul>
</td>
</tr>
</tbody>
</table>

<p>Active applications are unaffected by App Standby. An application is active
when it has:</p>
<ul>
<li>A process currently in the foreground (either as an activity or foreground
service, or in use by another activity or foreground service), such as
notification listener, accessibility services, live wallpaper, etc.</li>
<li>A notification viewed by the user, such as in the lock screen or
notification tray.</li>
<li>Explicitly been launched by the user.</li>
</ul>
<p>An application is inactive if none of the above activities has occurred for
a period of time.
</p>

<h3>Testing App Standby</h3>
<p>You can manually test App Standby using the following ADB commands:</p>

<pre>
$ adb shell dumpsys battery unplug
$ adb shell am set-idle packageName true
$ adb shell am set-idle packageName false
$ adb shell am get-idle packageName
</pre>

<h2 id="doze">Doze</h2>

<p>Doze extends battery life by deferring application background CPU and
network activity when a device is unused for long periods.</p>

<p>Idle devices in Doze periodically enter a maintenance window, during which
apps can complete pending activities (syncs, jobs, etc.). Doze then resumes sleep
for a longer period of time, followed by another maintenance window. The
platform continues the Doze sleep/maintenance sequence, increasing the length of
idle each time, until a maximum of a few hours of sleep time is reached. At all
times, a device in Doze remains aware of motion and immediately leaves Doze
if motion is detected.</p>

<p>Android N extends Doze to trigger a lighter set of optimizations every time
a user turns off the device screen, even when the user continues to move around,
enabling longer lasting battery life.</p>

<p>System services (such as telephony) may be preloaded and exempted from Doze
by default. Users can also exempt specific applications from Doze in the
Settings menu. By default, Doze is <b>disabled</b> in the Android Open Source
Project (AOSP). For details on enabling Doze, see
<a href="#integrate-doze">Integrating Doze</a>.</p>

<h3 id="doze-reqs">Doze requirements</h3>
<p>Doze support requires the device has a cloud messaging service, such as
<a href="https://developers.google.com/cloud-messaging/">Google Cloud Messaging
(GCM)</a>. This enables the device to know when to wake from Doze.</p>
<p>Full Doze support also requires a
<a href="{@docRoot}devices/sensors/sensor-types.html#significant_motion">Significant
Motion Detector (SMD)</a> on the device; however, the lightweight Doze mode in
Android N does not require an SMD. If Doze is enabled on a device that:</p>
<ul>
<li>Has an SMD, full Doze optimizations occur (includes lightweight
optimizations).</li>
<li>Does not have an SMD, only the lightweight Doze optimizations occur.</li>
</ul>


<h3 id="doze-life">Doze lifecycle</h3>

<p>Doze begins when the platform detects the device is idle and
ends when one or more exit criteria activities occur.</p>

<table>
<tbody>
<tr>
<th width=20%>Detection</td>
<th width=60%>During Doze</th>
<th width=20%>Exit</th>
</tr>
<tr>
<td><p>The platform detects a device is idle when:</p>
<ul>
<li>Device is stationary (using significant motion detector).</li>
<li>Device screen is off for some amount of time.</li>
</ul>
<p>Doze mode does not engage when the device is plugged into a power charger.
</p>
</td>
<td><p>The platform attempts to keep the system in a sleep state, periodically
resuming normal operations during a maintenance window then returning the device
to sleep for longer repeating periods. During sleep, the following
restrictions are active:</p>
<ul>
<li>Apps not allowed network access.</li>
<li>App wakelocks ignored.</li>
<li>Alarms deferred. Excludes alarm clock alarms and alarms set using
<code>setAndAllowWhileIdle()</code> (limited to 1 per 15 minutes per app while
in Doze). This exemption is intended for apps (such as Calendar) that must show
event reminder notifications.</li>
<li>Wi-Fi scans not performed.</li>
<li>SyncAdapter syncs and JobScheduler jobs deferred until the next maintenance
window.</li>
<li>Apps receiving SMS and MMS messages are put on a temporary whitelist so
they can complete their processing.</li>
</ul>
</td>
<td><p>The platform exits the device from Doze when it detects:</p>
<ul>
<li>User interaction with device.</li>
<li>Device movement.</li>
<li>Device screen turns on.</li>
<li>Imminent AlarmClock alarm.</li>
</ul>
<p>Notifications do not cause the device to exit from Doze.</p>
</td>
</tr>
</tbody>
</table>

<p>Android N extends Doze by enabling a lightweight sleep mode during screen
off, before the device is idle.</p>
<p><img src="../images/doze_lightweight.png"></p>
<p class="img-caption">Figure 1. Doze modes for non-stationary and stationary
devices.</p>

<table>
<tbody>
<tr>
<th>Action</th>
<th>Doze</th>
<th>Lightweight Doze</th>
</tr>
<tr>
<td>Trigger</td>
<td>Screen off, on battery, stationary</td>
<td>Screen off, on battery (unplugged)</td>
</tr>
<tr>
<td>Timing</td>
<td>Successively increasing periods with maintenance</td>
<td>Repeated N-minute periods with maintenance windows</td>
</tr>
<tr>
<td>Restrictions</td>
<td>No network access, wake lock, or GPS/Wi-FI scan. Alarms and jobs/syncs deferred.</td>
<td>No network access. Jobs/syncs deferred except during maintenance windows.</td>
</tr>
<tr>
<td>Behavior</td>
<td>Only high-priority push notification messages received.</td>
<td>All real-time messages (instant messages, calls, etc.) received. High-priority push notification message enables temporary network access.</td>
</tr>
<tr>
<td>Exit</td>
<td>Motion, screen on, or alarm clock alarm.</td>
<td>Screen on.</td>
</tr>
</tbody>
</table>

<h3 id="doze-interactions">Interaction with App Standby</h3>
<ul>
<li>Time spent in Doze does not count towards App Standby.</li>
<li>While the device is in Doze, idle applications are allowed to perform normal
operations at least once a day.</li>
</ul>

<h3 id="integrate-doze">Integrating Doze</h3>

<p>When Doze is enabled, devices that support
<a href="{@docRoot}devices/sensors/sensor-types.html#significant_motion">SENSOR_TYPE_SIGNIFICANT_MOTION</a>
will perform full Doze optimizations (includes lightweight optimizations);
devices without an SMD will perform only lightweight Doze optimizations. Android
automatically selects the appropriate Doze optimizations and no vendor
configuration is necessary.</p>

<p>To enable Doze for a device, perform the following tasks:</p>

<ol>
<li>Confirm the device has a cloud messaging service installed.</li>
<li>In the device overlay config file
<code>overlay/frameworks/base/core/res/res/values/config.xml</code>, set
<code>config_enableAutoPowerModes</code> to <b>true</b>:
<pre>
bool name="config_enableAutoPowerModes"&gt;true&lt;/bool&gt;
</pre>
<br>In AOSP, this parameter is set to false (Doze disabled) by default.<br>
</li>
<li>Confirm that preloaded apps and services:
<ul>
<li>Use the new
<a href="https://developer.android.com/preview/behavior-changes.html#behavior-power">power-saving
optimization guidelines</a>. For details, see <a href="#test-apps">Testing and
optimizing applications</a>.
<p><b>OR</b></p>
<li>Are exempted from Doze and App Standby. For details, see
<a href="#exempt-apps">Exempting applications</a>.</li>
</ul>
</li>
<li>Confirm the necessary services are exempted from Doze.</a>
</li>
</ol>

<h4 id="doze-tips">Tips</h4>
<ul>
<li>If possible, use GCM for
<a href="https://developers.google.com/cloud-messaging/downstream">downstream
messaging</a>.</li>
<li>If your users must see a notification right away, use a
<a href="https://developers.google.com/cloud-messaging/concept-options#setting-the-priority-of-a-message">GCM high priority
message</a>.</li>
<li>Provide sufficient information within the initial
<a href="https://developers.google.com/cloud-messaging/concept-options#payload">message
payload</a> (to avoid unnecessary subsequent network access).</li>
<li>Set critical alarms with
<a href="http://developer.android.com/reference/android/app/AlarmManager.html#setAndAllowWhileIdle(int,%20long,%20android.app.PendingIntent)">setAndAllowWhileIdle()</a>
and
<a href="http://developer.android.com/reference/android/app/AlarmManager.html#setExactAndAllowWhileIdle(int,%20long,%20android.app.PendingIntent)">setExactAndAllowWhileIdle()</a>.
</li>
</ul>

<h4 id="test-apps">Testing and optimizing applications</h4>
<p>Test all applications (especially preloaded applications) in Doze mode. For
details, refer to
<a href="https://developer.android.com/preview/testing/guide.html#doze-standby">Testing
Doze and App Standby</a>.</p>

<p class="note"><b>Note</b>: MMS/SMS/Telephony services function independently
of Doze and will always wake client apps even while the device remains in Doze
mode.</p>

<h2 id="exempt-apps">Exempting applications</h2>
<p>You can exempt applications from being subject to Doze or App Standby.
Exemptions may be needed in the following use cases:</p>
<ul>
<li>OEM using non-GCM Cloud Messaging platform</li>
<li>Carrier using non-GCM Cloud Messaging platform</li>
<li>Third-party application using non-GCM Cloud Messaging platform</li>
</ul>

<p class="warning"><b>Warning</b>: Do not exempt apps to avoid testing and
optimizing. Unnecessary exemptions undermine the benefits of Doze and App
Standby and can compromise the user experience, so we strongly suggest
minimizing such exemptions as they allow applications to defeat beneficial
controls the platform has over power use. If users become unhappy about the
power consumption of these apps, it can lead to frustration, bad experiences
(and negative user reviews for the app), and customer support questions. For
these reasons, we strongly recommend that you do not exempt third-party
applications and instead exempt only cloud messaging services or apps with
similar functions.</p>

<p>Apps exempted by default are listed in a single view within the Settings >
Battery menu. This list is used for exempting the app from both Doze and App
Standby modes. To provide transparency to the user, the Settings menu
<b>MUST</b> show all exempted applications.</p>

<p>Users can manually exempt apps via Settings > Battery > Battery optimization
> All apps and then selecting the app to turn off (or back on) optimization.
However, users cannot unexempt any application or service that is exempted by
default in the system image.</p>
