App Standby — bu nima, kutish darajalari va ishlash printsipi

Muallif: IT Sectr Nashr etilgan: 2026-03-28 O'qish vaqti: 10 daq

App Standby Android mexanizmi bo'lib, kam ishlatiladigan ilovalarni kutish rejimiga o'tkazadi va batareyani tejash uchun ularning fon faoliyatini cheklaydi. Doze Mode (qurilmaning uyqu rejimi) dan farqli o'laroq, App Standby alohida ilovalar darajasida ekran holati va harakatdan qat'iy nazar ishlaydi. Spetsifikatsiyaga ko'ra Android Developers, 2025, App Standby kam ishlatiladigan ilovalarning energiya sarfini 70% gacha kamaytirishi mumkin.

Asosiy ma'lumotlar

  • App Standby — kam ishlatiladigan Android ilovalari uchun kutish rejimi
  • Darajalar — Active, Working Set, Frequent, Rare — cheklov darajasini belgilaydi
  • Cheklovlar — kechiktirilgan JobScheduler, tarmoq blokirovkasi, AlarmManager kechikishi
  • Bucket — tizim foydalanish chastotasiga qarab darajani avtomatik tayinlaydi
  • FCM — push bildirishnomalari ilovaning bucket-ni vaqtincha oshirishi mumkin

App Standby nima

App Standby Android energiya boshqaruv tizimining komponenti bo'lib, Android 6.0 (API 23) da joriy qilingan va Android 9 (API 28) da sezilarli darajada qayta ishlangan. Uning vazifasi foydalanuvchi qaysi ilovalarni kam ishlatishini aniqlash va ularning fon faoliyatini cheklash: tarmoq so'rovlari, sinxronizatsiya, JobScheduler va AlarmManager. Doze dan farqli o'laroq, App Standby ekran holati yoki qurilma harakatiga bog'liq emas.

Tizim ilovalarni to'rtta bucket (daraja) bo'yicha tasniflaydi: Active, Working Set, Frequent va Rare. Har bir daraja fon faoliyati qanchalik cheklanganligini belgilaydi. Darajalar o'rtasidagi o'tish ilovadan foydalanish namunalari asosida avtomatik ravishda sodir bo'ladi: foydalanuvchi uni qanchalik tez-tez ochishi, bildirishnomalar olishi, vidjetlar bilan o'zaro aloqada bo'lishi.

App Standby Doze Mode bilan birga ishlaydi, lekin uni almashtirmaydi. Agar Doze qurilma harakatsiz bo'lganda barcha ilovalarning fon faoliyatini cheklasa, App Standby qurilma holatidan qat'iy nazar muayyan ilovalarni cheklaydi. Rare darajasidagi ilova, foydalanuvchi uni bir necha kun ochmagan bo'lsa ham, telefondan faol foydalanish paytida cheklovlarga ega bo'ladi.

Android 9+ da Bucket

Android 9 (API 28) dan boshlab Google App Standby Buckets ni joriy qildi — raqamli qiymatlar bilan rasmiy tasnif. Tizim ilovaning keyingi ishga tushirilishini bashorat qilish uchun mashina o'rganishidan foydalanadi. Agar model yaqin soatlarda ilova ochilishini bashorat qilsa, Active bucket oladi. Agar bashorat kam foydalanishni ko'rsatsa — Rare tayinlanadi.

App Standby qanday ishlaydi

App Standby bucket ni aniqlash uchun bir necha omillarni tahlil qiladi: ilovaning foydalanuvchi tomonidan oxirgi ochilish vaqti, o'zaro aloqa chastotasi (kuniga/haftada ishga tushirish soni), FCM bildirishnomalarini olish, ish stolida faol vidjetlarning mavjudligi va AlarmManager obunasi. Ilova qanchalik uzoq ishlatilmasa, uning bucket shunchalik past bo'ladi va cheklovlar shunchalik qattiq bo'ladi.

