Doze Mode: mahiyyəti, fazaları və enerjiyə qənaət mexanizmi

Müəllif: IT Sectr Dərc olunub: 2026-03-28 Oxuma vaxtı: 10 dəq

Doze Mode, Android 6.0 Marshmallow versiyasında təqdim edilmiş enerjiyə qənaət rejimidir. Cihaz hərəkətsiz olduqda tətbiqlərin fon aktivliyini əhəmiyyətli dərəcədə məhdudlaşdırır. Sistem tətbiqləri aşağı enerji sərfiyyatı vəziyyətinə keçirərək şəbəkə sorğularını, sinxronizasiyanı və JobScheduler-i təxirə salır, beləliklə muxtar iş müddətini uzadır. Android Developers, 2025 analizinə görə, Doze Mode cihazın gözləmə müddətini model və OS versiyasından asılı olaraq 2–3 dəfə artırmağa imkan verir.

Əsas məqamlar

  • Doze Mode — Android 6+-nın hərəkətsizlik zamanı fon aktivliyini məhdudlaşdıran yuxu rejimi
  • İki faza — Light Doze (yüngül yuxu) və Deep Doze (dərin yuxu) müxtəlif məhdudiyyətlərlə
  • Xidmət pəncərələri — Deep Doze-də tətbiqlərin tapşırıqları yerinə yetirə biləcəyi qısa dövrlər
  • Whitelist — Doze-də fon işinə icazə verilən tətbiqlər üçün istisnalar
  • GCM/FCM — yüksək prioritetli push bildirişləri cihazı Doze-dən oyadır

Doze Mode nədir

Doze Mode Android-in daxili enerjiyə qənaət mexanizmidir. Cihaz şarj cihazına qoşulmadıqda, ekran söndürüldükdə və istifadəçi müəyyən müddət ərzində cihazla qarşılıqlı əlaqədə olmadıqda aktivləşir. Doze-in məqsədi fon tətbiqlərinin aktivliyini minimuma endirərək gözləmə rejimində batareyanın ömrünü maksimum dərəcədə uzatmaqdır. Sistem JobScheduler, hesab sinxronizasiyası, AlarmManager və şəbəkə sorğularını təxirə salır.

Bu rejim Android 6.0 Marshmallow (API 23) ilə təqdim edilmiş və sonrakı versiyalarda əhəmiyyətli dərəcədə təkmilləşdirilmişdir. Android 7.0 Nougat-da cihazın hərəkəti zamanı aktivləşən ikinci faza (Light Doze) meydana çıxdı. Android 8.0 Doze ilə birlikdə işləyən fon xidmətlərinə əlavə məhdudiyyətlər tətbiq etdi. Android 12+-da Doze istifadəçi davranışını təhlil edən yenilənmiş batareya idarəetmə sistemi ilə inteqrasiya edildi.

Anlamaq vacibdir: Doze Mode tətbiqləri tamamilə söndürmür. O, onları təxirə salınmış tapşırıqları olan vəziyyətə keçirir, lakin prosesləri öldürmür. Bildirişli Foreground Service işləməyə davam edir, yüksək prioritetli push bildirişləri (FCM high-priority) çatdırılır və həyəcan siqnalları cədvəl üzrə işə düşür. Doze yalnız istifadəçinin hazırda görmədiyi və gözləmədiyi fon əməliyyatlarına təsir göstərir.

Aktivləşmə şərtləri

Doze Mode bütün şərtlər yerinə yetirildikdə aktivləşir: ekran 30 dəqiqədən çox söndürülüb (ilk aktivləşmə), cihaz hərəkətsizdir (akselometrdən istifadə olunur), şarja qoşulmayıb. İstifadəçi telefonu əlinə alarsa və ya şarj cihazını qoşarsa, Doze dərhal deaktiv olur. Android 7+-da Light Doze cihazın hərəkəti zamanı belə, artıq 5 dəqiqəlik hərəkətsizlikdən sonra aktivləşir.

Doze Mode necə işləyir

Doze Mode sensorların, ekranın və şarj cihazının vəziyyətini təhlil edən sistem xidməti DeviceIdleController vasitəsilə fon aktivliyini idarə edir. Bütün aktivləşmə şərtləri yerinə yetirildikdə, sistem tətbiqləri gözləmə rejiminə keçirərək onların sorğularını xidmət pəncərələrində qruplaşdırır. Bu pəncərələr daxilində bütün təxirə salınmış tapşırıqlar — şəbəkə çağırışları, sinxronizasiya, AlarmManager — dəstə şəklində yerinə yetirilir.

