Uygulamayı Beklemeye Alma Grupları

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. Uygulama kullanım alışkanlıklarına göre, Uygulama, beş öncelikli paketten 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 paketine atar ve ve gerektiği şekilde devre dışı bırakabilirsiniz. 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 etkin uygulamalar atanır Bu pakete daha yüksek öncelik veren paketlere öncelik verilir. Böylece, daha fazla sistem kaynağı sağlanır. elde edebiliyorlar. Özellikle, paket, bir öğenin ne sıklıkta bir uygulamanın işlerinin çalışma sıklığı ve uygulamanın alarmları ne sıklıkta tetikleyebileceği. Bu kısıtlamalar yalnızca cihaz pil gücüyle çalışırken uygulanır. Cihaz şarj olurken sistem bu kısıtlamaları uygulamaz.

Öncelik grupları şunlardır:

  • Etkin: Uygulama kullanılıyor veya çok yakın zamanda kullanıldı.
  • Çalışma grubu: Uygulama normal olarak kullanılıyordur.
  • Sık: Uygulama genellikle kullanılır ancak her gün kullanılmaz.
  • Nadir: Uygulama, sık kullanılmaz.
  • Kısıtlandı: Uygulama çok fazla sistem kaynağı tüketiyor veya istenmeyen davranışlar sergileyebilir.

Bu öncelik paketlerine ek olarak aşağıdakiler için özel bir hiçbir zaman grubu vardır yüklü olan ancak hiç çalıştırılmamış uygulamalar olabilir. Bu sistem, belirli süreçlerde bu uygulamaları.

Aşağıdaki açıklamalar, tahmine dayalı olmayan destek kaydı içindir. Buna karşın Tahmin, davranışı tahmin etmek için makine öğrenimini kullanır. Paketler son kullanım yerine kullanıcının sonraki eylemlerine dair tahmin. Örneğin, makine öğrenimi uygulamanın birkaç saat boyunca kullanılmayacağını tahmin ettiğinden, yakın zamanda kullanılan bir uygulama nadir grubuna dahil edilebilir.

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üre çalışan bir ön plan hizmetini çalıştırır.
  • Kullanıcı bir bildirimde dokundu.

Etkin pakette bir uygulama varsa sistem, ve alarmları kontrol eder.

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 durdurduktan sonra, sistem, uygulamanızı pakete dahil edilir.

Aşağıda, bu sistem davranışını tetikleyen etkileşim örnekleri verilmiştir:

Ç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. Aşağıdaki şartlar karşılanıyorsa uygulamalar da çalışma seti grubuna yükseltilir: dolaylı olarak kullanılır.

Bir uygulama çalışma setindeyse sistem, uygulamaya hafif kısıtlamalar geliştirme ve alarm tetikleme imkanı sunar. Ayrıntılar için bkz. Güç yönetimi kısıtlamalarına tabidir.

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 çalıştırdığı bir antrenman izleme uygulaması sık rastlananlar arasında olabilir.

Bir uygulama sık kullanılan pakette yer alıyorsa sistem, ilgili uygulamaya geliştirme ve alarm tetikleme becerisi. Ayrıntılı bilgi için Güç yönetimi kısıtlamaları başlıklı makaleyi inceleyin.

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 kapasitesini de sınırlandırır internete bağlanın. 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, en düşük önceliğe, tüm gruplar arasında en yüksek kısıtlamayı elde edersiniz. 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 muafiyet olduğunda, sistem uygulamanızı şu durumlardan biri söz konusudur:

  • Kullanıcı belirli sayıda gün boyunca uygulamanızla etkileşime geçmediyse. 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 çok fazla sayıda yayın veya bağlama istiyor elde edebilirsiniz.

Sistem, uygulamanızı kısıtlanmış pakete yerleştiriyorsa kısıtlamalara tabidir:

  • 10 dakikalık toplu oturumda günde bir kez işleri çalıştırabilirsiniz. Etkinlik sırasında Bu oturumda, sistem, uygulamanızın işlerini diğer uygulamalarla işler.
    • Kısıtlanmış işler kendi başlarına çalışmaz. En az bir tane olmalıdır aynı anda devam eden veya beklemede olan başka bir iş bahsedeceğim.
  • Uygulamanız, sistem tarafından çalıştırılana kıyasla daha az hızlandırılmış iş çalıştırabilir uygulamanızı daha az kısıtlayıcı bir pakete yerleştirir.
  • Uygulamanız günde bir tane alarm çağırabilir. Bu alarm, tam bir alarm olabilir alarm veya tam olmayan alarm.

Kısıtlanmış paketteki muafiyetler

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:

Öncelik grubunu değerlendirme

Uygulamanızın hangi pakete atandığını kontrol etmek için aşağıdakilerden birini yapın:

  • getAppStandbyBucket() numaralı telefonu arayın.

  • Bir terminal penceresinde aşağıdaki komutu çalıştırın:

    adb shell am get-standby-bucket PACKAGE_NAME

Sistem, değeri STANDBY_BUCKET_ACTIVE (10) olan bir uygulama bekleme grubuna yerleştirildiğinde uygulamanızı kısıtlar.

En iyi uygulamalar

Uygulamanız Doz ve uygulamayı beklemeye alma ile ilgili en iyi uygulamaları izliyorsa sonraki güç yönetimi özellikleri zor değildir. Ancak bazı uygulama davranışları bu da sorunlara 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 etkinliğe sahip olacak şekilde yeniden tasarlayabilirsiniz.
  • 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ını sağlayan bazı bildirimler yeniden tasarlandı. Bazı yönergeler için Materyal Tasarım Bildirim tasarım kalıpları başlıklı makaleyi inceleyin.

  • Uygulama, yüksek öncelikli bir alınca bildirim göstermiyorsa Firebase Cloud Messaging (FCM) mesajı yoksa kullanıcı etkileşime geçemez. ve böylece etkin gruba tanıtabilirsiniz. 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 bir FCM mesajını uygunsuz bir şekilde yüksek öncelikli olarak işaretlersiniz. kullanıcı etkileşimini tetiklemesi, gelecekteki iletilerin öncelik düzeyinin düşürülmesine neden olabilir.

  • 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.