Tizim xizmati UsageStatsManager ilovalardan foydalanish statistikasini to'playdi va uni StandbyController ga uzatadi — har bir ilova uchun bucket hisoblaydigan framework komponenti. StandbyController shuningdek tizim hodisalarini hisobga oladi: ilova yangilangandan so'ng, uning bucket bir necha kunga Active ga qaytariladi, shunda foydalanuvchi yangi funksiyalarni baholay oladi.

Muhim xususiyat: App Standby ilova jarayonini o'ldirmaydi, balki uning fon imkoniyatlarini cheklaydi. Ilova, foydalanuvchi u bilan o'zaro aloqada bo'lsa (bucket Active), ishlashda davom etadi. Foydalanuvchi ilovani yopib, unga qaytmasa, tizim harakatsizlik vaqtini hisoblashni boshlaydi va bucket ni Working Set yoki Frequent ga tushirishi mumkin.

FCM ning bucket ga ta'siri

FCM high-priority xabarini olish ilovaning bucket ni vaqtincha Active ga oshirishi mumkin. Bu ilovaga cheklovlarsiz vazifani bajarish imkoniyatini beradi (xabarni qayta ishlash, ma'lumotlarni sinxronlashtirish). Biroq, qayta ishlash tugagandan so'ng, bucket asl qiymatiga qaytadi. Google ushbu mexanizmdan muhim bildirishnomalarni yetkazib berish uchun foydalanishni tavsiya qiladi, ilovani “jonli” saqlash uchun emas.

App Standby darajalari

App Standby ilovalarni tasniflash uchun to'rtta darajadan (bucket) foydalanadi. Har bir daraja fon vazifalari uchun kechikish vaqtini belgilaydi: daraja qanchalik past bo'lsa, kechikish shunchalik uzoq bo'ladi. Tizim so'nggi 7–14 kun davomida to'plangan foydalanish statistikasiga asoslanib, ilovani darajalar o'rtasida avtomatik ravishda harakatlantiradi.

BucketTavsifJobScheduler kechikishiTarmoq
ActiveIlova faol ishlatilmoqdaKechikish yo'qTo'liq kirish
Working SetMuntazam ishlatiladi, lekin hozir emas2 soatgachaOynalarda
FrequentTez-tez ishlatiladi, lekin har kuni emas4 soatgachaOynalarda
RareKam ishlatiladigan ilova24 soatgachaOynalarda

Active — faol ilova

Active — foydalanuvchi yaqinda o'zaro aloqada bo'lgan ilova (ochgan, bildirishnoma olgan yoki vidjetdan foydalangan). Bu bucket da cheklovlar yo'q: JobScheduler darhol ishga tushadi, tarmoq mavjud, AlarmManager aniq ishlaydi. Ilova Active holatida qoladi, foydalanuvchi u bilan bir necha soat o'zaro aloqani to'xtatmaguncha.

Working Set va Frequent

Working Set — ilova muntazam ishlatiladi (haftada bir necha marta). Fon vazifalarining kechikishi 2 soatgacha. Frequent — ilova oyda bir necha marta ishlatiladi. Kechikish 4 soatgacha. Ikkala darajada ham tarmoq faqat xizmat oynalarida mavjud, AlarmManager esa kechiktirilishi mumkin. JobScheduler vazifalarni eng yaqin oynada bajaradi.

Rare — kam ishlatiladigan

Rare — eng qattiq daraja, foydalanuvchi 30 kundan ortiq ochmagan ilovalarga tayinlanadi. Fon vazifalarining kechikishi 24 soatga etadi. Tarmoq xizmat oynalaridan tashqarida to'liq bloklanadi, AlarmManager faqat setAndAllowWhileIdle() bayroqlari bilan 9 daqiqada 1 marta cheklovi bilan ishlaydi. FCM high-priority bildirishnomalari hali ham yetkaziladi, lekin bucket ni oshira olmaydi.

App Standby dagi cheklovlar

App Standby bir necha fon operatsiyalari toifalariga cheklovlar qo'yadi. Doze dan farqli o'laroq, App Standby cheklovlari ekran holati va zaryadlovchi qurilmadan qat'iy nazar ishlaydi. Dasturchi ilovani ushbu cheklovlarni hisobga olgan holda loyihalashtirishi kerak, ayniqsa maqsadli auditoriya ilovadan tartibsiz foydalansa.

JobScheduler va WorkManager

JobScheduler — App Standby ta'sir qiladigan asosiy API. Bucket ga qarab vazifalarni bajarish kechikishi 2 dan 24 soatgacha o'zgaradi. WorkManager, JobScheduler dan foydalanadigan (API 23+ da), ushbu kechikishlarga duchor bo'ladi. Vaqt bo'yicha muhim vazifalar uchun Expedited Work dan foydalaning, u Foreground Service ni ishga tushiradi va bucket ga bog'liq emas.

Tarmoq cheklovlari

Working Set, Frequent va Rare bucket laridagi ilovalar istalgan vaqtda ixtiyoriy tarmoq so'rovlarini amalga oshira olmaydi. Tizim tarmoqqa kirishga faqat Doze bilan sinxronlashtirilgan xizmat oynalarida ruxsat beradi. Muhim ma'lumotlarni yuborish uchun FCM high-priority dan keyin xizmat oynasida sinxronizatsiya qiling.

AlarmManager

AlarmManager App Standby da Doze dagi kabi qoidalarga bo'ysunadi: aniq alarmlar (setExact()) kechiktiriladi va setAndAllowWhileIdle() 9 daqiqada 1 marta cheklanadi. Rare bucket uchun kechikish 24 soatga etishi mumkin, bu AlarmManager ni kam ishlatiladigan ilovalarda vazifalarni aniq rejalashtirish uchun yaroqsiz qiladi.

  • JobScheduler — vazifalar bucket ga qarab 2–24 soat kechiktiriladi
  • Tarmoq — Working Set va pastdagilar uchun faqat xizmat oynalarida kirish
  • AlarmManager — aniq alarmlar kechiktiriladi; setAndAllowWhileIdle — 1/9 min
  • SyncManager — hisob sinxronizatsiyasi xizmat oynasigacha kechiktiriladi
  • Widget updates — vidjetlarni yangilash chastotasi kamaytirilishi mumkin

Istisnoni qanday olish mumkin

Istisno App Standby dan ikki yo'l bilan olinishi mumkin: foydalanuvchi batareya sozlamalari orqali (qo'lda Whitelist) yoki tizim Intent i ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS orqali. Biroq, Google istisnolarga kirishni qat'iy tartibga soladi — istisno uchun asosli sababi bo'lmagan ilovalar Google Play da rad etilishi mumkin.