Sistem PowerManager-i hansı tətbiqlərin Doze-dən çıxa biləcəyini idarə edir. Yüksək prioritetli push bildirişləri (FCM high-priority) mesajı çatdırmaq üçün cihazı oyada bilər. Sistem həmçinin istifadəçi tərəfindən batareya optimallaşdırmasının Whitelist-inə əlavə edilmiş tətbiqlər üçün Doze-ni nəzərə almır. Qalan bütün tətbiqlər növbəti xidmət pəncərəsini gözləməlidir.

Deep Doze-də xidmət pəncərələrinin müddəti eksponensial olaraq artır: birinci pəncərə 1 saatdan sonra, ikincisi 2 saatdan sonra, üçüncüsü 4 saatdan sonra və s. maksimum 12 saat intervalına qədər. Bu o deməkdir ki, cihaz Doze-də nə qədər uzun qalırsa, tətbiqlər bir o qədər nadir hallarda fon tapşırıqlarını yerinə yetirə bilir — batareya maksimum dərəcədə qənaətlə istifadə olunur.

Şəbəkə sorğularına təsir

Doze Mode-da bütün şəbəkə sorğuları xidmət pəncərəsi gələnə qədər dayandırılır. İstisna yalnız FCM high-priority mesajlar (payload-da “high_priority” teqi ilə) və AlarmManager-dən setAndAllowWhileIdle() və ya setExactAndAllowWhileIdle() flaqları olan siqnallardır. Retrofit, OkHttp və ya Volley vasitəsilə adi şəbəkə çağırışları pəncərə açılana qədər yerinə yetirilməyəcək.

Doze Mode fazaları

Doze Mode iki fazadan ibarətdir: Light Doze (yüngül yuxu) və Deep Doze (dərin yuxu). Hər bir faza öz məhdudiyyətlərini tətbiq edir və müxtəlif aktivləşmə həddlərinə malikdir. Fazalar arasındakı fərqi başa düşmək enerjiyə qənaət rejiminə davamlı fon tapşırıqları dizayn edən tərtibatçı üçün vacibdir.

Light Doze (yüngül yuxu)

Light Doze cihazın 5–30 dəqiqəlik hərəkətsizliyindən sonra aktivləşir (ekran sönük, hərəkət yoxdur). Bu fazada şəbəkə sorğuları və sinxronizasiya dayandırılır, lakin AlarmManager və JobScheduler kiçik gecikmələrlə işləməyə davam edir. Tətbiqlər push bildirişi aldıqda və ya şarja qoşulduqda Light Doze-dən çıxa bilər. Light Doze tam hərəkətsizlik tələb etmir — cihaz hərəkətdə ola bilər.

Deep Doze (dərin yuxu)

Deep Doze hərəkətsiz cihazda (akselometr hərəkət qeydə almır) 60–90 dəqiqəlik hərəkətsizlikdən sonra baş verir. Deep Doze-də sistem tapşırıqları daha aqressiv şəkildə təxirə salır: xidmət pəncərələri daha az açılır (eksponensial artan intervalla), AlarmManager yalnız setAndAllowWhileIdle() flaqı ilə işləyir, WakeLock isə adi rejimdə fəaliyyət göstərmir. Whitelist-də olmayan tətbiqlər fon aktivliyini demək olar ki, tamamilə itirir.

ParametrLight DozeDeep Doze
Aktivləşmə vaxtı5–30 dəqiqə60–90 dəqiqə
Hərəkət tələbiTələb olunmurHərəkətsizlik
Pəncərə intervalı10–60 dəqiqə1–12 saat
AlarmManagerGecikmələrlə işləyirYalnız withAllowWhileIdle
Pəncərələrdə şəbəkəƏlçatandırƏlçatandır

Doze Mode məhdudiyyətləri

