Doz ve Uygulamayı Beklemeye Alma için optimizasyon yapın

Android'de kullanıcıların pil ömrünü uzatan iki güç tasarrufu özelliği vardır: bir cihaz güç kaynağına bağlı olmadığında uygulamaların nasıl davranacağını yönetme: Doz ve Uygulamayı Beklemeye Alma. Doz, erteleme yaparak pil tüketimini azaltır cihaz uzun süre kullanılmadığında uygulamalar için arka plan CPU ve ağ etkinliği dönemleri ifade eder. Uygulama Bekleme özelliği, arka plan ağ etkinliğini şu süre için erteler: yakın zamanda kullanıcı etkinliği olmayan uygulamalar.

Cihaz Doz modundayken, uygulamalar yüksek miktarda pil gücü kullanan cihazlara erişim kaynaklar bakım dönemine kadar ertelenir. Belirli kısıtlamalar aşağıdaki listede yer almaktadır: Güç yönetimi kısıtlamalar hakkında daha fazla bilgi edinin.

Doz ve Uygulama Bekletme, Android 6.0 üzerinde çalışan tüm uygulamaların davranışını yönetir veya daha yüksek bir segment belirleyebilirsiniz. Kullanıcılara en iyi deneyimin sağlanmasına yardımcı olmak için uygulamanızı Doz ve Uygulama'da test edin Bekleme modlarına göz atın ve kodunuzda gerekli ayarlamaları yapın. Aşağıdakiler ayrıntılar sağlar.

Doz Değerini Anlama

Kullanıcı cihazını fişten çıkarıp bir süre hareketsiz bırakırsa: Ekran kapatıldığında cihaz Doz moduna girer. Sistem, Doz modunda, kısıtlayarak pil tasarrufu yapabilirsiniz. Ağa ve CPU'ya yoğun şekilde erişim kullanıma sunuyoruz. Ayrıca, uygulamaların ağa erişmesini engeller ve standart alarmları ve senkronizasyonları kapsar.

Sistem, uygulamaların tamamlanması için kısa bir süreliğine Doz'dan çıkar aktivitelerini ifade eder. Bu bakım dönemi boyunca sistem, beklemedeki tüm senkronizasyonları, işleri ve alarmları çalıştırır ve uygulamaların ağa erişmesine izin verir.

Şekil 1. Doz, işletmeniz için yinelenen bir bakım dönemi sağlar. uygulamaları kullanmaları ve beklemedeki etkinlikleri yönetmeleri gerekir.

Bakım dönemi sona erdiğinde sistem yeniden Doz'a girer. ağ erişimini askıya alma ve işleri, senkronizasyonları ve alarmları erteleme. Zaman içinde, sistem bakım dönemlerini daha seyrek programlayarak pili azaltmaya yardımcı olur cihaz şarj edilmiyorken daha uzun süre kullanılmadığında da tüketim.

Kullanıcı, cihazı hareket ettirerek, ekranı açarak veya bir şarj cihazı bağlanır, sistem Doz'dan çıkar ve tüm uygulamalar normal şekilde çalışmaya devam eder etkinliği'ne dokunun.

Doz kısıtlamaları

Sistem, Dozdayken uygulamalarınıza aşağıdaki kısıtlamaları uygular:

Doz kontrol listesi

Uygulamanızı Doz'a uyarlama

Doz, sundukları özelliklere bağlı olarak uygulamaları farklı şekilde etkileyebilir ve kullandıkları hizmetleri belirler. Birçok uygulama, Doz döngüleri boyunca normal şekilde çalışır izin verilmez. Bazı durumlarda, uygulamanızın ağı, alarmları, işleri ve senkronizasyonları yönetir. Uygulamalar verimli bir şekilde bakım dönemindeki aktiviteleri yönetebilir.

Alarm planlama konusunda yardımcı olmak için iki AlarmManager kullanabilirsiniz yöntemler: setAndAllowWhileIdle() ve setExactAndAllowWhileIdle(). Bu yöntemleri kullanarak alarm kurabilir ve etkinleşen bir uyarı olup olmadığını kontrol edin.

Ağ erişimindeki Doz kısıtlaması da uygulamanızı etkileyebilir. Özellikle uygulama gıdıklar veya gıdıklar gibi gerçek zamanlı mesajlara dayanıyorsa bildirimleri etkinleştirebilirsiniz. Uygulamanız mesaj almak istemiyorsanız Firebase Cloud Messaging'i (FCM) yapmasını sağlar.

Doz'da uygulamanızın beklendiği gibi davrandığını onaylamak için şunları kullanabilirsiniz: Sistemi dozdan çıkmaya ve Doz'dan çıkmaya zorlamak için adb komutları ve uygulamanızın davranışını gözlemleyin. Ayrıntılar için bkz. Doz ve Uygulamayı Beklemeye Alma özellikleriyle test edin.

Uygulamayı Beklemeye Alma Özelliğini Anlama