Foydalanuvchi ma'lum bir ilova uchun cheklovlarni qo'lda o'chirishi mumkin: Sozlamalar → Ilovalar → [Ilova] → Batareya → Optimizatsiya → Optimizatsiya qilma. Bu tanlangan ilova uchun App Standby va Doze cheklovlarini butunlay olib tashlaydi. Dasturchi foydalanuvchiga ko'rsatma yoki tizim dialogini ko'rsatishi mumkin, lekin ilovani istisnolarga majburiy qo'sha olmaydi.

Foreground Service bildirishnoma bilan avtomatik ravishda App Standby dan vaqtinchalik istisno oladi. Xizmat ishlayotgan va bildirishnomani ko'rsatayotgan paytda, ilova haqiqiy darajasidan qat'iy nazar Active bucket ga o'tkaziladi. Xizmat to'xtatilgandan so'ng, bucket asl qiymatiga qaytadi. Bu tizim istisnolarini talab qilmasdan fon ishini kafolatlashning eng ishonchli usuli.

Istisnoni qachon so'rash kerak

Whitelist so'rash faqat muhim fon funksiyasiga ega ilovalar uchun ma'noga ega: real vaqt navigatsiyasi, salomatlik monitoringi, VoIP qo'ng'iroqlari, qurilma himoyasi. Aksariyat ilovalar uchun Foreground Service yoki WorkManager dan foydalanish etarli. Google Play, ilova aniq ehtiyojsiz istisno so'rasa, nashrni rad etishi mumkin.

