Doze Mode: mohiyati, fazalari va energiya tejash mexanizmi

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

Doze Mode — Android 6.0 Marshmallow versiyasida joriy qilingan energiya tejash rejimi bo'lib, qurilma harakatsiz bo'lganda ilovalarning fon faolligini sezilarli darajada cheklaydi. Tizim ilovalarni kam energiya sarfi holatiga o'tkazadi, tarmoq so'rovlari, sinxronizatsiya va JobSchedulerni kechiktirib, batareyaning ishlash muddatini uzaytiradi. Android Developers, 2025 tahliliga ko'ra, Doze Mode qurilmaning kutish vaqtini model va OT versiyasiga qarab 2–3 baravargacha oshirish imkonini beradi.

Asosiy

  • Doze Mode — Android 6+ ning harakatsizlik paytida fon faolligini cheklovchi uyqu rejimi
  • Ikki faza — Light Doze (yengil uyqu) va Deep Doze (chuqur uyqu) turli cheklovlar bilan
  • Xizmat oynalari — Deep Doze-da ilovalar vazifalarni bajarishi mumkin bo'lgan qisqa davrlar
  • Whitelist — Doze-da fon ishlashiga ruxsat berilgan ilovalar uchun istisnolar
  • GCM/FCM — yuqori prioritetli push bildirishnomalar qurilmani Doze-dan uyg'otadi

Doze Mode nima

Doze Mode — Android-ning o'rnatilgan energiya tejash mexanizmi bo'lib, qurilma zaryadlovchiga ulanmagan, ekran o'chirilgan va foydalanuvchi ma'lum vaqt davomida qurilma bilan o'zaro aloqada bo'lmaganda faollashadi. Doze-ning maqsadi — fon ilovalari faolligini minimallashtirish orqali kutish rejimida batareya umrini maksimal darajada uzaytirishdir. Tizim JobScheduler, hisob sinxronizatsiyasi, AlarmManager va tarmoq so'rovlarini kechiktiradi.

Bu rejim Android 6.0 Marshmallow (API 23) da taqdim etilgan va keyingi versiyalarda sezilarli darajada takomillashtirilgan. Android 7.0 Nougat da qurilma harakati paytida faollashadigan ikkinchi faza (Light Doze) paydo bo'ldi. Android 8.0 Doze bilan birga ishlaydigan fon xizmatlariga qo'shimcha cheklovlar kiritdi. Android 12+ da Doze foydalanuvchi xatti-harakatlarini tahlil qiluvchi yangilangan batareya boshqaruvi tizimi bilan integratsiya qilindi.

Tushunish muhim: Doze Mode ilovalarni butunlay o'chirmaydi. Ularni kechiktirilgan vazifalar holatiga o'tkazadi, lekin jarayonlarni o'ldirmaydi. Bildirishnoma bilan Foreground Service ishlashda davom etadi, yuqori prioritetli push bildirishnomalari (FCM high-priority) yetkaziladi va budilniklar jadval bo'yicha ishga tushadi. Doze faqat foydalanuvchi hozir ko'rmaydigan va kutmaydigan fon operatsiyalariga ta'sir qiladi.

Faollashtirish shartlari

Doze Mode barcha shartlar bajarilganda faollashadi: ekran 30 daqiqadan ko'proq o'chirilgan (birinchi faollashish), qurilma harakatsiz (akselometrdan foydalaniladi), zaryadlovchiga ulanmagan. Agar foydalanuvchi telefonni qo'liga olsa yoki zaryadlovchini ulasa, Doze darhol deaktiv bo'ladi. Android 7+ da Light Doze qurilma harakatida ham, 5 daqiqa harakatsizlikdan so'ng faollashadi.

Doze Mode qanday ishlaydi

Doze Mode sensorlar, ekran va zaryadlovchi holatini tahlil qiluvchi DeviceIdleController tizim xizmati orqali fon faolligini boshqaradi. Barcha faollashtirish shartlari bajarilganda, tizim ilovalarni kutish rejimiga o'tkazadi va ularning so'rovlarini xizmat oynalarida guruhlaydi. Ushbu oynalar ichida barcha kechiktirilgan vazifalar — tarmoq chaqiruvlari, sinxronizatsiya, AlarmManager — partiyalab bajariladi.

