Meta tags:
description= Understand system-imposed power restrictions.;
keywords= Android, resource limits, power management, app standby, doze mode, background tasks, jobs, alarms, performance, battery optimization;
Headings (most frequently used words):
android, resource, limits, based, on, and, state, app, power, management, stay, organized, with, collections, save, categorize, content, your, preferences, device, standby, bucket, behavior, changes, that, impact, 16, 13, more, discover, devices, releases, documentation, downloads, support,
Text of the page (most frequently used words):
the (97), app (91), android (84), and (76), play (48), for (43), #limits (35), standby (33), #bucket (26), execution (25), device (23), performance (23), based (22), your (21), resource (20), state (18), memory (17), are (16), overview (16), google (15), more (15), with (15), jobs (15), libraries (15), how (14), user (14), get (13), all (13), can (13), build (13), studio (12), battery (12), use (12), system (11), minutes (11), rolling (11), period (11), quality (11), wear (10), apps (10), priority (10), that (10), tools (10), profiles (10), behavior (9), hour (9), restrictions (9), power (9), process (9), learn (9), design (9), games (9), experiences (9), privacy (8), cars (8), thumb (8), code (8), buckets (8), regular (8), updates (8), optimize (8), doze (8), latest (8), core (8), startup (8), about (8), documentation (7), releases (7), management (7), high (7), alarms (7), best (7), services (7), compose (7), profile (7), baseline (7), capture (7), profiling (7), api (6), samples (6), resources (6), usage (6), expedited (6), per (6), access (6), data (6), enforced (6), work (6), technical (6), console (6), background (6), experience (6), optimization (6), keep (6), create (6), trace (6), guidelines (5), support (5), developers (5), guides (5), chromeos (5), devices (5), health (5), blog (5), security (5), understand (5), down (5), feature (5), set (5), job (5), optimizations (5), changes (5), using (5), 24h (5), restricted (5), limited (5), network (5), practices (5), manually (5), example (5), you (5), events (5), programs (5), case (5), explore (5), phones (5), tablets (5), foldables (5), write (5), library (5), excessive (5), rendering (5), users (5), news (4), platform (4), firebase (4), content (4), which (4), running (4), foreground (4), service (4), quota (4), limit (4), when (4), not (4), window (4), note (4), apis (4), also (4), mode (4), deferred (4), charging (4), plan (4), developer (4), sdk (4), index (4), delivery (4), monetization (4), jetpack (4), googlebook (4), test (4), debug (4), areas (4), excellent (4), value (4), glasses (4), form (4), world (4), started (4), analyze (4), rules (4), microbenchmark (4), benchmark (4), from (4), manage (3), brand (3), cloud (3), studies (3), report (3), reference (3), camera (3), media (3), fitness (3), enterprise (3), community (3), out (3), other (3), many (3), each (3), one (3), messages (3), longer (3), change (3), while (3), following (3), factors (3), jobscheduler (3), there (3), was (3), active (3), have (3), workmanager (3), alarm (3), rare (3), unrestricted (3), depends (3), frequency (3), choose (3), importance (3), different (3), maintenance (3), messaging (3), reduce (3), wake (3), stay (3), authors (3), level (3), vitals (3), together (3), gradle (3), command (3), line (3), projects (3), connectivity (3), gemini (3), testing (3), introduction (3), preview (3), powered (3), ide (3), adaptive (3), anrs (3), monitor (3), analyzing (3), measure (3), add (3), tracing (3), custom (3), real (3), develop (3), help (3), details (3), our (3), development (3), 한국어 (2), 日本語 (2), ภาษาไทย (2), বাংলা (2), हिंदी (2), فارسی (2), العربيّة (2), עברית (2), русский (2), türkçe (2), tiếng (2), việt (2), português (2), brasil (2), polski (2), italiano (2), indonesia (2), français (2), español (2), américa (2), latina (2), deutsch (2), english (2), tips (2), license (2), join (2), bug (2), guide (2), downloads (2), discover (2), connect (2), linkedin (2), check (2), youtube (2), follow (2), need (2), too (2), last (2), updated (2), 2026 (2), utc (2), this (2), subject (2), java (2), trademarks (2), its (2), requests (2), current (2), message (2), fcms (2), has (2), runtime (2), impact (2), prior (2), changed (2), than (2), they (2), once (2), workers (2), true (2), disabled (2), day (2), inexact (2), affect (2), these (2), limitations (2), values (2), restricts (2), visible (2), screen (2), states (2), except (2), enforce (2), impacted (2), execute (2), way (2), time (2), total (2), low (2), tos (2), product (2), categories (2), read (2), marketing (2), bundles (2), install (2), referrer (2), reviews (2), asset (2), dev (2), center (2), policies (2), integrity (2), fundamentals (2), better (2), tech (2), bench (2), plugin (2), workflow (2), files (2), interfaces (2), multidevice (2), fraud (2), prevention (2), identity (2), permissions (2), accessibility (2), kotlin (2), multiplatform (2), modularization (2), navigation (2), architecture (2), widgets (2), headsets (2), desktop (2), mobile (2), sandbox (2), experimental (2), productivity (2), social (2), category (2), factor (2), training (2), verification (2), hello (2), locks (2), swap (2), slow (2), common (2), issues (2), monitoring (2), historian (2), improve (2), gpu (2), fix (2), problems (2), study (2), macrobenchmark (2), troubleshoot (2), rule (2), examples (2), types (2), enable (2), benchmarking (2), instrumentation (2), arguments (2), native (2), profilingmanager (2), inspecting (2), troubleshooting (2), threads (2), quick (2), processes (2), essentials (2), designed (2), grow (2), step (2), features (2), browse (2), secure (2), subscribe, email, cookies, products, chrome, research, ndk, download, large, screens, machine, learning, gaming, podcasts, source, androiddev, easy, easytounderstand, solved, problem, solvedmyproblem, otherup, missing, information, missingtheinformationineed, complicated, steps, toocomplicatedtoomanysteps, date, outofdate, issue, samplescodeissue, otherdown, page, licenses, described, openjdk, registered, oracle, affiliates, introduces, new, helps, prioritize, recently, frequently, used, patterns, placed, five, available, introduced, refer, now, downgrades, detects, consistently, sending, don, result, notification, determine, fcm, quotas, executing, starts, top, adjusted, made, separate, continue, exhausted, configured, describe, flags, setexpedited, setuserinitiated, either, exact, frequent, working, mins, minute, starting, determines, approximate, guideline, optimal, adhere, task, scheduling, table, guarantee, durations, conditions, constraints, future, unless, saver, generous, unrestricts, supersedes, override, whether, enforces, levels, activitymanager, runningappprocessinfo, normal, during, idle, off, exempt, given, regardless, been, see, supersede, allows, further, reading, uses, schedule, tasks, thus, another, much, both, often, wakes, amount, stays, awake, run, scheduled, duration, two, ways, utilization, defer, until, left, such, after, leaves, prioritizes, save, categorize, preferences, organized, collections, healthy, jankstats, dex, permission, denials, scans, wakeups, stuck, partial, bitmap, anonymous, rss, killers, lmks, sessions, crashes, address, sqlite, hardware, acceleration, size, related, batterystats, determining, docking, type, status, connection, metering, layout, view, hierarchies, reducing, overdraw, find, unresponsive, thread, diagnose, responsive, solving, verify, art, hibernation, declare, class, environment, gmail, difference, between, confirm, calendar, configure, generation, customize, target, variant, advanced, configurations, cases, additional, global, options, adopt, incrementally, wisely, configuration, full, specified, packages, optimizer, improving, building, without, hilt, adding, control, metrics, writing, inspect, define, navigate, commands, local, practical, debugging, anr, bulk, analysis, worker, uploading, query, retrieve, trigger, driven, right, method, profilers, analyzer, apa, helpful, kswapd, lmkd, interaction, reclaim, eviction, wide, bindings, locality, webview, bitmaps, assessment, fundamental, concepts, understanding, budgets, allocation, among, score, sign, detailed, manuals, references, specifications, integrate, confidence, upcoming, webinars, workshops, meetups, special, initiatives, results, teams, achieve, their, goals, deep, dive, tutorials, smarter, faster, stories, spotlight, collaborative, bring, loop, behind, scenes, looks, evolving, publishing, promoting, managing, deliver, engage, monitize, publish, game, business, share, own, pipeline, docs, companion, safeguard, against, threats, ensure, align, store, robust, testable, maintainable, logic, beautiful, interface, touch, throughout, year, give, feedback, prescriptive, opinionated, guidance, first, multiple, skip, main,
Text of the page (random words):
on upcoming webinars workshops meetups and special initiatives designed to help you grow documentation access detailed manuals api references and technical specifications to help you build and integrate with confidence english deutsch español américa latina français indonesia italiano polski português brasil tiếng việt türkçe русский עברית العربيّة فارسی हिंदी বাংলা ภาษาไทย 中文 简体 中文 繁體 日本語 한국어 android studio sign in app quality overview core value user experience technical quality privacy security essentials more design plan more overview core value user experience technical quality privacy security develop more google play more blog more android studio overview performance app performance guide get your app performance score memory overview about memory management memory allocation among processes manage your app s memory processes and threads set app memory budgets understanding and troubleshooting android memory introduction fundamental concepts quick assessment tools analyzing java memory bitmaps and memory analyzing native memory webview and memory app code is memory threads and memory memory locality and performance service bindings and process states system wide troubleshooting memory reclaim eviction and swap kswapd and lmkd interaction inspecting performance about inspecting performance profile types and when each is helpful android performance analyzer apa android studio profilers profiling and tracing choose the right profiling method capture real user data using profilingmanager overview how to capture a profile app driven profiling trigger based profiling retrieve and analyze profiling data query profilingmanager profiles set up a worker for profile uploading bulk trace analysis practical performance debugging example anr profiling limitations debug commands for local profiling system tracing overview capture trace capture a trace in android studio capture a trace on a device capture a trace from the command line navigate a report custom events define custom events custom trace events in native code in process tracing inspect gpu rendering benchmarking benchmark your app macrobenchmark writing a benchmark capture the metrics control your app adding instrumentation arguments microbenchmark about microbenchmark write a benchmark profile a benchmark microbenchmark instrumentation arguments microbenchmark and hilt building without gradle benchmarking in ci measure performance overview examples improving performance how to improve performance enable the r8 app optimizer enable app optimization optimize specified packages use r8 in full mode analyze r8 configuration choose libraries wisely adopt optimizations incrementally use keep rules about keep rules add global options add keep rules add additional rule types follow best practices keep rule use cases and examples advanced configurations target a build variant customize which resources to keep test the optimization troubleshoot r8 optimizations fix optimization problems use rules to troubleshoot optimization for library authors baseline profiles overview create baseline profiles create baseline profiles for a library configure baseline profile generation measure with macrobenchmark library manually create and measure baseline profiles debug baseline profiles case study android calendar startup profiles overview create startup profiles confirm optimization difference between baseline profiles and startup profiles app startup analyze and optimize app startup case study gmail wear os app startup library guides set up your environment for testing about background work declare a device performance class about app standby buckets about app hibernation verify app behavior on the android runtime art solving common problems app startup anrs keep your app responsive diagnose and fix anrs find the unresponsive thread rendering performance of rendering reducing overdraw performance and view hierarchies analyzing with profile gpu rendering improve layout performance battery and power optimize for doze and app standby monitor the battery level and charging state monitor connectivity status and connection metering determining and monitor docking state and type profile battery usage with batterystats and battery historian analyze power use with battery historian understand power management resource limits test power related issues background optimizations reduce app size hardware acceleration best practices for sqlite performance performance best practices monitoring performance about monitoring performance address common performance issues overview anrs crashes slow rendering slow sessions low memory killers lmks memory usage anonymous rss swap bitmap memory usage excessive wake locks stuck partial wake locks excessive wakeups excessive background wi fi scans excessive background network usage excessive battery usage permission denials app startup time dex code optimization jankstats library on google play android vitals healthy releases build ai experiences get started get started hello world developer verification adaptive apps compose for ui ai powered ide training monetization with play ️ optimize by form factor phones tablets foldables android for cars android tv android xr googlebook chromeos wear os build by category games camera media social messaging health fitness productivity enterprise apps get the latest latest updates experimental updates android studio preview jetpack compose libraries wear os releases privacy sandbox ️ excellent experiences learn more ui design design for android mobile desktop experiences xr headsets xr glasses ai glasses widgets wear os android tv android for cars architecture introduction libraries navigation modularization testing kotlin multiplatform quality overview core value user experience accessibility technical quality excellent experiences security overview privacy permissions identity fraud prevention gemini in android studio learn more get android studio core areas samples multidevice support user interfaces background work data and files connectivity all core areas ️ tools and workflow write and debug code build projects test your app performance command line tools gradle plugin api android bench device tech phones tablets foldables googlebook chromeos android for cars android tv android xr wear os android health better together all devices ️ libraries android platform jetpack libraries compose libraries google play services ️ google play sdk index ️ play console go to play console learn more ️ fundamentals play monetization play integrity android vitals play policies play programs ️ games dev center overview play asset delivery play games services play games on pc level up guidelines all play guides ️ libraries play feature delivery play in app updates play in app reviews play install referrer google play services ️ google play sdk index ️ all play libraries ️ tools resources android app bundles brand marketing play console apis ️ the android developer s blog read the latest explore the authors explore categories product news community how tos case studies events programs documentation android developers design plan app quality technical quality power management resource limits stay organized with collections save and categorize content based on your preferences the system prioritizes apps requests for resources based on the device state app state and the app s standby bucket the android system can enforce resource limits in two different ways one way to optimize resource utilization is to defer the execution of work until the device has left a low power device state such as doze mode for example regular jobs and inexact alarms are deferred so they execute after the device leaves doze mode another way is to reduce how much the app can wake up the device and do work based on the app s current standby bucket the system can reduce both the frequency how often the app wakes up the device and the total duration the amount of time the device stays awake for example if the app is in the rare standby bucket the app can run scheduled jobs for a total period of 10 minutes in a rolling 24 hour period note that workmanager uses jobscheduler to schedule tasks when the app is not visible and workers are thus impacted by job resource limits you can understand the restrictions further by reading resource limits based on device state resource limits based on app state resource limits based on app standby bucket note that the device state and app state can supersede app standby bucket limits for example if the device is charging the system allows apps in the rare standby bucket to execute jobs for longer than 10 minutes in a rolling 24 hour period there have been behavior changes that have also impacted resource limits see android behavior changes that impact resource limits to learn more resource limits based on device state the system can also exempt or enforce resource limits based on device state for example a device in the charging state is given unrestricted resource access regardless of its app standby bucket device state jobs alarms network access firebase cloud messaging charging no execution limits except for restricted standby bucket no execution limits for all standby buckets and process states except if user manually restricts app battery no restrictions no restrictions screen on execution limits are enforced based on the standby bucket execution limits are enforced based on the app process and standby bucket access depends on standby bucket or app process state no restrictions screen off and doze is active execution limits are enforced based on the standby bucket and execution is deferred to doze maintenance window execution limits are enforced based on the standby bucket regular alarms deferred to doze maintenance window while idle alarms limited to 7 per hour restricted during doze high priority no execution limits normal priority deferred to doze maintenance window resource limits based on app state whether or not the system enforces the app standby bucket s resource limits depends on the app process importance check out activitymanager runningappprocessinfo importance to understand the different levels of process importance the device user can also choose to manually override the app power management optimizations which supersedes app standby bucket limits app state jobs alarms network app process is visible or in foreground state no execution limits no frequency limits no restrictions app process is running a foreground service execution limits are enforced based on the standby bucket frequency limits are enforced based on the standby bucket no restrictions user manually restricts app battery execution is restricted execution is restricted access depends on standby bucket behavior user manually unrestricts app battery execution limit is generous no execution limits unrestricted unless device is in data saver mode execution quota behavior for jobs changed in android 16 prior to android 16 there was no execution limit when the app was running a foreground service or the user unrestricted the app battery resource limits based on app standby bucket note the values in this table are not a guarantee of execution durations as other device conditions or bucket changes can affect resource constraints the values are also subject to change in future android releases regular jobs expedited jobs alarms and network access can be limited based on the app standby bucket understand how app standby buckets affect your app using these approximate power management limitations as a guideline for optimal performance adhere to the app standby best practices and optimize battery use for task scheduling apis note that starting in android 13 the app s standby bucket no longer determines how many high priority fcms an app can use app standby bucket regular jobs expedited jobs alarms network active up to 20 minutes in a rolling 60 minute period up to 30 mins in a rolling 24h period no execution limits no restrictions working set up to 10 minutes in a rolling 4 hour period up to 15 minutes in a rolling 24h period limited to 10 per hour no restrictions frequent up to 10 minutes in a rolling 12 hour period up to 10 minutes in a rolling 24h period limited to 2 per hour no restrictions rare up to 10 minutes in a rolling 24 hour period up to 10 minutes in a rolling 24h period limited to 1 per hour disabled restricted once per day for up to 10 minutes up to 5 minutes in a rolling 24h window one alarm per day either an exact alarm or an inexact alarm disabled regular jobs describe jobs that are not using setuserinitiated true or setexpedited true flags in jobscheduler or expedited workers in workmanager expedited jobs have a separate execution limit than regular jobs they can be configured in workmanager to continue running using regular job execution limits once expedited limits are exhausted execution quota behavior for jobs changed in android 16 prior to android 16 there was no execution limit when the app is in the active standby bucket android behavior changes that impact resource limits the following android updates made changes to app resource limits android 16 jobscheduler quota optimizations behavior change android has adjusted regular and expedited job execution runtime quota based on the following factors which app standby bucket the app is in if the job starts execution while the app is in a top state if the job is executing while running a foreground service android 13 high priority firebase cloud message fcm quotas behavior change app standby buckets no longer determine how many high priority fcms an app can use system now downgrades the high priority messages if it detects an app consistently sending high priority messages that don t result in a notification for current guidelines on high priority messages refer to firebase documentation on set and manage message priority android 9 app standby buckets feature is introduced android 9 introduces a new battery management feature app standby buckets app standby buckets helps the system prioritize apps requests for resources based on how recently and how frequently the apps are used based on the app usage patterns each app is placed in one of five priority buckets the system limits the device resources available to each app based on which bucket the app is in 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 2026 05 19 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 2026 05 19 utc x follow androiddev on x youtube check out ...
|