kotlin
// App Standby dan istisno so'rovi
val intent = Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply {
    data = Uri.parse("package:\${applicationContext.packageName}")
}

// Joriy holatni tekshirish
val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager
val isIgnoring = powerManager.isIgnoringBatteryOptimizations(packageName)

App Standby ni test qilish

Test qilish App Standby ni ADB orqali ilovaga istalgan bucket ni majburiy tayinlash va uning xatti-harakatini tekshirish imkonini beradi. Bu fon sinxronizatsiyasiga, bildirishnomalarga yoki davriy yangilanishlarga tayanadigan ilovalar uchun juda muhimdir. Test jismoniy qurilmada yoki Android 9+ bo'lgan emulyatorda o'tkazilishi kerak.

Bucket ni majburiy o'rnatish uchun adb shell am set-standby-bucket [package] [bucket] buyrug'i ishlatiladi, bu erda bucket bo'lishi mumkin: active, working_set, frequent yoki rare. Joriy bucket ni ko'rish uchun — adb shell am get-standby-bucket [package]. Tizim shuningdek adb shell dumpsys usagestats buyrug'i orqali ilovaning uzoq muddatli harakatsizligini simulyatsiya qilish imkonini beradi.

bash
# Ilova uchun Rare bucket ni o'rnatish
$ adb shell am set-standby-bucket com.example.app rare

# Joriy bucket ni ko'rish
$ adb shell am get-standby-bucket com.example.app

# Barcha bucket larni Active ga qaytarish
$ adb shell dumpsys usagestats clear

# Tizimning barcha bucket larini ko'rish
$ adb shell dumpsys usagestats

Nimani tekshirish kerak

Rare bucket o'rnatilgandan so'ng tekshiring: WorkManager vazifasi 24 soat ichida bajariladimi, AlarmManager ishga tushadimi, FCM bildirishnomalari yetkaziladimi, Foreground Service cheklovlarsiz ishlaydimi. WorkManager Expedited Work siyosati bilan hatto Rare bucket da ham darhol bajarilishi kerak, chunki u Foreground Service dan foydalanadi. Oddiy WorkManager vazifalari bucket ga mos ravishda kechiktiriladi.

Eng yaxshi amaliyotlar

App Standby ga chidamli ilovani ishlab chiqish fon vazifalariga ongli yondashishni talab qiladi. Asosiy printsip: ilova har doim Active bucket da deb taxmin qilmang. Fon ishini Frequent va Rare bucket lariga xos kechikishlar bilan to'g'ri ishlaydigan qilib loyihalashtiring.

WorkManager ni Expedited Work bilan ishlating

Expedited Work (WorkManager 2.7+) Foreground Service ni ishga tushiradi, bu vazifaga bucket dan qat'iy nazar darhol bajarish imkonini beradi. Bu kechiktirib bo'lmaydigan vazifalar uchun optimal tanlovdir: xabar yuborish, to'lovdan so'ng sinxronizatsiya, kiruvchi qo'ng'iroqni qayta ishlash. Oddiy WorkManager vazifalari bucket ni hisobga olgan holda xizmat oynalarida bajariladi.

Qayta faollashtirish uchun FCM

