App Standby — ano ito, mga antas ng paghihintay at prinsipyo ng paggana

May-akda: IT Sectr Nai-publish: 2026-03-28 Oras ng pagbabasa: 10 min

Ang App Standby ay isang mekanismo ng Android na naglilipat ng mga bihirang ginagamit na app sa mode ng paghihintay, na naglilimita sa kanilang background activity upang makatipid ng baterya. Hindi tulad ng Doze Mode (sleep mode ng device), ang App Standby ay gumagana sa antas ng indibidwal na app anuman ang estado ng screen at paggalaw. Ayon sa spesipikasyon Android Developers, 2025, ang App Standby ay maaaring mabawasan ang konsumo ng enerhiya ng mga bihirang ginagamit na app ng hanggang 70% sa pamamagitan ng pag-block sa kanilang background work.

Mga Pangunahing Punto

  • App Standby — mode ng paghihintay para sa mga bihirang ginagamit na Android app
  • Mga Antas — Active, Working Set, Frequent, Rare — tumutukoy sa antas ng mga paghihigpit
  • Mga Paghihigpit — naantalang JobScheduler, pag-block ng network, pagkaantala ng AlarmManager
  • Bucket — awtomatikong nagtatalaga ang system ng antas batay sa dalas ng paggamit
  • FCM — ang mga push notification ay maaaring pansamantalang magtaas ng bucket ng app

Ano ang App Standby

App Standby ay isang component ng sistema ng pamamahala ng enerhiya ng Android, ipinakilala sa Android 6.0 (API 23) at makabuluhang muling idisenyo sa Android 9 (API 28). Ang gawain nito ay tukuyin kung aling mga app ang bihirang ginagamit ng user at limitahan ang kanilang background activity: mga network request, pag-sync, JobScheduler at AlarmManager. Hindi tulad ng Doze, ang App Standby ay hindi nakadepende sa estado ng screen o paggalaw ng device.

Inuuri ng system ang mga app sa apat na bucket (antas): Active, Working Set, Frequent at Rare. Tinutukoy ng bawat antas kung gaano kalaki ang limitasyon ng background activity. Ang paglipat sa pagitan ng mga antas ay awtomatikong nangyayari batay sa mga pattern ng paggamit ng app: gaano kadalas ito binubuksan ng user, tumatanggap ng mga notification, nakikipag-ugnayan sa mga widget.

Ang App Standby ay gumagana kasama ng Doze Mode, ngunit hindi ito pinapalitan. Kung nililimitahan ng Doze ang background activity ng lahat ng app kapag hindi aktibo ang device, nililimitahan ng App Standby ang mga partikular na app anuman ang estado ng device. Ang isang app na may antas na Rare ay magkakaroon ng mga paghihigpit kahit na sa aktibong paggamit ng telepono, kung hindi ito binuksan ng user sa loob ng ilang araw.

Bucket sa Android 9+

Simula sa Android 9 (API 28), ipinakilala ng Google ang App Standby Buckets — isang pormal na klasipikasyon na may mga numerikong halaga. Gumagamit ang system ng machine learning upang mahulaan ang susunod na paglunsad ng app. Kung hinuhulaan ng modelo na ang app ay bubuksan sa mga susunod na oras, makakakuha ito ng bucket na Active. Kung ang hula ay nagpapahiwatig ng bihirang paggamit — ang Rare ay itinalaga.

Paano gumagana ang App Standby

App Standby ay sumusuri ng ilang salik upang matukoy ang bucket: oras mula noong huling pagbukas ng app ng user, dalas ng interaksyon (bilang ng mga paglunsad bawat araw/linggo), pagtanggap ng mga FCM notification, pagkakaroon ng mga aktibong widget sa home screen at subscription sa AlarmManager. Kung mas matagal na hindi ginagamit ang app, mas mababa ang bucket nito at mas mahigpit ang mga paghihigpit.

Ang system service na UsageStatsManager ay nangongolekta ng mga istatistika ng paggamit ng app at ipinapasa ang mga ito sa StandbyController — isang component ng framework na kumukwenta ng bucket para sa bawat app. Isinasaalang-alang din ng StandbyController ang mga system event: pagkatapos ng pag-update ng app, ang bucket nito ay nirerest sa Active sa loob ng ilang araw upang masuri ng user ang mga bagong feature.

Mahalagang katangian: App Standby ay hindi pumapatay sa proseso ng app, ngunit nililimitahan ang mga kakayahan nito sa background. Patuloy na gumagana ang app kung nakikipag-ugnayan ang user dito (bucket Active). Sa sandaling i-minimize ng user ang app at hindi bumalik dito, sinisimulan ng system na bilangin ang oras ng hindi paggamit at maaaring ibaba ang bucket sa Working Set o Frequent.

Epekto ng FCM sa bucket