Doze Mode tərtibatçının tətbiqi dizayn edərkən nəzərə almalı olduğu bir neçə kateqoriya məhdudiyyət tətbiq edir. Bu məhdudiyyətlərə məhəl qoymamaq fon tapşırıqlarının yerinə yetirilməməsinə gətirib çıxarır və istifadəçi tətbiqin düzgün işləmədiyini görür — yeniləmələrin olmaması, göndərilməmiş mesajlar, yerinə yetirilməmiş sinxronizasiya.

Şəbəkə məhdudiyyətləri

Bütün şəbəkə sorğuları xidmət pəncərəsi gələnə qədər bloklanır. Bu HTTP çağırışlarına, WebSocket bağlantılarına, fayl yükləmələrinə aiddir. İstisna — Doze-dən asılı olmayan ayrıca Google Play Services kanalından keçən FCM high-priority mesajlarıdır. Kritik məlumatların sinxronizasiyası üçün NetworkType.CONNECTED siyasəti ilə WorkManager istifadə etmək tövsiyə olunur.

AlarmManager məhdudiyyətləri

AlarmManager Deep Doze-də setAndAllowWhileIdle()setExactAndAllowWhileIdle() metodları ilə yaradılanlar istisna olmaqla, bütün həyəcan siqnallarını təxirə salır. Lakin hətta bu metodların da məhdudiyyəti var — tətbiq başına 9 dəqiqədə 1 dəfədən çox olmayaraq. Deep Doze-də setExact() dəqiq həyəcan siqnalları müəyyən edilmiş vaxtda işə düşməyə zəmanət vermir.

WakeLock məhdudiyyətləri

WakeLock Doze Mode-da qeyri-standart işləyir: sistem Whitelist-də olmayan tətbiqlər üçün yuxu blokadasını saxlamır. Tətbiq PARTIAL_WAKE_LOCK-u düzgün əldə etsə belə, Deep Doze gəldikdə sistem onu məcburi şəkildə sərbəst buraxa bilər. Doze-də tapşırığın yerinə yetirilməsinə zəmanət verməyin yeganə yolu bildirişlə Foreground Service istifadə etməkdir.

  • Şəbəkə — FCM high-priority istisna olmaqla, bütün sorğular xidmət pəncərəsinə qədər təxirə salınır
  • AlarmManager — dəqiq həyəcan siqnalları təxirə salınır; setAndAllowWhileIdle — 1/9 dəq-dən çox olmayaraq
  • WakeLock — Whitelist-də olmayan tətbiqlər üçün məcburi sərbəst buraxılır
  • JobScheduler — tapşırıqlar eksponensial intervalla xidmət pəncərələrində qruplaşdırılır
  • Sinxronizasiya — Account SyncManager Doze-dən çıxana qədər dayandırılır

Whitelist və istisnalar

Whitelist (ağ siyahı) Doze — sistemin minimal məhdudiyyətlərlə enerjiyə qənaət rejimində fon aktivliyinə icazə verdiyi tətbiqlərin siyahısıdır. İstifadəçi tətbiqləri əl ilə əlavə edə bilər: Parametrlər → Batareya → Batareya optimallaşdırması. Sistem tətbiqləri, işə salan proqramlar və Google Play Services xidmətləri defolt olaraq Whitelist-dədir.

Tərtibatçı Intent ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS ilə sistem dialoqu vasitəsilə Whitelist-ə əlavə olunmasını tələb edə bilər. Bunun üçün manifestdə REQUEST_IGNORE_BATTERY_OPTIMIZATIONS icazəsi tələb olunur. Lakin Google əsaslı səbəb olmadan istisna tələb etməyi tövsiyə etmir — bu imkandan sui-istifadə edən tətbiqlər Google Play-də dərc edilərkən rədd edilə bilər.

Whitelist olmadan tətbiq cihazı Doze-dən oyatmaq üçün FCM high-priority istifadə edə bilər. Hər bir belə mesaj tətbiqə tapşırığı yerinə yetirmək üçün qısa pəncərə (10–30 saniyə) verir. Daha uzun əməliyyatlar üçün tətbiq Doze xidmət pəncərələrində işləməyə davam edəcək Foreground Service-i işə salmalıdır. Google həmçinin bəzi tətbiq növləri üçün azadetmə mexanizmi təqdim edir: naviqasiya, tibbi, mesajlaşma tətbiqləri.

Whitelist statusunu necə yoxlamaq olar