Tizim PowerManager i qaysi ilovalar Doze-dan chiqishi mumkinligini nazorat qiladi. Yuqori prioritetli push bildirishnomalari (FCM high-priority) xabarni yetkazish uchun qurilmani uyg'otishi mumkin. Shuningdek, tizim foydalanuvchi tomonidan batareya optimallashtirish Whitelist iga qo'shilgan ilovalar uchun Doze-ni e'tiborsiz qoldiradi. Qolgan barcha ilovalar keyingi xizmat oynasini kutishi kerak.

Deep Doze-da xizmat oynalarining davomiyligi eksponensial ravishda oshadi: birinchi oyna 1 soatdan keyin, ikkinchisi 2 soatdan keyin, uchinchisi 4 soatdan keyin va hokazo maksimal 12 soat oralig'igacha. Bu shuni anglatadiki, qurilma Doze-da qancha uzoq qolsa, ilovalar fon vazifalarini shuncha kam bajarishi mumkin — batareya maksimal darajada tejaladi.

Tarmoq so'rovlariga ta'sir

Doze Mode-da barcha tarmoq so'rovlari xizmat oynasi kelguncha to'xtatiladi. Faqat FCM high-priority xabarlari (payload-da “high_priority” tegi bilan) va AlarmManager dan setAndAllowWhileIdle() yoki setExactAndAllowWhileIdle() bayroqlari bo'lgan signallar bundan mustasno. Retrofit, OkHttp yoki Volley orqali oddiy tarmoq chaqiruvlari oyna ochilguncha bajarilmaydi.

Doze Mode fazalari

Doze Mode ikki fazadan iborat: Light Doze (yengil uyqu) va Deep Doze (chuqur uyqu). Har bir faza o'z cheklovlarini qo'llaydi va turli faollashtirish chegaralariga ega. Fazalar orasidagi farqni tushunish energiya tejash rejimiga chidamli fon vazifalarini loyihalashtiruvchi dasturchi uchun muhimdir.

Light Doze (yengil uyqu)

Light Doze qurilmaning 5–30 daqiqa harakatsizligidan so'ng faollashadi (ekran o'chik, harakat yo'q). Bu fazada tarmoq so'rovlari va sinxronizatsiya to'xtatiladi, lekin AlarmManager va JobScheduler kichik kechikishlar bilan ishlashda davom etadi. Ilovalar push bildirishnomasini olganda yoki zaryadlovchiga ulanganda Light Doze-dan chiqishi mumkin. Light Doze to'liq harakatsizlikni talab qilmaydi — qurilma harakatda bo'lishi mumkin.

Deep Doze (chuqur uyqu)

Deep Doze harakatsiz qurilmada (akselometr harakatni qayd etmaydi) 60–90 daqiqa harakatsizlikdan so'ng yuz beradi. Deep Doze-da tizim vazifalarni ancha agressiv kechiktiradi: xizmat oynalari kamroq ochiladi (eksponensial o'sib boruvchi interval bilan), AlarmManager faqat setAndAllowWhileIdle() bayroqlari bilan ishga tushadi va WakeLock odatdagi rejimda ishlamaydi. Whitelist-da bo'lmagan ilovalar fon faolligini deyarli butunlay yo'qotadi.

ParametrLight DozeDeep Doze
Faollashish vaqti5–30 daqiqa60–90 daqiqa
Harakat talabiTalab qilinmaydiHarakatsizlik
Oyna oralig'i10–60 daqiqa1–12 soat
AlarmManagerKechikishlar bilan ishlaydiFaqat withAllowWhileIdle
Oynalarda tarmoqMavjudMavjud

Doze Mode cheklovlari

Doze Mode dasturchi ilovani loyihalashda e'tiborga olishi kerak bo'lgan bir necha toifa cheklovlarni qo'llaydi. Ushbu cheklovlarga e'tibor bermaslik fon vazifalarining bajarilmasligiga olib keladi va foydalanuvchi ilovaning noto'g'ri ishlashini ko'radi — yangilanishlarning yo'qligi, yuborilmagan xabarlar, bajarilmagan sinxronizatsiya.

