About preserving battery
Stay organized with collections
Save and categorize content based on your preferences.
Users rely on their mobile devices for virtually everything these days, from
sending emails and managing finances, to streaming videos and streaming and
playing video games. In order to be useful, most apps require data, images, and
other media from remote services. It’s important to remember that your app is
just one of many apps on the user’s device, all competing for network resources.
Managed poorly, this can have a dramatic and detrimental impact on battery
performance and unnecessarily use the user’s limited network bandwidth.
Starting with Android 8.0, several
updates were introduced to the OS which help preserve battery, user experience,
and system health. However, there are additional considerations, strategies, and
patterns that you as a developer can employ yourself, as well. Requests that
your app makes to the network can be a major cause of battery drain because
they rely on the heavily power-consuming cellular and Wi-Fi radios.
In this guide, you’ll learn about the following:
- How your app’s connectivity model interacts with the wireless radio state
machine.
- How to employ techniques for minimizing the impact of your data connection.
- How to troubleshoot slow connections.
- How to run background work only under specific conditions such as when the
device is charging or on Wi-Fi.
- How to track your app’s battery usage over time.
Finally, you’ll learn about three broad categories of updates:
User-initiated,
App-initiated,
and
Server-initiated,
with tools and techniques for maximizing the efficiency of each category.
Ultimately, it’s all of our responsibilities as a developer community to provide
the best app experience for our users.
Additional material
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-08-26 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[],[],null,["Users rely on their mobile devices for virtually everything these days, from\nsending emails and managing finances, to streaming videos and streaming and\nplaying video games. In order to be useful, most apps require data, images, and\nother media from remote services. It's important to remember that your app is\njust one of many apps on the user's device, all competing for network resources.\nManaged poorly, this can have a dramatic and detrimental impact on battery\nperformance and unnecessarily use the user's limited network bandwidth.\n\nStarting with [Android 8.0](/about/versions/oreo/android-8.0-changes), several\nupdates were introduced to the OS which help preserve battery, user experience,\nand system health. However, there are additional considerations, strategies, and\npatterns that you as a developer can employ yourself, as well. Requests that\nyour app makes to the network can be a major cause of battery drain because\nthey rely on the heavily power-consuming cellular and Wi-Fi radios.\n\nIn this guide, you'll learn about the following:\n\n- How your app's connectivity model interacts with the wireless radio state machine.\n- How to employ techniques for minimizing the impact of your data connection.\n- How to troubleshoot slow connections.\n- How to run background work only under specific conditions such as when the device is charging or on Wi-Fi.\n- How to track your app's battery usage over time.\n\nFinally, you'll learn about three broad categories of updates:\n[User-initiated](/develop/connectivity/minimize-effect-regular-updates#user-initiated),\n[App-initiated](/develop/connectivity/minimize-effect-regular-updates#app-initiated),\nand\n[Server-initiated](/develop/connectivity/minimize-effect-regular-updates#server-initiated),\nwith tools and techniques for maximizing the efficiency of each category.\n\nUltimately, it's all of our responsibilities as a developer community to provide\nthe best app experience for our users.\n\nAdditional material"]]