Platform Güç Yönetimi

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ı ve JobScheduler 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.

Şekil 1. Sabit olmayan ve sabit cihazlar için Doze modları
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:

  1. Cihazda yüklü bir bulut mesajlaşma hizmeti olduğunu doğrulayın.
  2. 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 olarak false (Doze devre dışı) olarak ayarlanır.
  3. Önceden yüklenmiş uygulamaları ve hizmetleri onaylayın:
  4. Gerekli hizmetlerin Doze'den muaf tutulduğunu onaylayın.

İpuçları

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.