Uygulamayı Beklemeye Alma özelliği, kullanıcı sabit değilken uygulamanın boşta olduğunun sistem tarafından belirlenmesini sağlar. kullanmaya başladım. Sistem, bu tespiti kullanıcı ne zaman uygulamaya belirli bir süre boyunca dokunduktan sonra aşağıdaki koşullardan hiçbirini karşılamıyorsunuz geçerlidir:

  • Kullanıcı uygulamayı açıkça başlatır.
  • Uygulamada şu anda ön planda etkinlik olarak bir işlem var veya başka bir etkinlik ya da ön plan hizmeti tarafından kullanılıyor olabilir.
  • Uygulama, kullanıcıların kilit ekranında veya bildirim tepsisini tıklayın.

Kullanıcı cihazı bir güç kaynağına taktığında, sistem uygulamaları serbest bırakır. ağlara özgürce erişmelerine ve istedikleri her şeyi yürütmelerine izin vererek, işler ve senkronizasyonlar. Cihaz uzun süre boşta kalırsa sistem boşta kalan uygulamaların günde yaklaşık bir kez ağ erişimine izin verir.

Cihaz boştayken uygulamanızla etkileşimde bulunmak için FCM'yi kullanın

Firebase Cloud Messaging (FCM), gerçek zamanlı destek alabilmenizi sağlayan buluttan cihaza bir hizmettir. Android cihazlardaki arka uç hizmetleri ve uygulamalar arasında aşağı akış mesajlaşması. FCM tek ve kalıcı bir bağlantı sağlar. Tüm uygulamalar gerçek zamanlı mesajlaşma bu bağlantıyı paylaşabilir. Bu paylaşılan bağlantı pil tüketimini önemli ölçüde optimize ederek kalıcı bağlantılarını korumak için birden fazla uygulamayı destekleyen pili hızlı bir şekilde tüketir. Bu nedenle, uygulamanız mesajlaşma gerektiriyorsa arka uç hizmetiyle entegre etmek için aşağıdaki durumlarda FCM'yi kullanmanızı mümkün olan en iyi sonucu verir.

FCM, Doz ve Uygulama Bekletme boşta kalma modlarıyla çalışacak şekilde optimize edilmiştir. FCM yüksek öncelikli mesajlar, kullanıcının ilgisini çekmek için uygulamanızı uyandırmanızı sağlar. Doz veya Uygulamada Bekleme modunda, sistem mesajı iletir ve uygulamaya geçici erişim izni verir ve kısmi uyanık kalma kilitleri ile çalışır, sonra da cihazı veya uygulamayı boşta kalma durumu. Zamana duyarlı, kullanıcının görebildiği bildirimler için yüksek Doz modunda teslimi etkinleştirmek için öncelikli iletiler. Yüksek öncelikli iletiler bildirimle karşılaşabilirsiniz. Görüntüleyin FCM'nin başlıklı makaleyi inceleyin.

Uygulama içeriğini saklama gibi, bildirim sağlamayan mesajlar için başlatma veya veri senkronizasyonu başlatma, normal öncelikli FCM'yi mesaj. Normal öncelikli mesajlar hemen teslim edilir. Doz'da. Cihaz Doz modundaysa veriler düzenli aralıklarla teslim edilir. Bakım pencereleri veya kullanıcı cihazı uyandırır uyandırmaz.

Genel en iyi uygulama olarak, uygulamanız için aşağı akış mesajlaşması gerekiyorsa FCM. Uygulamanızda zaten FCM kullanılıyorsa yüksek öncelikli mesajlar kullanıldığından emin olun yalnızca kullanıcılara yönelik bildirimlerle sonuçlanan mesajlar için geçerlidir.

Diğer kullanım alanları için destek

Neredeyse tüm uygulamalar ağ bağlantısını yöneterek Doz'u destekleyebilmektedir. senkronizasyon gibi araçlar yer alır. Dar bir kullanım grubu için bu sayı yeterli olmayabilir. Böyle durumlarda sistem bir Doz ve Uygulamayı Beklemeye Alma özelliklerinden kısmen muaf tutulan uygulamaların yapılandırılabilir listesi optimize edebilirsiniz.

Kısmen muaf olan bir uygulama ağı kullanabilir ve kısmi uyanık kalma kilitlenir. Ancak diğer kısıtlamalar uygulanmaya devam eder. uygulamaya geçiş yapmalarına yardımcı olur. Örneğin, uygulamanın işleri ve senkronizasyon API düzeyi 23 ve altında ertelenmiştir ve AlarmManager alarmları çalmaz. Bir uygulama, şu an için isIgnoringBatteryOptimizations()

Kullanıcılar, muaf tutulan uygulamaların listesini Ayarlar > Pil > Pil optimizasyonu. Alternatif olarak, uygulamaların, kullanıcılardan bunları muaf tutmasını istemesi için yöntemler sunar:

Bir uygulama, isIgnoringBatteryOptimizations()

Doz ve Uygulamayı Beklemeye Alma özellikleriyle test edin

