Android 9 (API düzeyi 28) ve sonraki sürümler uygulama bekleme kapları özelliğini destekler. Uygulamayı Beklemeye Alma Paketler, sistemin uygulamaları öncelik sırasına koymasına yardımcı olur nasıl çalıştığına ve son zamanlarda ve uygulamaların ne sıklıkta kullanıldığını gösterir. Uygulamaların kullanım kalıplarına göre her uygulama, beş öncelikli gruptan birine yerleştirilir. Sistem cihazı sınırlandırır uygulamanın bulunduğu pakete bağlı olarak her uygulama için kullanılabilir kaynaklar.
Öncelik paketleri
Sistem, her uygulamayı dinamik olarak bir öncelik grubuna atar ve gerektiğinde uygulamaları yeniden atar. Sistem, makine öğrenimi kullanan önceden yüklenmiş bir uygulamadan her uygulamanın kullanılma olasılığını belirlemeyi öğrenir ve emin olmanız gerekir.
Cihazda sistem uygulaması yoksa sistem varsayılan olarak sıralamayı kullanır. göre otomatik olarak değişir. Daha aktif olan uygulamalar, kendilerine daha yüksek öncelik veren gruplara atanır. Bu sayede uygulama daha fazla sistem kaynağına erişebilir. Özellikle grup, uygulamanın işlerinin ne sıklıkta çalışacağını ve uygulamanın alarmları ne sıklıkta tetikleyebileceğini belirler. Bu kısıtlamalar yalnızca cihaz pil gücüyle çalışırken uygulanır. Cihaz şarj olurken sistem bu kısıtlamaları uygulamaz.
Öncelikli paketler şunlardır:
- Etkin: Uygulama kullanılıyor veya çok yakın zamanda kullanıldı.
- Çalışma grubu: Uygulama düzenli olarak kullanılıyor.
- Sık: Uygulama sık kullanılır ancak günlük olarak kullanılmaz.
- Nadir: Uygulama, sık kullanılmaz.
- Kısıtlanmış: Uygulama çok fazla sistem kaynağı tüketiyor veya çok fazla sistem kaynağı gösteriyor olabilir istenmeyen davranışlardır.
Bu öncelik gruplarına ek olarak, yüklenmiş ancak hiç çalıştırılmamış uygulamalar için özel bir hiç grubu vardır. Bu sistem, belirli süreçlerde bu uygulamaları.
Aşağıdaki açıklamalar, tahmini olmayan durum içindir. Buna karşılık, davranışı tahmin etmek için makine öğrenimi kullanıldığında gruplar, son kullanıma göre değil, kullanıcının sonraki işlemlerini tahmin ederek seçilir. Örneğin, Örneğin, yakın zamanda kullanılan bir uygulama, makinenin öğrenmesi, uygulamanın birkaç saat süreyle kullanılmayabileceğini tahmin eder.
Etkin
Bir uygulama kullanılırken etkin paketteyse, çok kısa süre önce kullanılıyorsa veya aşağıdakilerden birini yaptığında:
- Bir etkinliği başlatır.
- Uzun süredir çalışan bir ön plan hizmeti çalıştırır.
- Kullanıcı bir bildirimde dokundu.
Bir uygulama etkin gruptaysa sistem, uygulamanın işleri veya alarmları üzerinde herhangi bir kısıtlama uygulamaz.
Kullanıcı etkileşimi uygulamaları etkin olarak atar
Android 9 (API düzeyi 28) ve sonraki sürümlerde kullanıcı, sistem, uygulamanızı geçici olarak etkin pakete yerleştirir. Kullanıcı uygulamanızla etkileşimi bıraktıktan sonra sistem, kullanıcıyı kullanım geçmişine göre bir grupta yer alır.
Aşağıda, bu sistem davranışını tetikleyen etkileşimlere örnekler verilmiştir:
Kullanıcı, uygulamanızın gönderdiği bir bildirime dokunur.
Kullanıcı, medya düğmesine dokunarak uygulamanızdaki bir ön plan hizmetiyle etkileşim kurar.
Kullanıcı, Android Automotive ile etkileşimde bulunurken uygulamanıza bağlanır OS, uygulamanızın bir ön plan hizmeti veya
CONNECTION_TYPE_PROJECTION
.
Çalışma seti
Bir uygulama sık sık çalışıyorsa ancak etkin değilse çalışma grubu paketindedir. Örneğin, kullanıcının neredeyse her gün kullanıma sunduğu bir sosyal medya uygulamasının çalışma setinde olmasını sağlamaktır. Uygulamalar, dolaylı olarak kullanılıyorsa çalışma grubu grubuna da yükseltilir.
Bir uygulama çalışma grubundaysa sistem, uygulamanın iş çalıştırma ve alarm tetikleme özelliğine hafif kısıtlamalar uygular. Ayrıntılar için bkz. Güç yönetimi kısıtlamalar hakkında daha fazla bilgi edinin.
Sık görüşülen
Düzenli olarak (her gün olmasa da) kullanılan uygulamalar sık olarak sınıflandırılır. Örneğin, kullanıcının spor salonunda kullandığı bir egzersiz takibi uygulaması sık kullanılanlar paketinde yer alabilir.
Bir uygulama sık kullanılan pakette yer alıyorsa sistem, ilgili uygulamaya geliştirme ve alarm tetikleme becerisi. Ayrıntılar için bkz. Güç yönetimi kısıtlamalar hakkında daha fazla bilgi edinin.
Nadir
Sık kullanılmayan uygulamalar nadir olarak sınıflandırılır. Örneğin, bir otel kullanıcının yalnızca söz konusu otelde kaldığı süre boyunca çalıştırdığı bir uygulamadır. paket.
Bir uygulama nadir bulunan paketteyse sistem, geliştirme ve alarm tetikleme imkanı sunar. Sistem, uygulamanın internete bağlanma özelliğini de sınırlar. Ayrıntılar için bkz. Güç yönetimi kısıtlamalar hakkında daha fazla bilgi edinin.
Kısıtlanmış
Android 12'de (API düzeyi 31) eklenen bu paket, tüm paketler arasında en düşük önceliğe ve en yüksek kısıtlamalara sahiptir. Sistem, uygulamanızın kısıtlanmış grubuna yerleştirilip yerleştirilmeyeceğine karar vermek için uygulamanızın davranışını (ör. kullanıcının uygulamayla ne sıklıkta etkileşime geçtiği) dikkate alır.
Android 13 (API düzeyi 33) ve sonraki sürümlerde, uygulamanız istisna kapsamına girmediği sürece sistem aşağıdaki durumlarda uygulamanızı kısıtlanmış grubuna yerleştirir:
Kullanıcı, uygulamanızla belirli sayıda gün boyunca etkileşim kurmuyor. Android 12 (API düzeyi 31) ve 12L (API düzeyi 32) sürümlerinde bu süre 45 gündür. Android 13, gün sayısını 8'e düşürür.
Uygulamanız 24 saat içinde aşırı sayıda yayın veya bağlama yapıyor.
Sistem, uygulamanızı kısıtlanmış pakete yerleştiriyorsa kısıtlamalara tabidir:
- 10 dakikalık toplu oturumda günde bir kez işler çalıştırabilirsiniz. Bu oturum sırasında sistem, uygulamanızın işlerini diğer uygulamaların işleriyle gruplandırır.
- Kısıtlanmış işler kendi kendine çalışmaz. En az bir tane olmalıdır aynı anda devam eden veya beklemede olan başka bir iş bahsedeceğim.
- Sistem, uygulamanızı daha az kısıtlayıcı bir pakete yerleştirdiğinde uygulamanız daha az sayıda hızlandırılmış iş çalıştırabilir.
- Uygulamanız günde bir alarm çağırabilir. Bu alarm, tam bir alarm olabilir alarm veya tam olmayan alarm.
Kısıtlanmış paketten muaf tutulanlar
Aşağıdaki uygulama türleri kısıtlanmış pakete girmekten muaftır ve Android 12 ve sonraki sürümlerde bile etkin olmama tetikleyicisini atlayın:
- Tamamlayıcı cihaz uygulamaları
- Bir cihazda Demo Modu'nda çalışan uygulamalar
- Cihaz sahibi uygulamaları
- Profil sahibi uygulamaları
- Kalıcı uygulamalar
- VPN uygulamaları
ROLE_DIALER
rolüne sahip uygulamalar- Kullanıcının sistem ayarlarında "kısıtlanmamış" işlevler sunması için açıkça belirttiği uygulamalar
- Etkin widget'ları olan uygulamalar
- Aşağıdaki izinlerden en az birine sahip olan uygulamalar:
Öncelikli paketi değerlendirme
Uygulamanızın hangi pakete atandığını kontrol etmek için aşağıdakilerden birini yapın:
getAppStandbyBucket()
numaralı telefonu arayın.Terminal penceresinde aşağıdaki komutu çalıştırın:
adb shell am get-standby-bucket PACKAGE_NAME
Uygulamanız bir Uygulama Bekleme Paketine yerleştirildiğinde sistem, uygulamanızı kısıtlar
değeri STANDBY_BUCKET_ACTIVE
(10) değerinden büyük olan kullanıcılar.
En iyi uygulamalar
Uygulamanız Doz ve uygulama bekleme modu ile ilgili en iyi uygulamaları takip ediyorsa sonraki güç yönetimi özellikleri zor olmayacaktır. Ancak daha önce iyi çalışan bazı uygulama davranışları soruna neden olabilir.
- Sistemi, uygulamanızı belirli bir gruba yerleştirecek şekilde değiştirmeye çalışmayın. Sistemin öncelik verme yöntemi değişebilir ve her cihaz üreticisi kendi algoritmasıyla kendi gruplandırma uygulamasını yazmayı seçebilir. Bunun yerine, hangi cihaz olursa olsun uygulamanızın gerektiği gibi içine sindireceğim.
- Başlatıcı etkinliği olmayan uygulamalar hiçbir zaman seçilebilir. Uygulamanızı bu tür bir etkinlik içerecek şekilde yeniden tasarlamayı düşünebilirsiniz.
Kullanıcılar uygulama bildirimleriyle etkileşim kuramıyorsa uygulamanın etkin pakete tanıtımını tetikleyemez. Bu durumda, kullanıcıların etkileşimde bulunmasına olanak tanıyan bazı bildirimleri yeniden tasarlayabilirsiniz. Bazı kurallarda Materyal Tasarım Bildirimler tasarım kalıplarına bakın.
Uygulama, yüksek öncelikli bir Firebase Cloud Messaging (FCM) mesajı aldığında bildirim göstermiyorsa kullanıcı uygulamayla etkileşime geçemez ve uygulamayı etkin pakete yükseltemez. Aslına bakarsanız, planlanan yüksek öncelikli FCM mesajları için de kullanıcıya bir bildirim göndermektir. Bu nedenle, böyle bir durum söz konusu değildir. 12L (API düzeyi 32) ve önceki sürümlerde, kullanıcı etkileşimi tetiklemediği halde bir FCM mesajını uygunsuz bir şekilde yüksek öncelikli olarak işaretlerseniz gelecekteki mesajların önceliğinin kaldırılmasına neden olabilirsiniz.
Uygulamalar birden fazla pakete bölünmüşse bu paketler farklı farklı erişim düzeylerine sahip olduğundan emin olun. Bu uygulamaları paketlerin atanmasını kolaylaştırır.