How to Use Android App Standby Buckets to Extend Battery Life and Improve Performance

10 min read Learn what Android App Standby Buckets are, how to check an app's bucket, and practical steps to move apps to a more favorable bucket for better battery life and responsiveness. October 11, 2026 04:00 How to Use Android App Standby Buckets to Extend Battery Life and Improve Performance

Why Android App Standby Buckets Matter

Since Android 9 (API 28) the system groups every installed app into a standby bucket. The bucket reflects how recently the user has interacted with the app and how important the app is for the device’s overall experience. Based on the bucket, Android throttles background jobs, network access, and wake‑locks. An app in the ACTIVE bucket can run freely, while an app in the RARE bucket may be frozen for hours. If you notice an app lagging, missing notifications, or draining battery unexpectedly, the bucket is often the hidden culprit.

Understanding and, when safe, adjusting an app’s bucket lets you:

  • Restore timely push notifications for messaging or email apps.
  • Reduce background wake‑ups that sap battery.
  • Prioritize performance‑critical apps (e.g., navigation) without sacrificing overall battery life.

Before You Start

  • Charge your device. The steps involve ADB commands that can be interrupted by a sudden power loss.
  • Enable Developer Options. Go to Settings → About phone → Build number and tap it seven times. Then open Settings → System → Developer options and turn on USB debugging.
  • Install ADB on your computer. For Windows, download the platform-tools zip from Google’s Android developer site and extract it. macOS and Linux users can install via Homebrew (brew install android-platform-tools) or their package manager.
  • Connect your phone via USB. Use a good‑quality cable, accept the RSA fingerprint prompt on the device, and verify the connection with adb devices.
  • Back up important data. Changing a bucket does not delete app data, but if you experiment with whitelist commands you might affect battery‑optimisation settings that some apps rely on.

Step‑by‑Step Guide

  1. Identify the current bucket of an app.

    Open a terminal on your computer and run:

    adb shell dumpsys deviceidle get-standby-buckets

    The output lists each package with its bucket, for example:

    com.whatsapp               ACTIVE
    com.facebook.katana        WORKING_SET
    com.example.unusedapp      RARE

    If the list is long, you can filter for a specific package:

    adb shell dumpsys deviceidle get-standby-buckets | grep com.whatsapp

    Take note of the bucket you want to change.

  2. Request a more favorable bucket.

    Android only allows the system or a privileged app to permanently change a bucket. However, you can ask the system to treat an app as ACTIVE for a limited period using the am set-inactive and am set-standby-bucket commands. Run:

    adb shell am set-standby-bucket com.whatsapp ACTIVE

    Replace com.whatsapp with the package name of your target app. The command succeeds silently; you can verify the change by repeating step 1.

    Why this works: The command tells the Activity Manager to move the app into the requested bucket. The system may later move it back if usage patterns don’t justify the higher bucket, which is why this is a temporary fix.

  3. Whitelist the app from battery optimisation (optional).

    If an app keeps slipping back to WORKING_SET or RARE despite your bucket change, you can add it to the system‑wide whitelist. This tells Android not to apply Doze or App Standby restrictions to the app.

    adb shell cmd deviceidle whitelist +com.whatsapp

    To remove an app from the whitelist later:

    adb shell cmd deviceidle whitelist -com.whatsapp

    Warning: Whitelisting bypasses battery‑saving features, so use it only for apps that truly need constant background access (e.g., VoIP, navigation, or a trusted messenger).

  4. Use the UI for a permanent whitelist (no ADB).

    On most devices you can achieve a similar effect without a computer:

    1. Open Settings → Battery → Battery usage.
    2. Tap the three‑dot menu and choose Battery optimization.
    3. Select All apps from the dropdown.
    4. Find the app, tap it, and choose Don’t optimize.

    This UI method adds the app to the same internal whitelist used by the ADB command.

  5. Verify the app’s behaviour.

    After adjusting the bucket or whitelist, monitor the app for a few hours:

    • Check that push notifications arrive promptly.
    • Observe battery usage in Settings → Battery → Battery usage. A small increase is expected for whitelisted apps.
    • If the app still seems throttled, repeat step 1 to see whether the system moved it back to a lower bucket.

Understanding the Four Buckets

BucketTypical UsageSystem Restrictions
ACTIVEApp is in the foreground or the user interacts with it frequently.No restrictions – background jobs, network, and wake‑locks run normally.
WORKING_SETApp used regularly but not currently visible.Background jobs may be deferred; network access is allowed but may be throttled.
FREQUENTApp used occasionally (e.g., a news reader checked once a day).Background jobs are heavily deferred; network may be blocked for long periods.
RAREApp rarely used (e.g., a game played once a month).App is effectively frozen; no background work, network, or alarms.

Knowing the bucket definitions helps you decide which apps deserve a higher bucket and which can stay low to save power.

Common Mistakes & How to Recover

  • Forgetting to enable USB debugging. The ADB commands will fail with “device unauthorized.” Re‑enable debugging and accept the RSA prompt.
  • Using the wrong package name. A typo results in “Error: No such package.” Use adb shell pm list packages | grep partial_name to locate the exact identifier.
  • Whitelist overuse. Adding dozens of apps to the whitelist defeats the purpose of Doze. Periodically review the whitelist with adb shell cmd deviceidle whitelist and remove any that no longer need it.
  • System reverting the bucket after a reboot. Some OEM skins reset the whitelist on reboot. If this happens, repeat step 3 after each reboot or use a simple adb script that runs on startup (via adb shell pm grant for a helper app you create).

Troubleshooting

If adb shell dumpsys deviceidle get-standby-buckets returns “Permission denied” or an empty list, your device may be running a heavily customised Android version (e.g., some Chinese OEMs) that hides the command. In that case, rely on the Settings UI (Battery → Battery optimisation) to manage the whitelist, and use third‑party battery‑monitor apps to infer bucket behaviour.

On Android 12 and newer, the command adb shell am get-standby-bucket is deprecated in favour of the deviceidle sub‑command shown above. Using the newer syntax ensures compatibility across versions.

When Not to Change Buckets

Most users will benefit from leaving the system to manage buckets automatically. Interfering with the algorithm can cause:

  • Unnecessary battery drain if many apps are forced to ACTIVE.
  • Potential conflicts with OEM battery‑saving layers that expect apps to respect the bucket system.
  • Reduced app stability for apps that rely on Doze to schedule background sync efficiently.

Reserve manual bucket changes for apps that you know need constant background operation and that you trust not to abuse the extra power.

Putting It All Together

By following the steps above you can:

  1. Identify which apps are being throttled.
  2. Temporarily promote them to ACTIVE for a smoother experience.
  3. Whitelist truly essential apps to keep them active indefinitely.
  4. Monitor battery impact and roll back changes if the cost outweighs the benefit.

This systematic approach gives you fine‑grained control over Android’s power‑management engine without rooting your device or installing third‑party launchers. It’s a practical way to get the best of both worlds: long battery life and reliable app performance.

User Comments (0)

Add Comment
We'll never share your email with anyone else.