Uygulamayı Beklemeye Alma Grupları

Android 9 (API düzeyi 28) ve sonraki sürümler Uygulama Bekleme Paketleri'ni destekler. Uygulamayı Beklemeye Alma Paketleri, uygulamaların ne kadar yakın zamanda ve ne sıklıkta kullanıldığına bağlı olarak uygulamaların kaynak isteklerine öncelik vermesine yardımcı olur. Uygulama kullanım alışkanlıklarına göre her uygulama, beş öncelikli paketten birine yerleştirilir. Sistem, her uygulamanın kullanabileceği cihaz kaynaklarını, uygulamanın bulunduğu pakete bağlı olarak sınırlandırır.

Öncelikli paketler

Sistem her uygulamayı dinamik olarak bir öncelikli pakete atar ve gerektiğinde uygulamaları yeniden atar. Sistem, her bir uygulamanın kullanılma olasılığını belirlemek için makine öğrenimini kullanan ve uygulamaları uygun paketlere atayan önceden yüklenmiş bir uygulamadan yararlanabilir.

Sistem uygulaması bir cihazda yoksa sistem, varsayılan olarak uygulamaları en son ne kadar süre önce kullanıldığına göre sıralar. Daha etkin olan uygulamalar, kendilerine daha yüksek öncelik veren paketlere atanır ve böylece uygulamanın daha fazla sistem kaynağı kullanabilmesini sağlar. Özellikle, uygulama işlerinin ne sıklıkta çalışacağını ve uygulamanın alarmları ne sıklıkta tetikleyebileceğini bu paket belirler. Bu kısıtlamalar yalnızca cihaz pille çalışırken geçerlidir. Cihaz şarj olurken, sistem bu kısıtlamaları uygulamaz.

Öncelik paketleri şunlardır:

  • Etkin: Uygulama şu anda veya çok kısa bir süre önce kullanılmıştır.
  • Çalışma grubu: Uygulama normal kullanımdadır.
  • Sık: Uygulama sık sık kullanılır ancak her gün kullanılmaz.
  • Nadir: Uygulama sık kullanılmıyor.
  • Kısıtlı: Uygulama çok fazla sistem kaynağı tüketir veya istenmeyen davranışlar gösterebilir.

Bu öncelikli paketlere ek olarak, yüklenen ancak hiç çalıştırılmayan uygulamalar için hiçbir zaman özel bir paket yoktur. Sistem, bu uygulamalara ciddi kısıtlamalar getirir.

Aşağıdaki açıklamalar tahmine dayalı olmayan durumlar içindir. Buna karşılık, tahminde davranışı tahmin etmek için makine öğrenimi kullanıldığında paketler, son kullanıma göre değil, kullanıcının sonraki işlemleri dikkate alınarak seçilir. Örneğin, yakın zamanda kullanılan bir uygulama, makine öğrenimi uygulamanın birkaç saat boyunca kullanılmayabileceğini tahmin ettiği için nadir veri grubuna düşebilir.

Etkin

Bir uygulama kullanılırken, çok kısa bir süre önce kullanıldığında veya aşağıdakilerden herhangi birini yaptığında etkin pakettedir:

  • Bir etkinlik başlatır.
  • Uzun süreli bir ön plan hizmeti çalıştırır.
  • Kullanıcı tarafından bir bildirimden dokunulduğunda.

Bir uygulama etkin pakette yer alıyorsa sistem, uygulamanın işleri veya alarmlarıyla ilgili 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ı uygulamanızla belirli şekillerde etkileşim kurduğunda sistem, uygulamanızı geçici olarak etkin pakete yerleştirir. Kullanıcı, uygulamanızla etkileşimi durdurduktan sonra sistem, uygulamayı kullanım geçmişine göre bir pakete yerleştirir.

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

  • Kullanıcı, uygulamanızın gönderdiği bir bildirime dokunur.

  • Kullanıcı, bir medya düğmesine dokunarak uygulamanızdaki bir ön plan hizmetiyle etkileşim kurar.

  • Kullanıcı, uygulamanızın bir ön plan hizmeti veya CONNECTION_TYPE_PROJECTION kullandığı Android Automotive OS ile etkileşimde bulunurken uygulamanıza bağlanır.

Çalışma seti

Sık çalıştırılan ancak etkin olmayan uygulamalar çalışma grubu grubundadır. Örneğin, kullanıcının neredeyse her gün kullanıma sunduğu bir sosyal medya uygulaması büyük olasılıkla çalışır durumda olacaktır. Uygulamalar dolaylı olarak kullanıldığında da çalışma grubu paketine yükseltilir.

Bir uygulama çalışır durumdaysa sistem, uygulamanın işleri çalıştırma ve alarm tetikleme kapasitesine hafif kısıtlamalar uygular. Ayrıntılar için Güç yönetimi kısıtlamaları başlıklı makaleye bakın.

Sık sık

Düzenli olarak kullanılan ancak her gün kullanılması zorunlu olmayan uygulamalar sık grupta yer alır. Örneğin, kullanıcının spor salonunda çalıştırdığı bir antrenman izleme uygulaması sık kullanılan grupta yer alabilir.

Bir uygulama sık kullanılan pakette yer alıyorsa sistem, uygulamanın işleri çalıştırma ve alarm tetikleme özelliklerine daha güçlü kısıtlamalar uygular. Ayrıntılar için Güç yönetimi kısıtlamaları başlıklı makaleye bakın.