Tətbiqin batareya optimallaşdırmasının Whitelist-ində olub-olmadığını yoxlamaq üçün powerManager.isIgnoringBatteryOptimizations() metodundan istifadə olunur. Metod false qaytarırsa, tətbiq Doze-in bütün məhdudiyyətlərinə tabedir. true qaytarırsa — tətbiq Deep Doze-də belə Wakelock, AlarmManager və şəbəkədən məhdudiyyətsiz istifadə edə bilər. Lakin bu imtiyazdan sui-istifadə istifadəçilərin pis rəylərinə səbəb olacaq.

Doze Mode-un sınağı

Sınaq — tətbiqin Doze Mode-da davranışının yoxlanılması məcburi inkişaf mərhələsidir, çünki Doze fon funksiyalarının işini poza bilər. Android ADB vasitəsilə cihazı məcburi olaraq Light Doze və Deep Doze rejiminə keçirmək üçün əmr satırı alətləri təqdim edir. Sınaq fiziki cihazda və ya Android 6.0+ olan emulyatorda aparılmalıdır.

Light Doze-yə girmək üçün adb shell dumpsys deviceidle step light əmri istifadə olunur. Deep Doze üçün — adb shell dumpsys deviceidle step deep. adb shell dumpsys deviceidle force-idle deep əmri standart vaxt aşımını gözləmədən cihazı dərhal Deep Doze-yə keçirir. Sınaqdan sonra Doze adb shell dumpsys deviceidle unforce əmri ilə söndürülür.

bash
# Light Doze-yə məcburi giriş
$ adb shell dumpsys deviceidle step light

# Deep Doze-yə məcburi giriş
$ adb shell dumpsys deviceidle step deep

# Deep Doze-yə dərhal keçid
$ adb shell dumpsys deviceidle force-idle deep

# Doze-dən çıxış
$ adb shell dumpsys deviceidle unforce

# Doze statusuna baxış
$ adb shell dumpsys deviceidle

Tətbiqin işinin yoxlanılması

Doze Mode-a keçdikdən sonra yoxlamaq lazımdır: şəbəkə sorğuları işləyirmi (təxirə salınmalıdır), AlarmManager işə düşürmü, FCM mesajları çatdırılırmı, WorkManager tapşırıqları düzgün yerinə yetirilirmi. WorkManager Doze-də işləməyə davam edir: onun tapşırıqları xidmət pəncərələrində yerinə yetirilir. Lakin tapşırıq dərhal yerinə yetirilmə tələb edirsə, setExpedited() göstərilməli və ya Foreground Service istifadə edilməlidir.

Doze Mode üçün ən yaxşı təcrübələr

Doze Mode-a davamlı tətbiqin hazırlanması fon tapşırıqlarına yanaşmanın yenidən nəzərdən keçirilməsini tələb edir. Google tətbiqin Doze-in istənilən məhdudiyyətlərində düzgün işləməsi üçün, fon əməliyyatlarının dərhal yerinə yetirilməsinə etibar etmədən dizayn edilməsini tövsiyə edir. Əsas prinsip — təxirə salına bilən bütün fon tapşırıqları üçün WorkManager istifadə etməkdir.

WorkManager istifadə edin

WorkManager Google tərəfindən fon tapşırıqları üçün tövsiyə edilən API-dir, çünki o, avtomatik olaraq Doze-yə uyğunlaşır. WorkManager JobScheduler (API 23+) və ya köhnə versiyalarda AlarmManager + BroadcastReceiver istifadə edir. WorkManager tapşırıqları Doze-in növbəti xidmət pəncərəsində yerinə yetirilir, zəruri hallarda isə Expedited Work (arxa planda Foreground Service) vasitəsilə dərhal icra olunur.

Kritik tapşırıqlar üçün Foreground Service

Tapşırıq təxirə salına bilməzsə (media oxutma, naviqasiya, VoIP), məcburi bildirişlə Foreground Service istifadə edin. Foreground Service Doze-dən istisna alır: o, WakeLock-u saxlaya və şəbəkə sorğularını yerinə yetirə bilər. Lakin hətta Foreground Service də bəzi tapşırıq növləri üçün — məsələn, dataSync — Deep Doze xidmət pəncərələri siyasətinə tabedir.

Bildirişlər üçün FCM high-priority

