Platform Güç Yönetimi

Android, cihazın pil ömrünü iyileştirmek için cihazın kullanımını ve uyanıklığını izleyerek cihazın durumunu etkileyebilir. Platform, cihaz kullanılmadığında etkinliklerin çalışmasını duraklatmak için uyku durumuna girebilir.

Uyuklamak

Doze, bir cihaz uzun süre kullanılmadığında uygulamanın arka plan CPU'sunu ve ağ etkinliğini erteleyerek pil ömrünü uzatır.

Doze'daki boşta kalan cihazlar periyodik olarak bir bakım penceresine girer ve bu süre zarfında uygulamalar bekleyen işleri (senkronizasyonlar, işler vb.) tamamlayabilir. Doze daha sonra daha uzun bir süre boyunca uyku moduna geçer ve 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 sırasını sürdürür. Doze'daki bir cihaz her zaman hareketin farkında kalır ve hareket algılanırsa hemen Doze'dan ayrılır.

Android 7.0 ve üzeri, Doze'u genişleterek, kullanıcı hareket etmeye devam etse bile, kullanıcı cihaz ekranını her kapattığında daha hafif bir optimizasyon seti tetikleyerek daha uzun pil ömrü sağlar.

Kritik sistem hizmetleri genellikle cihaz üreticileri tarafından Doze'dan muaf tutulacak şekilde kurulmaktadır. Kullanıcılar ayrıca Ayarlar menüsünü kullanarak belirli uygulamaları Doze'dan muaf tutabilirler. Ancak uygulamaları muaf tutmak cihazın pilinin tükenmesine neden olabilir. Doze, AOSP'de varsayılan olarak devre dışıdır ; Doze'u etkinleştirmeyle ilgili ayrıntılar için bkz. Doze'u 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 SMD gerektirmez. Doze aşağıdaki özelliklere sahip bir cihazda etkinleştirilmişse:

  • Bir SMD'ye sahipseniz, tam Doze optimizasyonları gerçekleşir (hafif optimizasyonları içerir).
  • SMD'si yoktur, yalnızca hafif Doze optimizasyonları gerçekleşir.

Doze 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 aşağıdaki durumlarda bir cihazın boşta olduğunu algılar:

  • Cihaz sabittir (SMD kullanıyor).
  • Cihaz ekranı bir süreliğine kapalı.

Pille çalışan bir cihaz, şarj cihazına takıldığında Doze modu devreye girmiyor.

Uyuklama sırasında

Platform, sistemi uyku durumunda tutmaya çalışır, bir bakım penceresi sırasında periyodik olarak normal işlemleri sürdürür ve ardından cihazı daha uzun tekrarlanan süreler boyunca uyku moduna döndürür. Uyku sırasında aşağıdaki kısıtlamalar etkindir:

  • Uygulamaların ağ erişimine izin verilmiyor.
  • Uygulama uyandırma kilitleri yoksayıldı.
  • Alarmlar ertelendi. setAndAllowWhileIdle() kullanılarak ayarlanan alarm saati alarmlarını ve alarmları hariç tutar (Doze'dayken uygulama başına 15 dakikada 1 alarmla sınırlıdır). Bu muafiyet, etkinlik hatırlatma bildirimleri göstermesi gereken uygulamalara (Takvim gibi) yöneliktir.
  • Wi-Fi taramaları gerçekleştirilmiyor.
  • 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 tespit ettiğinde cihazdan Doze'dan çıkar:

  • Cihazla kullanıcı etkileşimi
  • Cihaz hareketi
  • Cihaz ekranı açılıyor
  • Yaklaşan AlarmSaat alarmı

Bildirimler cihazın Doze'dan çıkmasına neden olmaz.

Android 7.0 ve üzeri, ekran kapalıyken, cihaz boşta kalmadan önce hafif bir uyku modunu etkinleştirerek Doze'un kapsamını genişletir.

Şekil 1. Sabit olmayan ve sabit cihazlar için uyku modları
Aksiyon Uyuklamak Hafif Doze
Tetiklemek Ekran kapalı, pil açık, sabit Ekran kapalı, pil açık (fişi takılı değil)
Zamanlama Bakım ile art arda artan periyotlar Bakım aralıklarıyla 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 işler/senkronizasyonlar ertelendi
Davranış Yalnızca yüksek öncelikli anında bildirim iletileri alındı Alınan tüm gerçek zamanlı mesajlar (anlık mesajlar, çağrılar vb.); yüksek öncelikli anında bildirim mesajı geçici ağ erişimine olanak sağlar
çıkış Hareket, ekran açık veya alarm saati alarmı Ekran açık

Uygulama Bekleme ile Etkileşim

  • Doze'da geçirilen süre, Uygulamayı Beklemeye Alma süresine dahil edilmez.
  • Cihaz Doze'dayken, boşta olan uygulamaların günde en az bir kez normal işlemlerini gerçekleştirmesine izin verilir.

Doze'u entegre etme

Doze etkinleştirildiğinde, SENSOR_TYPE_SIGNIFICANT_MOTION destekleyen cihazlar tam Doze optimizasyonlarını (hafif optimizasyonlar dahil) gerçekleştirir; SMD'si olmayan cihazlar yalnızca hafif Doze optimizasyonlarını gerçekleştirir. Android, uygun Doze optimizasyonlarını otomatik olarak seçer ve satıcı yapılandırması gerekli değildir.

Bir cihazda Doze'u etkinleştirmek için:

  1. Cihazda bir bulut mesajlaşma hizmetinin yüklü olduğunu doğrulayın.
  2. Cihaz yer paylaşımı yapılandırma dosyasında 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 ayarlanmıştır.
  3. Önceden yüklenmiş uygulama ve hizmetlerin:
  4. Gerekli hizmetlerin Doze'dan muaf olduğunu doğrulayı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ı Beklemeye Alma ile Test Etme bölümüne bakın.