Tarmoq cheklovlari

Barcha tarmoq so'rovlari xizmat oynasi kelguncha bloklanadi. Bu HTTP chaqiruvlari, WebSocket ulanishlari, fayl yuklashlarga tegishli. Istisno — Doze-ga bog'liq bo'lmagan alohida Google Play Services kanali orqali o'tadigan FCM high-priority xabarlari. Kritik ma'lumotlarni sinxronizatsiya qilish uchun NetworkType.CONNECTED siyosati bilan WorkManager dan foydalanish tavsiya etiladi.

AlarmManager cheklovlari

AlarmManager Deep Doze-da setAndAllowWhileIdle() va setExactAndAllowWhileIdle() metodlari bilan yaratilganlardan tashqari barcha budilniklarni kechiktiradi. Ammo hatto bu metodlarning ham cheklovi bor — ilova uchun 9 daqiqada 1 martadan ko'p bo'lmagan. Deep Doze-da setExact() aniq budilniklari belgilangan vaqtda ishga tushishiga kafolat bermaydi.

WakeLock cheklovlari

WakeLock Doze Mode-da nostandart ishlaydi: tizim Whitelist-dan tashqari ilovalar uchun uyqu blokirovkasini ushlab turmaydi. Ilova PARTIAL_WAKE_LOCK-ni to'g'ri olgan bo'lsa ham, Deep Doze kelganda tizim uni majburiy bo'shatishi mumkin. Doze-da vazifaning bajarilishini kafolatlashning yagona yo'li — bildirishnoma bilan Foreground Service dan foydalanish.

  • Tarmoq — FCM high-priority dan tashqari barcha so'rovlar xizmat oynasigacha kechiktiriladi
  • AlarmManager — aniq budilniklar kechiktiriladi; setAndAllowWhileIdle — 1/9 daqiqadan ko'p emas
  • WakeLock — Whitelist-dan tashqari ilovalar uchun majburiy bo'shatiladi
  • JobScheduler — vazifalar eksponensial interval bilan xizmat oynalarida guruhlanadi
  • Sinxronizatsiya — Account SyncManager Doze-dan chiqishgacha to'xtatiladi

Whitelist va istisnolar