Dərhal diqqət tələb edən mesajları çatdırmaq üçün (gələn zəng, təcili bildiriş) FCM high-priority mesajlarından istifadə edin. Belə mesajlar cihazı Doze-dən oyadır və tətbiqə emal üçün qısa pəncərə verir. Adi bildirişlər üçün high-priority istifadə etməyin — bu batareyanın sürətlə boşalmasına gətirib çıxarır və Google Play tərəfindən siyasət pozuntusu kimi qiymətləndirilə bilər.

  • WorkManager — bütün təxirə salınan fon tapşırıqları üçün üstünlük verilən API
  • Foreground Service — görünən bildirişlə kritik tapşırıqlar üçün
  • FCM high-priority — cihazı oyadaraq təcili mesajların çatdırılması üçün
  • İstəməyin Whitelist-ə həddindən artıq zərurət olmadan — bu istifadəçi təcrübəsini pisləşdirir
  • Sınaqdan keçirin tətbiqi buraxılışdan əvvəl ADB vasitəsilə Light və Deep Doze-də

Tez-tez verilən suallar

Android-də Doze Mode nədir?

Doze Mode — Android 6+-nın enerjiyə qənaət rejimidir. Cihaz istifadə edilmədikdə (ekran sönük, hərəkət yoxdur) tətbiqlərin fon aktivliyini məhdudlaşdırır. Sistem batareyaya qənaət etmək üçün şəbəkə sorğularını, sinxronizasiyanı və JobScheduler-i təxirə salaraq onları xidmət pəncərələrində qruplaşdırır.

Doze Mode-un hansı fazaları var?

Doze Mode iki fazaya malikdir: Light Doze (yüngül yuxu) 5–30 dəqiqədən sonra aktivləşir, AlarmManager-in gecikmələrlə işləməsinə icazə verir. Deep Doze (dərin yuxu) 60–90 dəqiqəlik hərəkətsizlikdən sonra baş verir, 12 saata qədər xidmət pəncərələri ilə fon tapşırıqlarını aqressiv şəkildə məhdudlaşdırır.

Doze tətbiqlərə hansı məhdudiyyətləri tətbiq edir?

Doze şəbəkə sorğularını bloklayır, AlarmManager-i təxirə salır (setAndAllowWhileIdle istisna olmaqla), WakeLock-u məcburi sərbəst buraxır və JobScheduler-i xidmət pəncərələrində qruplaşdırır. İstisnalar — Foreground Service, FCM high-priority və istifadəçinin Whitelist tətbiqləri.

Tətbiqi Doze Whitelist-ə necə əlavə etmək olar?

Manifestdə REQUEST_IGNORE_BATTERY_OPTIMIZATIONS icazəsini tələb edin və ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS hərəkəti ilə Intent göndərin. Sistem istifadəçiyə dialoq göstərəcək. Whitelist-ə əlavə olunma — Google-un yalnız kritik vacib tətbiqlər üçün istifadəni tövsiyə etdiyi imtiyazdır.

Tətbiqi Doze Mode-da necə sınaqdan keçirmək olar?

ADB əmrlərindən istifadə edin: adb shell dumpsys deviceidle force-idle deep Deep Doze-yə girmək üçün, adb shell dumpsys deviceidle step light Light Doze üçün, adb shell dumpsys deviceidle unforce çıxmaq üçün. Hər rejimdə WorkManager, AlarmManager və FCM-in işini yoxlayın.

Nəticə

  • Doze Mode — batareyaya qənaət etmək üçün cihaz hərəkətsiz olduqda aktivləşən Android 6+ yuxu rejimi
  • Light Doze — 5–30 dəqiqədən sonra yüngül faza, AlarmManager və şəbəkəyə qismən məhdudiyyətlər
  • Deep Doze — 60–90 dəqiqəlik hərəkətsizlikdən sonra 12 saata qədər xidmət pəncərələri ilə dərin faza
  • Məhdudiyyətlər — şəbəkə blokadası, AlarmManager-in təxirə salınması, WakeLock-un sərbəst buraxılması
  • İstisnalar — Foreground Service, FCM high-priority, Whitelist tətbiqləri
  • WorkManager — Doze-yə avtomatik uyğunlaşan fon tapşırıqları üçün tövsiyə edilən API
  • Sınaq — buraxılışdan əvvəl ADB (dumpsys deviceidle) vasitəsilə məcburi yoxlama

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun