Since Android 9 (Pie), Google introduced App Standby Buckets as part of its broader effort to manage background activity and preserve battery life. A bucket is essentially a classification that tells the system how frequently an app is expected to run in the background. The OS uses this information to allocate resources such as CPU time, network access, and wake‑locks.
There are five buckets, each representing a different level of expected usage:
These buckets are not static; Android continuously re‑evaluates them based on your interaction patterns.
Understanding buckets is useful for two main reasons:
While Android does a good job of automating this process, power users often want to verify that critical apps are not being throttled unintentionally.
The system looks at several signals:
Developers can also request a higher bucket using the setAppStandbyBucket() API, but the OS may ignore the request if it conflicts with overall power‑saving goals.
There are three primary ways to see which bucket an app currently resides in:
If you prefer a command‑line approach, ADB provides precise information:
adb shell dumpsys deviceidle | grep -i "bucket"
This command lists all packages with their current bucket. To filter for a single app, replace grep with the package name, e.g.:
adb shell dumpsys deviceidle | grep com.whatsapp
Several free apps on the Play Store (e.g., App Standby Buckets or Battery Historian) can read the same system data without requiring ADB. They are convenient for users who do not want to enable Developer Options.
While you cannot directly assign a bucket, you can nudge Android toward a higher‑priority classification through the following methods:
Open the app regularly, especially after a device reboot. Even brief foreground sessions (10‑15 seconds) signal to the OS that the app is actively used.
Apps placed on the home screen are more likely to be considered part of the WORKING_SET bucket because the launcher treats them as “favorite” shortcuts.
Navigate to Settings → Battery → Battery optimization, tap the three‑dot menu, select All apps, find the app, and choose Don’t optimize. This exemption tells Android that the app should retain more background privileges, often moving it to a higher bucket.
Developers can start a foreground service (e.g., a persistent notification) to keep the app in the ACTIVE bucket. As a user, you can trigger this by starting a music player, navigation, or a fitness tracker that runs in the background.
Conversely, if an app is consuming resources unnecessarily, you can force it into a lower bucket by enabling battery optimization or using Force stop from the app info screen.
Messaging apps are a common case where delayed notifications are frustrating. Follow these steps to ensure your favorite messenger stays in a higher bucket.
While influencing buckets can improve responsiveness, there are trade‑offs:
If you notice widespread performance issues after installing several apps, a full reset can give the system a clean slate. Here’s how:
Remember that resetting preferences may also re‑enable battery optimizations you previously disabled, so you may need to re‑apply exemptions for critical apps.
App Standby Buckets are a behind‑the‑scenes mechanism that helps Android balance performance and battery life. By checking which bucket an app occupies and using a combination of frequent interaction, home‑screen shortcuts, and battery‑optimization exemptions, you can guide Android to treat important apps more favorably. Keep an eye on OEM‑specific power‑saving settings, and avoid over‑exempting apps to preserve overall battery health.
With the steps outlined in this guide, you now have a practical toolbox for monitoring and influencing Android’s app‑standby behavior—ensuring that the apps you rely on stay responsive when you need them most.









