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.
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:
- Ağ erişimini askıya alır.
- Uyandırmayı yok sayar kilitler.
- Standardı erteler
AlarmManager
. alarmlar da dahilsetExact()
vesetWindow()
, devreye girecek.- Dozdayken etkinleşen alarmlar ayarlamanız gerekirse şunu kullanın:
setAndAllowWhileIdle()
. veyasetExactAndAllowWhileIdle()
. - Ayarlanan alarmlar:
setAlarmClock()
. normal şekilde etkinleşmeye devam eder. Sistem, bunlardan kısa bir süre önce Doz'dan çıkar olduğunu görebilirsiniz.
- Dozdayken etkinleşen alarmlar ayarlamanız gerekirse şunu kullanın:
- Kablosuz ağ taraması gerçekleştirmez.
- Senkronizasyon bağdaştırıcılarının çalışmasına izin vermez.
- İzin vermez
JobScheduler
. gerekir.
Doz kontrol listesi
- Mümkünse akış süreci için Firebase Cloud Messaging (FCM) kullanın Mesajlaşma'da oturum açın.
- Kullanıcılarınızın hemen bir bildirim görmesi gerekiyorsa FCM yüksek öncelikli mesajı. Yalnızca şu sonuçla sonuçlanan iletiler için yüksek önceliği kullan: bildirimi görebilirsiniz. Daha fazla bilgi edinmek için FCM'nin dokümanlarına göz atın.
- İlk mesajda yeterli bilgi verin. Payload'u tıklayın. Bu nedenle, sonraki ağ erişimi gerekli olmaz.
- Önemli alarmları
setAndAllowWhileIdle()
ile kurun vesetExactAndAllowWhileIdle()
. - Uygulamanızı Doz'da test edin.
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 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:
- Çoğu uygulama,
ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS
- Kabul edilebilir bir kullanım alanını karşılayan uygulamalar
bunun yerine
ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
kullanıcının uygulamayı muafiyet listesine doğrudan eklemesine olanak tanıyan intent işlemi sistem ayarlarına gitmeden çalışır.
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:
- 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.
- Cihazı geliştirme makinenize bağlayın ve uygulamanızı yükleyin.
- Uygulamanızı çalıştırın ve etkin bırakın.
- Aşağıdaki komutu çalıştırarak sistemi boşta kalma moduna geçirin:
$ adb shell dumpsys deviceidle force-idle
- Hazır olduğunuzda aşağıdaki komutu çalıştırarak boşta kalma modundan çıkın:
$ adb shell dumpsys deviceidle unforce
- Aşağıdaki komutu uygulayarak cihazı yeniden etkinleştirin:
$ adb shell dumpsys battery reset
- 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:
- 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.
- Cihazı geliştirme makinenize bağlayın ve uygulamanızı yükleyin.
- Uygulamanızı çalıştırın ve etkin bırakın.
- 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
- 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>
- 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ğa katılmaz. |
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 |