Android, cihazın pil ömrünü iyileştirmek için cihaz kullanımını ve uyanıklığı izleyerek cihaz durumunu etkileyebilir. Platform, cihaz kullanılmadığında etkinliklerin çalışmasını duraklatmak için bir uyku durumuna girebilir.
uyuklamak
Doze, bir cihaz uzun süre kullanılmadığında uygulama arka plan CPU'sunu ve ağ etkinliğini erteleyerek pil ömrünü uzatır.
Doze'daki boşta kalan cihazlar, uygulamaların bekleyen işleri (eşitlemeler, işler vb.) tamamlayabileceği bir bakım penceresine periyodik olarak girer. Doze daha sonra daha uzun bir süre uykuya devam eder, ardından başka bir bakım penceresi gelir. Platform, maksimum birkaç saatlik uyku süresine ulaşılana kadar her seferinde boşta kalma süresini artırarak Doze uyku/bakım dizisine devam eder. Doze'daki bir cihaz her zaman hareketin farkında kalır ve hareket algılanırsa Doze'dan hemen çıkar.
Android 7.0 ve sonraki sürümleri, Doze'u, kullanıcı hareket etmeye devam etse bile, kullanıcı cihaz ekranını her kapattığında daha hafif bir optimizasyon setini tetikleyecek şekilde genişleterek daha uzun pil ömrü sağlar.
Kritik sistem hizmetleri genellikle cihaz üreticileri tarafından Doze'den muaf tutulacak şekilde kurulur. Kullanıcılar ayrıca Ayarlar menüsünü kullanarak belirli uygulamaları Doze'dan muaf tutabilir. Ancak uygulamaların muaf tutulması cihazın pilinin bitmesine neden olabilir. Varsayılan olarak, Doze AOSP'de devre dışıdır ; Doze'yi etkinleştirmeyle ilgili ayrıntılar için bkz. Doze'yi Entegre Etme .
Doz gereksinimleri
Doze desteği, cihazın Firebase Cloud Messaging (FCM) gibi bir bulut mesajlaşma hizmetine sahip olmasını gerektirir. Bulut mesajları gibi harici tetikleyici olaylar, cihaz Doze modundayken çalışmak üzere uygulamaları geçici olarak uyandırabilir.
Tam Doze desteği ayrıca cihazda önemli bir hareket dedektörü (SMD) gerektirir; ancak, Android 7.0 ve sonraki sürümlerdeki hafif Doze modu bir SMD gerektirmez. Aşağıdaki özelliklere sahip bir cihazda Doze etkinleştirilmişse:
- Bir SMD'ye sahipse, tam Doze optimizasyonları gerçekleşir (hafif optimizasyonlar içerir).
- SMD'si yoktur, yalnızca hafif Doze optimizasyonları gerçekleşir.
Doz yaşam döngüsü
Doze, platform cihazın boşta olduğunu algıladığında başlar ve bir veya daha fazla çıkış kriteri etkinliği gerçekleştiğinde sona erer.
Tespit etme
Platform, bir cihazın şu durumlarda boşta olduğunu algılar:
- Cihaz sabit (SMD kullanarak).
- Cihaz ekranı bir süreliğine kapalı.
Doze modu, pille çalışan bir cihaz bir şarj cihazına takılıyken devreye girmez.
Doz sırasında
Platform, sistemi uyku durumunda tutmaya çalışır, bir bakım aralığı sırasında periyodik olarak normal işlemlere devam eder ve ardından cihazı daha uzun tekrarlama süreleri için uyku moduna döndürür. Uyku sırasında aşağıdaki kısıtlamalar etkindir:
- Uygulamaların ağ erişimine izin verilmez.
- Uygulama uyandırma kilitleri yoksayıldı.
- Alarmlar ertelenir.
setAndAllowWhileIdle()
kullanılarak ayarlanan çalar saat alarmlarını ve alarmları içermez (Doze modundayken uygulama başına 15 dakikada 1 ile sınırlıdır). Bu muafiyet, etkinlik hatırlatıcı bildirimleri göstermesi gereken uygulamalara (Takvim gibi) yöneliktir. - Wi-Fi taramaları gerçekleştirilmez.
-
SyncAdapter
senkronizasyonları veJobScheduler
işleri bir sonraki bakım penceresine kadar ertelenir. - SMS ve MMS mesajları alan uygulamalar, işlemlerini tamamlayabilmeleri için geçici bir beyaz listeye alınır.
çıkış
Platform, aşağıdakileri algıladığında cihazdan Doze'dan çıkar:
- Cihazla kullanıcı etkileşimi
- Cihaz hareketi
- Cihaz ekranı açılır
- Yaklaşan AlarmClock alarmı
Bildirimler, cihazın Doze'dan çıkmasına neden olmaz.
Android 7.0 ve sonraki sürümleri, cihaz boşta olmadan önce ekran kapalıyken hafif bir uyku modunu etkinleştirerek Doze'u genişletir.
Eylem | uyuklamak | Hafif Doz |
---|---|---|
Tetiklemek | Ekran kapalı, pilde, sabit | Ekran kapalı, pil açık (fiş takılı değil) |
Zamanlama | Bakım ile art arda artan periyotlar | Bakım aralıkları ile tekrarlanan N dakikalık periyotlar |
Kısıtlamalar | Ağ erişimi, uyandırma kilidi veya GPS/Wi-Fi taraması yok; alarmlar ve işler/senkronizasyonlar ertelendi | Ağ erişimi yok; bakım pencereleri dışında ertelenen işler/eşitlemeler |
Davranış | Yalnızca yüksek öncelikli push bildirim mesajları alındı | Alınan tüm gerçek zamanlı mesajlar (anlık mesajlar, aramalar vb.); yüksek öncelikli push bildirim mesajı, geçici ağ erişimi sağlar |
çıkış | Hareket, ekran açık veya çalar saat alarmı | Ekran açık |
Uygulama Bekleme ile Etkileşim
- Doze'da geçirilen süre, Uygulama Beklemede sayılmaz.
- Cihaz Doze modundayken, boşta olan uygulamaların günde en az bir kez normal işlem yapmasına izin verilir.
Entegre Doze
Doze etkinleştirildiğinde, SENSOR_TYPE_SIGNIFICANT_MOTION
özelliğini destekleyen cihazlar tam Doze optimizasyonları gerçekleştirir (hafif optimizasyonlar dahil); SMD'si olmayan cihazlar yalnızca hafif Doze optimizasyonları gerçekleştirir. Android, uygun Doze optimizasyonlarını otomatik olarak seçer ve satıcı yapılandırması gerekli değildir.
Bir cihaz için Doze'yi etkinleştirmek için:
- Cihazda yüklü bir bulut mesajlaşma hizmeti olduğunu doğrulayın.
- Aygıt yerleşimi yapılandırma dosyası
overlay/frameworks/base/core/res/res/values/config.xml
,config_enableAutoPowerModes
true
olarak ayarlayın:<bool name="config_enableAutoPowerModes">true</bool>
AOSP'de bu parametre varsayılan olarakfalse
(Doze devre dışı) olarak ayarlanır. - Önceden yüklenmiş uygulamaları ve hizmetleri onaylayın:
- Güç tasarrufu sağlayan optimizasyon yönergelerini kullanın. Ayrıntılar için, bkz. Uygulamaları test etme ve optimize etme .
VEYA
- Doze ve App Standby'dan muaftır. Ayrıntılar için, bkz. Muafiyet uygulamaları .
- Güç tasarrufu sağlayan optimizasyon yönergelerini kullanın. Ayrıntılar için, bkz. Uygulamaları test etme ve optimize etme .
- Gerekli hizmetlerin Doze'den muaf tutulduğunu onaylayın.
İpuçları
- Mümkünse, aşağı akış mesajlaşması için FCM'yi kullanın.
- Kullanıcılarınızın hemen bir bildirim görmesi gerekiyorsa, yüksek öncelikli bir FCM mesajı kullanın.
- İlk mesaj yükü içinde yeterli bilgi sağlayın (sonraki gereksiz ağ erişimini önlemek için).
-
setAndAllowWhileIdle()
vesetExactAndAllowWhileIdle()
ile kritik alarmlar ayarlayın.
Uygulamaları test etme ve optimize etme
Tüm uygulamaları (özellikle önceden yüklenmiş uygulamaları) Doze modunda test edin. Ayrıntılar için Doze ve Uygulamayı Beklemede Test Etme bölümüne bakın.