Ang pagtanggap ng FCM high-priority na mensahe ay maaaring pansamantalang magtaas ng bucket ng app sa Active. Nagbibigay ito sa app ng kakayahang magsagawa ng task (iproseso ang mensahe, i-sync ang data) nang walang mga paghihigpit. Gayunpaman, pagkatapos ng pagproseso, ang bucket ay babalik sa orihinal na halaga. Inirerekomenda ng Google ang paggamit ng mekanismong ito para sa paghahatid ng mahahalagang notification, hindi para panatilihing “buhay” ang app.

Mga Antas ng App Standby

App Standby ay gumagamit ng apat na antas (bucket) para sa klasipikasyon ng mga app. Tinutukoy ng bawat antas ang oras ng pagkaantala para sa mga background task: kung mas mababa ang antas, mas mahaba ang pagkaantala. Awtomatikong inililipat ng system ang app sa pagitan ng mga antas batay sa mga istatistika ng paggamit na nakolekta sa nakaraang 7–14 na araw.

BucketPaglalarawanPagkaantala ng JobSchedulerNetwork
ActiveAktibong ginagamit ang appWalang pagkaantalaBuong access
Working SetRegular na ginagamit, ngunit hindi ngayonHanggang 2 orasSa mga window
FrequentMadalas gamitin, ngunit hindi araw-arawHanggang 4 na orasSa mga window
RareBihirang gamitin na appHanggang 24 na orasSa mga window

Active — aktibong app

Active — ang app na kamakailang nakipag-ugnayan ang user (inilunsad, nakatanggap ng notification o gumamit ng widget). Sa bucket na ito ay walang mga paghihigpit: agad na tumatakbo ang JobScheduler, available ang network, gumagana nang eksakto ang AlarmManager. Nananatili ang app sa Active hanggang sa huminto ang user sa pakikipag-ugnayan dito sa loob ng ilang oras.

Working Set at Frequent

Working Set — regular na ginagamit ang app (ilang beses sa isang linggo). Pagkaantala ng mga background task hanggang 2 oras. Frequent — ginagamit ang app ng ilang beses sa isang buwan. Pagkaantala hanggang 4 na oras. Sa parehong antas, ang network ay available lamang sa mga service window, at ang AlarmManager ay maaaring maantala. Isinasagawa ng JobScheduler ang mga task sa pinakamalapit na window.

Rare — bihirang gamitin

Rare — ang pinakamahigpit na antas, itinalaga sa mga app na hindi binuksan ng user nang higit sa 30 araw. Ang pagkaantala ng mga background task ay umaabot ng 24 na oras. Ang network ay ganap na naka-block sa labas ng mga service window, ang AlarmManager ay gumagana lamang sa mga flag na setAndAllowWhileIdle() na may limitasyon na 1 beses sa bawat 9 minuto. Ang mga FCM high-priority notification ay naihahatid pa rin, ngunit hindi maaaring magtaas ng bucket.

Mga Paghihigpit sa App Standby

App Standby ay nagpapataw ng mga paghihigpit sa ilang kategorya ng mga background operation. Hindi tulad ng Doze, ang mga paghihigpit ng App Standby ay gumagana anuman ang estado ng screen at charger. Dapat idisenyo ng developer ang app na isinasaalang-alang ang mga paghihigpit na ito, lalo na kung ang target na audience ay gumagamit ng app nang hindi regular.

JobScheduler at WorkManager

JobScheduler — ang pangunahing API na apektado ng App Standby. Depende sa bucket, ang pagkaantala ng pagpapatupad ng task ay mula 2 hanggang 24 na oras. Ang WorkManager, na gumagamit ng JobScheduler sa ilalim ng hood (sa API 23+), ay napapailalim din sa mga pagkaantala na ito. Para sa mga task na kritikal sa oras, gamitin ang Expedited Work, na naglulunsad ng Foreground Service sa ilalim ng hood at hindi nakadepende sa bucket.

Mga Paghihigpit sa Network

Ang mga app sa bucket na Working Set, Frequent at Rare ay hindi maaaring magsagawa ng mga arbitraryong network request sa anumang oras. Pinapayagan lamang ng system ang access sa network sa mga service window na naka-sync sa Doze. Para sa pagpapadala ng kritikal na data, gamitin ang FCM high-priority na may kasunod na pag-sync sa service window.

AlarmManager