Kullanıcılarınıza muhteşem bir deneyim sunmak için uygulamanızı Doz'da tamamen test edin ve Uygulamayı Beklemeye Alma.

Uygulamanızı Doz ile test etme

Aşağıdakileri yaparak Doz modunu test edebilirsiniz:

  1. Bir donanım cihazını veya sanal cihazı Android 6.0 (API) ile yapılandırma seviye 23) veya daha yüksek bir sistem görüntüsü kullanın.
  2. Cihazı geliştirme makinenize bağlayın ve uygulamanızı yükleyin.
  3. Uygulamanızı çalıştırın ve etkin bırakın.
  4. Aşağıdaki komutu çalıştırarak sistemi boşta kalma moduna geçirin:
        $ adb shell dumpsys deviceidle force-idle
        
  5. Hazır olduğunuzda aşağıdaki komutu çalıştırarak boşta kalma modundan çıkın:
        $ adb shell dumpsys deviceidle unforce
        
  6. Aşağıdaki komutu uygulayarak cihazı yeniden etkinleştirin:
        $ adb shell dumpsys battery reset
        
  7. Cihazı yeniden etkinleştirdikten sonra uygulamanızın davranışını gözlemleyin. Marka Cihaz Doz'dan çıktığında uygulamanın sorunsuz bir şekilde kurtarılmasını sağlayın.

Uygulamayı Beklemeye Alma özelliğiyle uygulamanızı test etme

Uygulamayı Bekleme Modu'nu uygulamanızla test etmek için aşağıdakileri yapın:

  1. Bir donanım cihazını veya sanal cihazı Android 6.0 (API) ile yapılandırma seviye 23) veya daha yüksek bir sistem görüntüsü kullanın.
  2. Cihazı geliştirme makinenize bağlayın ve uygulamanızı yükleyin.
  3. Uygulamanızı çalıştırın ve etkin bırakın.
  4. Aşağıdaki komutları çalıştırarak uygulamayı Uygulama Bekletme moduna zorlayın:
        $ adb shell dumpsys battery unplug
        $ adb shell am set-inactive <packageName> true
        
  5. Aşağıdaki komutları kullanarak uygulamanızı uyandırma simülasyonu yapın:
        $ adb shell am set-inactive <packageName> false
        $ adb shell am get-inactive <packageName>
        
  6. Uyandırdıktan sonra uygulamanızın davranışını gözlemleyin. Uygulamanın, bekleme modundan düzgün şekilde kurtarılır. Özellikle, uygulamanızın bildirimleri ve arka plan işleri beklendiği gibi çalışır.

Muafiyet için kabul edilebilir kullanım alanları

Aşağıdaki tabloda birkaç kullanım alanı ve bunların kabul edilebilir olup olmadığı açıklanmaktadır. ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS özelliğini kullanması için uygulamalar bu tür durumlarda ne yapmanız gerektiğini öğrenin. Uygulamanız genel olarak bu şartları karşılamıyor Doz veya Uygulama Bekletme modu, uygulamanın temel işlevini kesintiye uğratmadığı veya Uygulamanızın FCM yüksek öncelikli kullanamamasının teknik bir nedeni vardır mesaj.

Daha fazla bilgi edinmek için kullanım alanlarına bakın.

Tür Kullanım alanı FCM'yi kullanabilir misiniz? Muafiyet kabul edilebilir mi? Notlar
Anlık mesajlaşma, sohbet veya arama uygulaması. Kullanıcılara gerçek zamanlı mesajların teslim edilmesini Cihaz Doz'da veya uygulama, Uygulama Bekleme Modu'nda. Evet, FCM'yi kullanıyorum Kabul Edilemez Uygulamayı uyandırmak ve erişmek için FCM yüksek öncelikli mesajları kullanın ağ.
Evet, ancak FCM yüksek öncelikli mesajları kullanmıyor.
Anlık mesajlaşma, sohbet veya arama uygulaması; kurumsal VOIP uygulamaları. Hayır, başka bir mesajlaşmaya teknik bağımlılık nedeniyle FCM kullanılamıyor hizmet veya Doz ve Uygulama Bekletme modu, uygulamanın temel işlevini bozar. Kabul edilebilir
Güvenlik uygulaması. Kullanıcılarının ve ailelerinin güvenliğini sağlayan uygulamalar. Geçerliyse. Kabul edilebilir
Görev otomasyon uygulaması. Uygulamanın temel işlevi, veya yeni fotoğraf yönetimi özelliklerini kullanabilirsiniz. Geçerliyse. Kabul edilebilir
Çevre birimi cihazı tamamlayıcı uygulaması. Uygulamanın temel işlevi, sağlamak için bir çevre birimi cihazı internet erişimi. Geçerliyse. Kabul edilebilir
Uygulamanın senkronize edilmesi için yalnızca düzenli olarak bir çevre birimi cihazına bağlanması gerekir. veya yalnızca kablosuz kulaklık gibi cihazlara bağlanması gerekir, standart Bluetooth profilleri aracılığıyla. Geçerliyse. Kabul Edilemez