Whitelist (oq ro'yxat) Doze — tizim minimal cheklovlar bilan energiya tejash rejimida fon faolligiga ruxsat beradigan ilovalar ro'yxati. Foydalanuvchi ilovalarni qo'lda qo'shishi mumkin: Sozlamalar → Batareya → Batareya optimallashtirish. Tizim ilovalari, ishga tushirish dasturlari va Google Play Services xizmatlari sukut bo'yicha Whitelist-da.

Dasturchi Intent ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS bilan tizim dialogi orqali Whitelist-ga qo'shishni so'rashi mumkin. Buning uchun manifestda REQUEST_IGNORE_BATTERY_OPTIMIZATIONS ruxsati talab qilinadi. Biroq, Google asosli sababsiz istisno so'rashni tavsiya etmaydi — bu imkoniyatdan suiiste'mol qiladigan ilovalar Google Play da nashr etilishda rad etilishi mumkin.

Whitelist bo'lmasa, ilova qurilmani Doze-dan uyg'otish uchun FCM high-priority dan foydalanishi mumkin. Har bir bunday xabar ilovaga vazifani bajarish uchun qisqa oyna (10–30 soniya) beradi. Uzoqroq operatsiyalar uchun ilova Doze xizmat oynalarida ishlashda davom etadigan Foreground Service-ni ishga tushirishi kerak. Google shuningdek, ba'zi ilova turlari uchun ozod qilish mexanizmini taqdim etadi: navigatsiya, tibbiy, messenjer ilovalari.

Whitelist holatini qanday tekshirish mumkin

Ilovaning batareya optimallashtirish Whitelist ida ekanligini tekshirish uchun powerManager.isIgnoringBatteryOptimizations() metodidan foydalaniladi. Agar metod false qaytarsa, ilova Doze-ning barcha cheklovlariga bo'ysunadi. Agar true — ilova Deep Doze-da ham Wakelock, AlarmManager va tarmoqdan cheklovlarsiz foydalanishi mumkin. Biroq, bu imtiyozdan suiiste'mol qilish foydalanuvchilarning yomon baholariga olib keladi.

Doze Mode-ni sinash

Sinash — ilovaning Doze Mode-dagi xatti-harakatini tekshirish majburiy rivojlanish bosqichidir, chunki Doze fon funksiyalarining ishini buzishi mumkin. Android ADB orqali qurilmani majburiy Light Doze va Deep Doze-ga o'tkazish uchun buyruq satri vositalarini taqdim etadi. Sinash fizik qurilmada yoki Android 6.0+ emulyatorida o'tkazilishi kerak.

Light Doze ga kirish uchun adb shell dumpsys deviceidle step light buyrug'i ishlatiladi. Deep Doze uchun — adb shell dumpsys deviceidle step deep. adb shell dumpsys deviceidle force-idle deep buyrug'i standart kutish vaqtini kutmasdan qurilmani darhol Deep Doze-ga o'tkazadi. Sinashdan so'ng Doze adb shell dumpsys deviceidle unforce buyrug'i bilan o'chiriladi.

bash
# Light Doze-ga majburiy kirish
$ adb shell dumpsys deviceidle step light

# Deep Doze-ga majburiy kirish
$ adb shell dumpsys deviceidle step deep

# Deep Doze-ga zudlik bilan o'tish
$ adb shell dumpsys deviceidle force-idle deep

# Doze-dan chiqish
$ adb shell dumpsys deviceidle unforce

# Doze holatini ko'rish
$ adb shell dumpsys deviceidle

Ilova ishlashini tekshirish

Doze Mode-ga o'tgandan so'ng tekshirish kerak: tarmoq so'rovlari ishlaydimi (kechiktirilishi kerak), AlarmManager ishga tushadimi, FCM xabarlari yetkaziladimi, WorkManager vazifalari to'g'ri bajariladimi. WorkManager Doze-da ishlashda davom etadi: uning vazifalari xizmat oynalarida bajariladi. Ammo vazifa zudlik bilan bajarishni talab qilsa, setExpedited() ko'rsatilishi yoki Foreground Service ishlatilishi kerak.

Doze Mode uchun eng yaxshi amaliyotlar

Doze Mode ga chidamli ilova ishlab chiqish fon vazifalariga yondashuvni qayta ko'rib chiqishni talab qiladi. Google ilovani Doze-ning har qanday cheklovlarida to'g'ri ishlashi uchun, fon operatsiyalarining zudlik bilan bajarilishiga tayanmasdan loyihalashni tavsiya qiladi. Asosiy tamoyil — kechiktirilishi mumkin bo'lgan barcha fon vazifalari uchun WorkManager dan foydalanish.

WorkManager dan foydalaning

WorkManager Google tomonidan fon vazifalari uchun tavsiya etilgan API, chunki u avtomatik ravishda Doze-ga moslashadi. WorkManager JobScheduler (API 23+) yoki eski versiyalarda AlarmManager + BroadcastReceiver dan foydalanadi. WorkManager vazifalari Doze-ning eng yaqin xizmat oynasida bajariladi, zarur bo'lganda esa — Expedited Work (ostida Foreground Service) orqali zudlik bilan.

Kritik vazifalar uchun Foreground Service

Agar vazifani kechiktirib bo'lmasa (media ijro etish, navigatsiya, VoIP), majburiy bildirishnoma bilan Foreground Service dan foydalaning. Foreground Service Doze-dan istisno oladi: u WakeLock-ni ushlab turishi va tarmoq so'rovlarini bajarishi mumkin. Ammo hatto Foreground Service ham ba'zi vazifa turlari uchun — masalan, dataSync — Deep Doze xizmat oynalari siyosatiga bo'ysunadi.

Bildirishnomalar uchun FCM high-priority

Zudlik bilan e'tibor talab qiladigan xabarlarni yetkazish uchun (kiruvchi qo'ng'iroq, shoshilinch bildirishnoma) FCM high-priority xabarlaridan foydalaning. Bunday xabarlar qurilmani Doze-dan uyg'otadi va ilovaga qayta ishlash uchun qisqa oyna beradi. Oddiy bildirishnomalar uchun high-priority dan foydalanmang — bu batareyaning tez zaryadsizlanishiga olib keladi va Google Play tomonidan siyosat buzilishi sifatida baholanishi mumkin.

  • WorkManager — barcha kechiktiriladigan fon vazifalari uchun afzal qilingan API
  • Foreground Service — ko'rinadigan bildirishnoma bilan kritik vazifalar uchun
  • FCM high-priority — qurilmani uyg'otib, shoshilinch xabarlarni yetkazish uchun
  • So'ramang Whitelist-ga haddan tashqari zaruratsiz — bu foydalanuvchi tajribasini yomonlashtiradi
  • Sinang ilovani Light va Deep Doze-da ADB orqali nashr qilishdan oldin

Tez-tez beriladigan savollar

Androidda Doze Mode nima?

Doze Mode — Android 6+ ning energiya tejash rejimi bo'lib, qurilma ishlatilmaganda (ekran o'chik, harakat yo'q) ilovalarning fon faolligini cheklaydi. Tizim batareyani tejash uchun tarmoq so'rovlari, sinxronizatsiya va JobSchedulerni kechiktirib, ularni xizmat oynalarida guruhlaydi.

Doze Mode-ning qanday fazalari bor?

Doze Mode ikki fazaga ega: Light Doze (yengil uyqu) 5–30 daqiqadan so'ng faollashadi, AlarmManager-ning kechikishlar bilan ishlashiga ruxsat beradi. Deep Doze (chuqur uyqu) 60–90 daqiqa harakatsizlikdan so'ng yuz beradi, 12 soatgacha xizmat oynalari bilan fon vazifalarini agressiv cheklaydi.

Doze ilovalarga qanday cheklovlar qo'yadi?

Doze tarmoq so'rovlarini bloklaydi, AlarmManager-ni kechiktiradi (setAndAllowWhileIdle dan tashqari), WakeLock-ni majburiy bo'shatadi va JobSchedulerni xizmat oynalarida guruhlaydi. Istisnolar — Foreground Service, FCM high-priority va foydalanuvchining Whitelist ilovalari.

Ilovani Doze Whitelist-ga qanday qo'shish mumkin?

Manifestda REQUEST_IGNORE_BATTERY_OPTIMIZATIONS ruxsatini so'rang va ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS harakati bilan Intent yuboring. Tizim foydalanuvchiga dialog oynasini ko'rsatadi. Whitelist ga qo'shilish — Google faqat kritik muhim ilovalar uchun foydalanishni tavsiya qiladigan imtiyozdir.

Ilovani Doze Mode-da qanday sinash mumkin?

ADB buyruqlaridan foydalaning: adb shell dumpsys deviceidle force-idle deep Deep Doze-ga kirish uchun, adb shell dumpsys deviceidle step light Light Doze uchun, adb shell dumpsys deviceidle unforce chiqish uchun. Har bir rejimda WorkManager, AlarmManager va FCM ishini tekshiring.

Xulosa

  • Doze Mode — batareyani tejash uchun qurilma harakatsiz bo'lganda faollashadigan Android 6+ uyqu rejimi
  • Light Doze — 5–30 daqiqadan so'ng yengil faza, AlarmManager va tarmoqqa qisman cheklovlar
  • Deep Doze — 60–90 daqiqa harakatsizlikdan so'ng 12 soatgacha xizmat oynalari bilan chuqur faza
  • Cheklovlar — tarmoq blokadasi, AlarmManager kechiktirish, WakeLock bo'shatish
  • Istisnolar — Foreground Service, FCM high-priority, Whitelist ilovalari
  • WorkManager — Doze-ga avtomatik moslashadigan fon vazifalari uchun tavsiya etilgan API
  • Sinov — nashrdan oldin ADB (dumpsys deviceidle) orqali majburiy tekshirish

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