| page.title=Optimizing Battery Life |
| page.tags=battery,network,internet |
| page.metaDescription=Learn how to optimize your app to reduce battery drain and use power-hungry resources efficiently. |
| |
| page.article=true |
| |
| trainingnavtop=true |
| startpage=true |
| |
| @jd:body |
| |
| <div id="tb-wrapper"> |
| <div id="tb"> |
| |
| <h2>Dependencies and prerequisites</h2> |
| <ul> |
| <li>Experience with <a href="{@docRoot}guide/components/intents-filters.html">Intents and Intent Filters</a></li> |
| </ul> |
| |
| <h2>You should also read</h2> |
| <ul> |
| <li><a href="{@docRoot}guide/components/services.html">Services</a> |
| </ul> |
| |
| </div> |
| </div> |
| |
| <p>For your app to be a good citizen, it should seek to limit its impact on the battery life of its |
| device. After this class you will be able to build apps that modify their functionality |
| and behavior based on the state of its device.</p> |
| |
| <p>By taking steps such as batching network requests, disabling background service updates when you |
| lose connectivity, or reducing the rate of such updates when the battery level is low, you can |
| ensure that the impact of your app on battery life is minimized, without compromising the user |
| experience.</p> |
| |
| <h2>Lessons</h2> |
| |
| <!-- Create a list of the lessons in this class along with a short description of each lesson. |
| These should be short and to the point. It should be clear from reading the summary whether someone |
| will want to jump to a lesson or not.--> |
| |
| <dl> |
| <dt><b><a href="{@docRoot}training/performance/battery/network/index.html">Reducing Network Battery |
| Drain</a></b></dt> |
| <dd>Learn how to analyze your app's use of network resources and optimize it to reduce |
| power consumption.</dd> |
| |
| <dt><b><a href="doze-standby.html">Optimizing for Doze and App Standby</a></b></dt> |
| <dd>Learn how to test and optimize your app for the power-management features introduced in |
| Android 6.0 Marshmallow.</dd> |
| |
| <dt><b><a href="battery-monitoring.html">Monitoring the Battery Level and Charging State</a></b></dt> |
| <dd>Learn how to alter your app's update rate by determining, and monitoring, the current battery |
| level and changes in charging state.</dd> |
| |
| <dt><b><a href="docking-monitoring.html">Determining and Monitoring the Docking State and |
| Type</a></b></dt> |
| <dd>Optimal refresh rates can vary based on how the host device is being used. Learn how to |
| determine, and monitor, the docking state and type of dock being used to affect your app's |
| behavior.</dd> |
| |
| <dt><b><a href="connectivity-monitoring.html">Determining and Monitoring the Connectivity |
| Status</a></b></dt> |
| <dd>Without Internet connectivity you can't update your app from an online source. Learn how to |
| check the connectivity status to alter your background update rate. You'll also learn to check for |
| Wi-Fi or mobile connectivity before beginning high-bandwidth operations.</dd> |
| |
| <dt><b><a href="manifest-receivers.html">Manipulating Broadcast Receivers On Demand</a></b></dt> |
| <dd>Broadcast receivers that you've declared in the manifest can be toggled at runtime to disable |
| those that aren't necessary due to the current device state. Learn to improve |
| efficiency by toggling and cascading state change receivers and delay actions until the device is in |
| a specific state.</dd> |
| </dl> |