AlarmManager sa App Standby ay napapailalim sa parehong mga patakaran tulad ng sa Doze: ang mga eksaktong alarm (setExact()) ay naaantala, at ang setAndAllowWhileIdle() ay limitado sa 1 beses bawat 9 minuto. Para sa bucket Rare, ang pagkaantala ay maaaring umabot ng 24 na oras, na ginagawang hindi angkop ang AlarmManager para sa eksaktong pag-iiskedyul ng mga task sa mga bihirang ginagamit na app.

  • JobScheduler — ang mga task ay naaantala ng 2–24 na oras depende sa bucket
  • Network — access lamang sa mga service window para sa Working Set at mas mababa
  • AlarmManager — ang mga eksaktong alarm ay naaantala; setAndAllowWhileIdle — 1/9 min
  • SyncManager — ang pag-sync ng account ay naaantala hanggang sa service window
  • Widget updates — ang dalas ng pag-update ng widget ay maaaring bawasan

Paano makakuha ng exemption

Ang exemption mula sa App Standby ay maaaring makuha sa dalawang paraan: sa pamamagitan ng mga setting ng baterya ng user (manual na Whitelist) o sa pamamagitan ng system Intent na ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS. Gayunpaman, mahigpit na kinokontrol ng Google ang access sa mga exemption — ang mga app na walang wastong dahilan para sa exemption ay nanganganib na tanggihan sa Google Play.

Maaaring manual na i-disable ng user ang mga paghihigpit para sa isang partikular na app sa pamamagitan ng Settings → Apps → [App] → Baterya → Optimization → Huwag i-optimize. Ganap nitong inaalis ang mga paghihigpit ng App Standby at Doze para sa napiling app. Maaaring magpakita ang developer ng instruksyon o system dialog sa user, ngunit hindi maaaring pilitin na idagdag ang app sa mga exemption.

Ang Foreground Service na may notification ay awtomatikong nakakakuha ng pansamantalang exemption mula sa App Standby. Habang tumatakbo ang service at nagpapakita ng notification, ang app ay inililipat sa bucket Active anuman ang aktwal na antas nito. Pagkatapos ng paghinto ng service, ang bucket ay babalik sa orihinal na halaga. Ito ang pinaka-maaasahang paraan upang garantiyahan ang background work nang hindi humihingi ng mga system exemption.

Kailan humingi ng exemption

Ang paghingi ng Whitelist ay may katuturan lamang para sa mga app na may kritikal na background functionality: real-time navigation, health monitoring, VoIP calls, device protection. Para sa karamihan ng mga app, sapat na ang paggamit ng Foreground Service o WorkManager. Maaaring tanggihan ng Google Play ang publikasyon kung ang app ay humihingi ng exemption nang walang malinaw na pangangailangan.

kotlin
// Hiling ng exemption mula sa App Standby
val intent = Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply {
    data = Uri.parse("package:\${applicationContext.packageName}")
}

// Pagsusuri ng kasalukuyang status
val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager
val isIgnoring = powerManager.isIgnoringBatteryOptimizations(packageName)

Pagsubok ng App Standby

Ang pagsubok ng App Standby sa pamamagitan ng ADB ay nagpapahintulot na pilit na italaga ang anumang bucket sa app at suriin ang pag-uugali nito. Ito ay kritikal para sa mga app na umaasa sa background synchronization, notification o periodic updates. Ang pagsubok ay dapat isagawa sa isang pisikal na device o emulator na may Android 9+.

Para sa pilit na pagtatakda ng bucket, gamitin ang command na adb shell am set-standby-bucket [package] [bucket], kung saan ang bucket ay maaaring: active, working_set, frequent o rare. Para sa pagtingin ng kasalukuyang bucket — adb shell am get-standby-bucket [package]. Pinapayagan din ng system ang simulation ng matagal na hindi paggamit ng app sa pamamagitan ng command na adb shell dumpsys usagestats.

bash
# Pagtatakda ng bucket Rare para sa app
$ adb shell am set-standby-bucket com.example.app rare

# Pagtingin sa kasalukuyang bucket
$ adb shell am get-standby-bucket com.example.app

# Pag-reset ng lahat ng bucket sa Active
$ adb shell dumpsys usagestats clear

# Pagtingin sa lahat ng bucket ng system
$ adb shell dumpsys usagestats

Ano ang suriin

Pagkatapos itakda ang bucket na Rare suriin: kung ang WorkManager task ay naisasagawa sa loob ng 24 na oras, kung ang AlarmManager ay nag-a-activate, kung ang mga FCM notification ay naihahatid, kung ang Foreground Service ay gumagana nang walang mga paghihigpit. Ang WorkManager na may patakarang Expedited Work ay dapat agad na maisagawa kahit sa bucket na Rare, dahil gumagamit ito ng Foreground Service. Ang mga ordinaryong WorkManager task ay maaantala ayon sa bucket.

Mga Pinakamahusay na Kasanayan

Ang pag-develop ng app na lumalaban sa App Standby ay nangangailangan ng may kamalayang diskarte sa mga background task. Ang pangunahing prinsipyo: huwag ipalagay na ang app ay palaging nasa bucket na Active. Idisenyo ang background work upang ito ay gumana nang tama sa mga pagkaantala na katangian ng mga bucket na Frequent at Rare.

Gamitin ang WorkManager na may Expedited Work

Ang Expedited Work (WorkManager 2.7+) ay naglulunsad ng Foreground Service sa ilalim ng hood, na nagbibigay sa task ng agarang pagpapatupad anuman ang bucket. Ito ang pinakamainam na pagpipilian para sa mga task na hindi maaaring maantala: pagpapadala ng mensahe, pag-sync pagkatapos ng pagbabayad, pagproseso ng papasok na tawag. Ang mga ordinaryong WorkManager task ay naisasagawa sa mga service window na isinasaalang-alang ang bucket.

FCM para sa reaktivasyon

Gamitin ang mga mensaheng FCM high-priority upang gisingin ang app mula sa App Standby. Kapag ang app ay nakatanggap ng ganitong mensahe, ang bucket nito ay pansamantalang tumataas sa Active at maaaring magsagawa ng mga kinakailangang task (pag-sync, pag-update ng data). Pagkatapos ng pagproseso, ang bucket ay babalik sa orihinal na antas.

Iwasan ang permanenteng pagpapanatili sa memorya

Huwag subukang i-bypass ang App Standby gamit ang mga permanenteng background service, WakeLock o periodic FCM messages. Aktibong nilalabanan ng Google ang mga ganitong kasanayan — ang app ay maaaring mamarkahan bilang energy-intensive at higit pang limitahan. Gamitin ang WorkManager para sa mga periodic task at Foreground Service lamang kapag ang task ay talagang nakikita ng user.

  • WorkManager — ginustong API; ang Expedited Work ay nagsasagawa ng mga task nang walang pagkaantala
  • FCM high-priority — pansamantalang itinataas ang bucket sa Active para sa pagproseso ng mensahe
  • Huwag i-bypass ang App Standby — ito ay humahantong sa pag-block ng app ng system
  • Foreground Service — pansamantalang inililipat ang app sa Active habang tumatakbo
  • Subukan ang app sa mga bucket na Rare at Frequent sa pamamagitan ng ADB bago ang bawat release

Mga Madalas Itanong

Ano ang App Standby sa Android?

App Standby ay isang mekanismo ng Android na nag-uuri ng mga app ayon sa dalas ng paggamit at naglilimita sa background activity ng mga bihirang ginagamit. Hindi tulad ng Doze, ang App Standby ay gumagana sa antas ng app anuman ang estado ng screen at paggalaw ng device.

Ano-ano ang mga antas ng App Standby?

Mayroong 4 na antas: Active (walang paghihigpit), Working Set (pagkaantala hanggang 2 oras), Frequent (pagkaantala hanggang 4 na oras) at Rare (pagkaantala hanggang 24 na oras). Ang antas ay awtomatikong tinutukoy batay sa dalas ng paggamit ng app.

Paano naiiba ang App Standby sa Doze Mode?

App Standby ay naglilimita sa mga partikular na bihirang ginagamit na app anuman ang estado ng device. Doze Mode ay naglilimita sa lahat ng app kapag hindi aktibo ang device (naka-off ang screen, walang paggalaw). Gumagana sila nang magkatulad at nagpupuno sa isa't isa sa sistema ng pagtitipid ng enerhiya ng Android.

Paano malalaman ang bucket ng aking app?

Gamitin ang ADB command: adb shell am get-standby-bucket [package]. Sa programmatically — sa pamamagitan ng UsageStatsManager.getAppStandbyBucket(), available simula sa Android 9 (API 28). Ang pamamaraan ay nagbabalik ng numerikong identifier ng bucket: 10 (Active), 20 (Working Set), 30 (Frequent), 40 (Rare).

Paano garantiyahan ang pagpapatupad ng task sa App Standby?

Gamitin ang WorkManager Expedited Work o Foreground Service na may notification. Ang Expedited Work ay naglulunsad ng Foreground Service sa ilalim ng hood at ginagarantiyahan ang pagpapatupad anuman ang bucket. Ang mga ordinaryong WorkManager task ay maaantala ayon sa kasalukuyang antas ng app.

Buod

  • App Standby — klasipikasyon ng mga app sa 4 na antas batay sa dalas ng paggamit
  • Active — walang paghihigpit; Rare — pagkaantala hanggang 24 na oras para sa background task
  • Mga Paghihigpit — naantalang JobScheduler, naka-block na network, naantalang AlarmManager
  • Bucket — awtomatikong tinutukoy sa pamamagitan ng UsageStatsManager batay sa gawi ng user
  • Foreground Service — pansamantalang inililipat ang app sa Active habang tumatakbo
  • Expedited Work — WorkManager na may agarang pagpapatupad sa pamamagitan ng Foreground Service
  • Pagsubokadb shell am set-standby-bucket upang suriin ang pag-uugali sa bawat antas

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din