FCM high-priority xabarlaridan ilovani App Standby dan uyg'otish uchun foydalaning. Ilova bunday xabarni olganda, uning bucket vaqtincha Active ga ko'tariladi va kerakli vazifalarni bajarishi mumkin (sinxronizatsiya, ma'lumotlarni yangilash). Qayta ishlash tugagandan so'ng, bucket boshlang'ich darajaga qaytadi.

Doimiy xotirada saqlashdan saqlaning

App Standby ni doimiy fon xizmatlari, WakeLock yoki davriy FCM xabarlari bilan chetlab o'tishga urinmang. Google bunday amaliyotlarga qarshi faol kurashadi — ilova energiya talab qiluvchi deb belgilanishi va yanada qattiqroq cheklanishi mumkin. Davriy vazifalar uchun WorkManager dan, Foreground Service dan esa faqat vazifa foydalanuvchiga haqiqatan ko'rinadigan bo'lganda foydalaning.

  • WorkManager — afzal qilingan API; Expedited Work vazifalarni kechiktirmasdan bajaradi
  • FCM high-priority — xabarni qayta ishlash uchun bucket ni vaqtincha Active ga oshiradi
  • Chetlab o'tmang App Standby ni — bu tizim tomonidan ilova bloklanishiga olib keladi
  • Foreground Service — ish vaqti davomida ilovani vaqtincha Active ga o'tkazadi
  • Test qiling ilovani Rare va Frequent bucket larida ADB orqali har bir nashrdan oldin

Tez-tez so'raladigan savollar

Android da App Standby nima?

App Standby Android mexanizmi bo'lib, ilovalarni foydalanish chastotasiga qarab tasniflaydi va kam ishlatiladiganlarning fon faoliyatini cheklaydi. Doze dan farqli o'laroq, App Standby ilova darajasida ekran holati va qurilma harakatidan qat'iy nazar ishlaydi.

App Standby ning qanday darajalari bor?

4 daraja bor: Active (cheklovlarsiz), Working Set (2 soatgacha kechikish), Frequent (4 soatgacha kechikish) va Rare (24 soatgacha kechikish). Daraja ilovadan foydalanish chastotasiga qarab avtomatik aniqlanadi.

App Standby Doze Mode dan qanday farq qiladi?

App Standby qurilma holatidan qat'iy nazar muayyan kam ishlatiladigan ilovalarni cheklaydi. Doze Mode qurilma harakatsiz bo'lganda barcha ilovalarni cheklaydi (ekran o'chgan, harakat yo'q). Ular parallel ishlaydi va Android energiya tejash tizimida bir-birini to'ldiradi.

Ilovamning bucket ini qanday bilsam bo'ladi?

ADB buyrug'idan foydalaning: adb shell am get-standby-bucket [package]. Dasturiy ravishda — UsageStatsManager.getAppStandbyBucket() orqali, Android 9 (API 28) dan boshlab mavjud. Usul bucket ning raqamli identifikatorini qaytaradi: 10 (Active), 20 (Working Set), 30 (Frequent), 40 (Rare).

App Standby da vazifa bajarilishini qanday kafolatlash mumkin?

WorkManager Expedited Work yoki Foreground Service dan bildirishnoma bilan foydalaning. Expedited Work Foreground Service ni ishga tushiradi va bucket dan qat'iy nazar bajarilishni kafolatlaydi. Oddiy WorkManager vazifalari ilovaning joriy darajasiga mos ravishda kechiktiriladi.

Xulosa

  • App Standby — ilovalarni foydalanish chastotasiga qarab 4 daraja bo'yicha tasniflash
  • Active — cheklovlarsiz; Rare — fon vazifalari uchun 24 soatgacha kechikish
  • Cheklovlar — JobScheduler kechiktiriladi, tarmoq bloklanadi, AlarmManager kechiktiriladi
  • Bucket — foydalanuvchi xatti-harakatiga qarab UsageStatsManager orqali avtomatik aniqlanadi
  • Foreground Service — ish vaqti davomida ilovani vaqtincha Active ga o'tkazadi
  • Expedited Work — Foreground Service orqali darhol bajarish bilan WorkManager
  • Test qilishadb shell am set-standby-bucket har bir darajadagi xatti-harakatni tekshirish uchun

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing