Android 9 (API düzeyi 28), cihaz güç yönetimini iyileştirmeye yönelik yeni özellikler sunar. Bu ve önceki sürümlerde bulunan özelliklerle birlikte, Böylece sistem kaynaklarının en çok ihtiyaç duyan uygulamalara verilmesini sağlayabilirsiniz.
Güç yönetimi özellikleri iki kategoriye ayrılır:
- Uygulama bekleme modu paketleri
- Sistem uygulamaları sınırlandırır gibi cihaz kaynaklarına erişmelerini Kullanıcının kullanım alışkanlıklarına göre CPU veya pil. Bu, kullanıcıların Android 9.
- Pil tasarrufu iyileştirmeleri
- Pil Tasarrufu açıldığında sistem tüm uygulamalara kısıtlamalar uygular. Bu, Android 9 ile iyileştirilmiş mevcut bir özelliktir. ziyaret edin.
Uygulamayı Beklemeye Alma Grupları
Android 9, Uygulama Bekleme Grupları adlı yeni bir pil yönetimi özelliğini kullanıma sunuyor. Uygulamayı Beklemeye Alma Grupları, sistemin uygulamaların kaynak isteklerine öncelik vermesine yardımcı olur. Öncelik, uygulamaların ne kadar süre önce ve ne sıklıkta kullanıldığına göre belirlenir. Uygulama kullanımına göre her uygulama beş öncelik grubundan birine yerleştirilir. Sistem, her uygulamanın kullanabileceği cihaz kaynaklarını uygulamanın bulunduğu pakete göre sınırlandırır.
Beş grup, uygulamaları aşağıdaki özelliklere göre gruplandırır:
- Etkin
Kullanıcı uygulamayı şu anda kullanıyorsa uygulama etkin grupta yer alır. Örneğin:
- Uygulama bir etkinlik başlattı
- Uygulama bir ön plan hizmeti çalıştırıyor
- Uygulamada, ön plan uygulaması tarafından kullanılan bir içerik sağlayıcıyla ilişkilendirilmiş bir senkronizasyon bağdaştırıcısı var
- Kullanıcı, uygulamadaki bir bildirimi tıklar
Etkin grupta yer alan bir uygulamanın görevleri, alarmları veya FCM mesajları sistem tarafından kısıtlanmaz.
- Çalışma seti
Bir uygulama sık çalışıyorsa ancak şu anda çalışmıyorsa çalışma grubu paketindedir etkin. Örneğin, kullanıcının çoğu gün başlattığı bir sosyal medya uygulamasının çalışma grubunda yer alması muhtemeldir. Uygulamalar, dolaylı olarak kullanılıyorsa çalışma grubu paketine de yükseltilir.
Bir uygulama çalışma setindeyse sistem, uygulamaya hafif kısıtlamalar geliştirme ve alarm tetikleme imkanı sunar. Ayrıntılı bilgi için Güç yönetimi kısıtlamaları başlıklı makaleyi inceleyin.
- Sık görüşülen
Düzenli olarak kullanılan (her gün kullanılmak zorunda değildir) uygulamalar sık kullanılanlar grubuna girer. Örneğin, kullanıcının spor salonunda kullandığı bir egzersiz takibi uygulaması sık kullanılanlar paketinde yer alabilir.
Bir uygulama sık sık gruptaysa sistem, uygulamanın iş çalıştırma ve alarm tetikleme özelliğine daha güçlü kısıtlamalar uygular ve ayrıca yüksek öncelikli FCM mesajlarına bir sınır uygular. Ayrıntılar için bkz. Güç yönetimi kısıtlamaları.
- Nadir
Sık kullanılmayan uygulamalar nadir olarak listelenir. Örneğin, bir otel uygulaması çok nadir rastlanan bir durum olabilir. paket.
Bir uygulama nadir gruptaysa sistem, uygulamanın iş çalıştırma, alarm tetikleme ve yüksek öncelikli FCM mesajları alma özelliğine katı kısıtlamalar uygular. Sistem, uygulamanın internete bağlanma yeteneğini de sınırlandırır. Ayrıntılı bilgi için Güç yönetimiyle ilgili kısıtlamalar başlıklı makaleyi inceleyin.
- Hiçbir zaman
Yüklenen ancak hiç çalıştırılmayan uygulamalar, hiç çalıştırılmayan uygulamaların bulunduğu gruba atanır. Sistem bu uygulamalara ciddi kısıtlamalar uygular.
Sistem, her uygulamayı dinamik olarak bir öncelik paketine atar ve uygulamadaki her uygulama için ve gerektiği şekilde devre dışı bırakabilirsiniz. Sistem, her uygulamanın kullanılma olasılığını belirlemek için makine öğrenimini kullanan önceden yüklenmiş bir uygulamadan yararlanabilir ve uygulamaları uygun gruplara atar. Sistem uygulaması bir cihazda yoksa sistem, varsayılan olarak uygulamaları en son ne zaman kullanıldıklarına göre sıralar. Şu özelliklere sahip paketlere daha etkin uygulama atanmış: uygulamalara daha yüksek öncelik verebilir, uygulamanın kullanabileceği daha fazla sistem kaynağıdır. Özellikle, paketin işlerin ne sıklıkta çalışacağını, uygulamanın ne sıklıkta ve uygulamanın yüksek öncelikli Firebase Cloud Mesajlaşma (FCM) mesajları. Bu kısıtlamalar yalnızca cihaz pil gücüyle çalışırken geçerlidir; sistem Bu kısıtlamaları, cihaz şarj olurken uygulamalara getirmez.
Her üretici, etkin olmayan uygulamaların nasıl olacağıyla ilgili kendi ölçütlerini belirleyebilir.
atanır. Uygulamanızın hangi paketin kullanılacağını etkilemeye çalışmamalısınız.
atanır. Bunun yerine uygulamanızın her durumda iyi davrandığından emin olmaya
farklı olabilir. Uygulamanız, yeni UsageStatsManager.getAppStandbyBucket()
yöntemini çağırarak şu anda hangi pakette olduğunu öğrenebilir.
En iyi uygulamalar
Uygulamanız halihazırda Doz ve uygulamayı bekleme modu, yeni güç yönetimi özelliklerinin işlenmesi zor olmayacaktır. Ancak daha önce iyi çalışan bazı uygulama davranışları artık soruna yol açabilir.
- Uygulamanızı tek bir pakete yerleştirmek için sistemi manipüle etmeye çalışmayın. başka bir tane. Sistemin paketleme yöntemleri değişebilir ve her cihaz üretici kendi paketleme uygulamasını yazmayı tercih edebilir. algoritması. Bunun yerine, uygulamanızın hangi grupta olursa olsun uygun şekilde davrandığından emin olun.
- Başlatıcı etkinliği olmayan uygulamalar hiçbir zaman etkinleştirebilirsiniz. Uygulamanızı bu tür bir etkinliğe sahip olacak şekilde yeniden tasarlayabilirsiniz.
- Uygulamanın bildirimleri üzerinde işlem yapılamıyorsa kullanıcılar Bildirimler ile etkileşim kurarak etkin pakete tanıtabilirsiniz. Bu durumda, bazı uygun bildirimleri kullanıcının yanıt vermesine izin verecek şekilde yeniden tasarlamak isteyebilirsiniz. Bazı yönergeler için Materyal Tasarım Bildirim tasarım kalıplarına bakın.
Benzer bir şekilde, uygulama bir bildirim aldıktan sonra yüksek öncelikli FCM iletisiyle kullanıcıya uygulamayla etkileşim kurma ve böylece uygulamayı diğer kullanıcılara seçilebilir. Aslında yüksek öncelikli FCM mesajları için tasarlanmış tek kullanım kullanıcıya bir bildirim iletmelidir; böylece bu durumla hiçbir zaman karşılaşmazsınız. Şu durumda: bir FCM mesajını tetiklenmediğinde uygunsuz bir şekilde yüksek öncelikli olarak işaretle diğer olumsuz sonuçlara yol açabilir. bir projenin uygulamanızın kotasını tüketmesine neden olarak gerçekten acil bir durum FCM iletileri, normal öncelikli olarak ele alınır.
Not: Kullanıcı bir bildirimi tekrar tekrar kapatırsa sistem, kullanıcıya bu bildirimi gelecekte engelleme seçeneği sunar. Sırf uygulamanızı şurada tutmak için kullanıcıya bildirim göndererek spam yapmayın: etkin paket
Uygulamalar birden fazla pakete bölünmüşse bu paketler farklı gruplarda olabilir ve dolayısıyla farklı erişim düzeylerine sahip olabilir. Uygulamanın düzgün şekilde davrandığından emin olmak için bu tür uygulamaları çeşitli paketlere atanmış paketlerle test etmeniz gerekir.
Pil tasarrufu iyileştirmeleri
Android 9, pil tasarrufu modunda çeşitli iyileştirmeler yapar. Uygulanan kısıtlamaları cihaz üreticisi belirler. Örneğin, AOSP derlemelerinde sistem aşağıdaki kısıtlamaları uygular:
- Sistem, uygulamaları uygulamanın boşta kalması bekleniyor.
- Arka planda yürütme sınırları, hedef API düzeylerinden bağımsız olarak tüm uygulamalar için geçerlidir.
- Ekran kapalıyken konum hizmetleri devre dışı bırakılabilir.
- Arka plan uygulamalarının ağ erişimi yoktur.
Ayrıca, cihaza özgü başka güç optimizasyonları da vardır. Tam fiyat için güç yönetimini açıklayan sayfaya bakın kısıtlamalar hakkında daha fazla bilgi edinin.
Her zaman olduğu gibi, uygulamanızı pil tasarrufu etkin durumdayken test etmeniz iyi bir fikirdir. Siz cihazın Ayarlar > Pilli Tasarruf ekranı'na dokunun.
Test ve sorun giderme
Yeni güç yönetimi özellikleri Android 9 cihazlarda çalışan tüm uygulamaları etkiler. Android 9'u hedeflemiyor. Uygulamanızın doğru tepkiler verdiğinden emin olmak düzgün şekilde kullanıyor.
Uygulamanızın temel kullanım alanlarını çeşitli koşullarda test ettiğinizden emin olun. ve güç yönetimi özelliklerinin birbiriyle nasıl etkileşime girdiğini gösterir. Android Hata Ayıklama Köprüsü komutlarının bir kısmını etkinleştirebilir veya devre dışı bırakabilirsiniz.
Android Debug Bridge komutları
Android Debug Bridge kabuk komutlarını kullanabilirsiniz test edebilirsiniz.
Cihazınızı Doz'a almak üzere ADB kullanma hakkında bilgi için bkz. Doz ve Uygulamayı Beklemeye Alma özellikleriyle test etme.
Uygulamayı Beklemeye Alma Grupları
Uygulamanızı manuel olarak bir Uygulama Bekleme Paketine atamak için ADB'yi kullanabilirsiniz. Bir uygulamanın paketini değiştirmek için aşağıdaki komutu kullanın:
$ adb shell am set-standby-bucket packagename active|working_set|frequent|rare
Tek seferde birden çok paket ayarlamak için bu komutu da kullanabilirsiniz:
$ adb shell am set-standby-bucket package1 bucket1 package2 bucket2...
Bir uygulamanın hangi pakette olduğunu kontrol etmek için
$ adb shell am get-standby-bucket [packagename]
Bir packagename parametresini iletmezseniz komut,
tüm uygulamalar için paketler. Uygulamalar, yeni UsageStatsManager.getAppStandbyBucket()
yöntemini çağırarak da çalışma zamanında paketlerini öğrenebilir.
Pil tasarrufu
Uygulamanızın düşük güç koşullarında nasıl davrandığını test etmek için birkaç komut vardır.
Cihazın fişten çekilmesinin simülasyonunu yapmak için şu komutu kullanın:
$ adb shell dumpsys battery unplug
Cihazın düşük güç koşullarında nasıl davrandığını test etmek için şu komutu kullanın:
$ adb shell settings put global low_power 1
Testinizi tamamladıktan sonra manuel cihaz ayarlarınızı geri alabilirsiniz şu komutla kullanın:
$ adb shell dumpsys battery reset