Nadir

Sık kullanılmayan uygulamalar nadir grupta yer alır. Örneğin, kullanıcının yalnızca ilgili otelde kaldığı süre boyunca çalıştırdığı bir otel uygulaması nadir görülen bir uygulama paketinin içinde yer alabilir.

Bir uygulama nadir pakette yer alıyorsa sistem, uygulamanın iş çalıştırma ve alarm tetikleme becerisine katı kısıtlamalar uygular. Sistem, uygulamanın internete bağlanma özelliğini de sınırlandırır. Ayrıntılar için Güç yönetimi kısıtlamaları başlıklı makaleye bakın.

Kısıtlı

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ı kısıtlanmış pakete yerleştirip yerleştirmeyeceğinize karar vermek için uygulamanızın davranışını (kullanıcının ne sıklıkla etkileşimde bulunduğu gibi) dikkate alır.

Uygulamanız, muafiyet için uygun olmadığı sürece, Android 13 (API düzeyi 33) ve sonraki sürümlerde uygulamanızı aşağıdaki durumlarda kısıtlanmış gruba yerleştirir:

  • Kullanıcı, belirli sayıda gün boyunca uygulamanızla etkileşimde bulunmaz. Android 12 (API düzeyi 31) ve 12L'de (API düzeyi 32) gün sayısı 45'tir. Android 13, gün sayısını 8'e düşürmektedir.

  • Uygulamanız, 24 saatlik bir süre içinde aşırı sayıda yayın veya bağlama çağırıyor.

Sistem, uygulamanızı kısıtlanmış pakete yerleştirirse aşağıdaki kısıtlamalar geçerli olur:

  • 10 dakikalık toplu oturumda günde bir kez iş ç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 kendilerine çalışmaz. Aynı anda çalışan veya beklemede olan en az bir iş daha olmalıdır. Bu iş, diğer tüm işleri içerebilir.
  • Sistemin uygulamanızı daha az kısıtlayıcı bir pakete yerleştirdiği durumlara kıyasla, uygulamanız daha az hızlandırılmış iş çalıştırabilir.
  • Uygulamanız günde bir alarm çağırabilir. Bu alarm, tam alarm veya değişken olmayan alarm olabilir.

Kısıtlanmış paketten muaf tutmalar

Aşağıdaki uygulama türleri, Android 12 ve sonraki sürümlerde bile kısıtlanmış pakete girmekten muaftır ve etkin olmama tetikleyicisini atlar:

Öncelik paketini 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 şu komutu çalıştırın:

    adb shell am get-standby-bucket PACKAGE_NAME

Değeri STANDBY_BUCKET_ACTIVE (10) değerinden büyük olan bir Uygulamayı Beklemeye Alma Paketine yerleştirildiğinde sistem uygulamanızı kısıtlar.

En iyi uygulamalar

Uygulamanız, Doz ve uygulamayı beklemeye alma için en iyi uygulamaları izliyorsa sonraki güç yönetimi özellikleri zor olmaz. Ancak daha önce sorunsuz çalışan bazı uygulama davranışları sorunlara neden olabilir.

  • Sisteminizi, uygulamanızı belirli bir pakete yerleştirmek için manipüle etmeye çalışmayın. Sistemin öncelik yerleştirme yöntemi değişebilir ve her cihaz üreticisi kendi algoritmasıyla kendi paketleme uygulamasını yazmayı tercih edebilir. Bunun yerine, uygulamanızın hangi pakette olursa olsun uygun şekilde davrandığından emin olun.
  • Bir uygulamada başlatıcı etkinliği yoksa uygulama hiçbir zaman etkin pakete yükseltilmeyebilir. Uygulamanızı böyle bir etkinliğe sahip olacak şekilde yeniden tasarlamayı düşünebilirsiniz.
  • Kullanıcılar uygulama bildirimleriyle etkileşimde bulunamazsa uygulamanın etkin pakete promosyonunu tetikleyemez. Bu durumda, kullanıcıların etkileşimde bulunmasını sağlayan bazı bildirimleri yeniden tasarlayabilirsiniz. Bazı yönergeler için Materyal Tasarım Bildirim tasarım kalıplarına bakın.

  • Uygulama, yüksek öncelikli Firebase Cloud Messaging (FCM) mesajı aldıktan sonra bildirim göstermezse kullanıcı uygulamayla etkileşime giremez ve dolayısıyla uygulamayı etkin pakete yükseltemez. Aslında, yüksek öncelikli FCM mesajları için amaçlanan tek kullanım, kullanıcıya bildirim göndermektir; dolayısıyla bu durum ortaya çıkmamalıdır. 12L (API düzeyi 32) ve daha düşük sürümlerde, kullanıcı etkileşimini tetiklemediği halde bir FCM mesajını uygun olmayan şekilde yüksek öncelikli olarak işaretlerseniz bu durum, gelecekteki mesajların öncelik düzeyinin düşmesine neden olabilir.

  • Uygulamalar birden fazla pakete bölünmüşse bu paketler farklı paketlerde olabilir ve farklı erişim düzeylerine sahip olabilir. Uygulamanın düzgün çalıştığından emin olmak için bu uygulamaları çeşitli paketlere atanmış paketlerle test edin.