Zasobniki gotowości aplikacji

Android 9 (poziom interfejsu API 28) i nowsze obsługują zasobniki gotowości aplikacji. Czuwanie aplikacji Zasobniki pomagają systemowi nadać priorytet aplikacjom na podstawie tego, jak ostatnie dane i częstotliwość używania tych aplikacji. Na podstawie wzorców użytkowania aplikacji znajduje się w jednym z 5 grup priorytetowych. System ogranicza urządzenie zasobów dostępnych dla każdej aplikacji w zależności od tego, w jakim zasobniku ona się znajduje.

Zasobniki priorytetowe

System dynamicznie przypisuje każdą aplikację do zasobnika priorytetowego, przypisując do niej aplikacje zgodnie z potrzebami. System może polegać na wstępnie załadowanej aplikacji, która używa komputera określa prawdopodobieństwo używania danej aplikacji i przypisuje ją do odpowiednich zasobników.

Jeśli na urządzeniu nie ma aplikacji systemowej, system domyślnie sortuje odpowiednie elementy. na podstawie tego, kiedy były używane. Bardziej aktywne aplikacje są przypisywane do zasobników z wyższym priorytetem, dzięki czemu więcej zasobów systemowych dostępnych w aplikacji. W szczególności zasobnik określa, jak często uruchamiania zadań aplikacji i jak często aplikacja może wywoływać alarmy. Te ograniczenia mają zastosowanie tylko wtedy, gdy urządzenie jest zasilane z baterii. Podczas ładowania urządzenia system nie nakłada tych ograniczeń.

Zasobniki priorytetowe to:

  • Aktywna: aplikacja jest lub była używana niedawno.
  • Zestaw roboczy: aplikacja jest regularnie używana.
  • Częste: w aplikacji jest często używany, ale nie codziennie.
  • Rzadkie: aplikacja nie jest często używana.
  • Z ograniczeniem: aplikacja zużywa dużo zasobów systemu lub może zachowywać się w wyniku działania niepożądane zachowanie.

Oprócz tych grup priorytetowych istnieje specjalna grupa nigdy przeznaczona dla aplikacji, które są zainstalowane, ale nigdy nie były uruchamiane. System narzuca poważne ograniczenia tych aplikacji.

Poniższe opisy odnoszą się do przypadku nieprzewidywalnych. Natomiast gdy prognoza wykorzystuje systemy uczące się do prognozowania zachowań, zasobniki są wybierane przewidywanie kolejnych działań użytkownika, a nie na podstawie ostatniego użycia aplikacji. Dla: Ostatnio używana aplikacja może trafić do tego rzadkiego zasobnika, ponieważ komputer system uczenia się przewiduje, że aplikacja może nie być używana przez kilka godzin.

Aktywne

aplikacja znajduje się w zasobniku aktywna, gdy jest używana lub ostatnio była używana; gdy:

  • Uruchamia aktywność.
  • Uruchamia długo działającą usługę na pierwszym planie.
  • Użytkownik klika go w powiadomieniu.

Jeśli aplikacja jest w aktywnym zasobniku, system nie nakłada żadnych ograniczeń o zadaniach lub alarmach aplikacji.

Interakcja użytkownika powoduje przypisanie aplikacji jako aktywnych

W Androidzie 9 (poziom interfejsu API 28) i nowszych, gdy użytkownik w określony sposób wchodzi w interakcję z Twoją aplikacją, system tymczasowo umieszcza ją w grupie aktywnych aplikacji. Gdy użytkownik przestanie korzystać z aplikacji, system umieści ją w grupie na podstawie historii użytkowania.

Oto przykłady interakcji, które wyzwalają to działanie systemu:

  • Użytkownik klika powiadomienie wysłane przez Twoją aplikację.

  • Użytkownik wchodzi w interakcję z usługą na pierwszym planie w aplikacji przez kliknięcie przycisku multimedialnego.

  • Użytkownik łączy się z Twoją aplikacją podczas interakcji z Androidem Automotive OS, gdzie aplikacja korzysta z usługi na pierwszym planie lub z CONNECTION_TYPE_PROJECTION.

Zestaw roboczy

Aplikacja znajduje się w grupie zestawu roboczego, jeśli jest często uruchamiana, ale nie jest aktywna. Na przykład aplikacja społecznościowa, którą użytkownik uruchamia niemal codziennie, funkcjonują w zestawie. Aplikacje są również awansowane do zasobnika zbioru roboczego, jeśli nie są używane pośrednio.

Jeśli aplikacja znajduje się w zestawie roboczym, system nakłada na nią niewielkie ograniczenia uruchamianie zadań i aktywowanie alarmów. Więcej informacji znajdziesz w artykule Zarządzanie zasilaniem. ograniczenia.

Częste

Aplikacja znajduje się często, jeśli jest używana regularnie, ale niekoniecznie zainteresowanych informacjami ze świata. Może to być na przykład aplikacja do monitorowania treningów, którą użytkownik biega na siłowni. może być w zasobniku częstego.

Jeśli aplikacja znajduje się w częstym zasobniku, system nakłada silniejsze ograniczenia na uruchamianie zadań i aktywowanie alarmów. Więcej informacji znajdziesz w artykule o ograniczeniach związanych z zarządzaniem energią.

Rzadkie

Aplikacja znajduje się w rzadkim zasobniku, jeśli nie jest używana często. Na przykład hotel aplikacji używanej przez użytkownika tylko podczas pobytu w danym hotelu. zasobnika.

Jeśli aplikacja znajduje się w rzadkim zasobniku, system narzuca rygorystyczne ograniczenia uruchamianie zadań i aktywowanie alarmów. System ogranicza też możliwości aplikacji, aby połączyć się z internetem. Więcej informacji znajdziesz w artykule Zarządzanie zasilaniem. ograniczenia.

Z ograniczonym dostępem

Ten zasobnik dodany w Androidzie 12 (poziom interfejsu API 31) ma najniższy priorytet największe ograniczenia ze wszystkich zasobników. System bierze pod uwagę takie jak częstotliwość interakcji użytkownika z reklamą, umieścić aplikację w zasobniku z ograniczeniami,

Na Androidzie 13 (poziom interfejsu API 33) i nowszym, chyba że aplikacja kwalifikuje się do wykluczenie, system umieszcza aplikację w zasobniku z ograniczeniami w następujących sytuacjach:

  • Użytkownik nie wchodzi w interakcję z Twoją aplikacją przez określoną liczbę dni. W przypadku Androida 12 (poziom API 31) i 12L (poziom API 32) liczba dni wynosi 45. Android 13 skraca liczbę dni do 8.

  • Aplikacja wywołuje nadmierną liczbę transmisji lub powiązań w okresie 24 godzin.

Jeśli system umieści Twoją aplikację w zasobniku z ograniczeniami, obowiązują ograniczenia:

  • W ramach 10-minutowej sesji grupowej możesz uruchamiać zadania raz dziennie. Podczas tej sesji system grupował zadania Twojej aplikacji z zadaniami innych aplikacji.
    • Zadania z ograniczeniami nie są uruchamiane samodzielnie. Musi być co najmniej 1 inne zadanie uruchomione lub oczekujące w tym samym czasie, które może być dowolnym innym zadaniem.
  • Aplikacja może uruchamiać mniej przyspieszonych zadań w porównaniu z systemem umieścić aplikację w mniej restrykcyjnym zasobniku.
  • Aplikacja może wywołać 1 alarm dziennie. Ten alarm może mieć ścisły alarm lub alarm niedokładny.

Wyjątki z zasobnika z ograniczeniami

Do zasobnika z ograniczeniami nie mogą trafiać te typy aplikacji: pomijać regułę braku aktywności nawet w Androidzie 12 lub nowszym:

Oceń zasobnik priorytetowy

Aby sprawdzić, do którego zasobnika jest przypisana Twoja aplikacja, wykonaj jedną z tych czynności:

  • Zadzwoń pod numer getAppStandbyBucket().

  • Uruchom następujące polecenie w oknie terminala:

    adb shell am get-standby-bucket PACKAGE_NAME

System ogranicza działanie aplikacji za każdym razem, gdy znajduje się ona w zasobniku gotowości aplikacji , którego wartość jest większa niż STANDBY_BUCKET_ACTIVE (10).

Sprawdzone metody

Jeśli Twoja aplikacja postępuje zgodnie ze sprawdzonymi metodami dotyczącymi uśpienia i czuwania, później korzystanie z funkcji zarządzania energią nie będzie trudne. Niektóre zachowania aplikacji która wcześniej działała prawidłowo, może powodować problemy.

  • Nie próbuj manipulować systemem w celu umieszczenia aplikacji w określonym zasobnika. Systemowa metoda określania priorytetu może się zmienić, a każde urządzenie producent może zdecydować się na napisanie własnej aplikacji do grupowania algorytmem bezpieczeństwa. Upewnij się, że aplikacja zachowuje się właściwie niezależnie od tego, do określonego zasobnika.
  • Jeśli aplikacja nie ma aktywności uruchamiającej, może nigdy nie zostać awansowana na aktywnego zasobnika. Rozważ przeprojektowanie aplikacji, aby uwzględnić taką aktywność.
  • Jeśli użytkownicy nie mogą wchodzić w interakcję z powiadomieniami aplikacji, nie mogą też aktywować promocji aplikacji w aktywnej puli. W takim przypadku rozważ zmianę wyglądu niektórych powiadomień, które umożliwiają interakcję z użytkownikiem. W przypadku niektórych wytycznych zobacz wzorce projektowe powiadomień Material Design.

  • Jeśli aplikacja nie wyświetli powiadomienia po otrzymaniu komunikatów o wysokim priorytecie z Komunikacji w chmurze Firebase (FCM), użytkownik nie będzie mógł z nią wchodzić w interakcje i w ten sposób przenieść jej do aktywnego zasobnika. Jedynym zamierzonym celem dla wiadomości FCM o wysokim priorytecie to przekazanie powiadomienia do użytkownika, taka sytuacja nie może wystąpić. W wersji 12L (poziom interfejsu API 32) i starszych, jeśli nieprawidłowo oznaczysz wiadomość FCM jako o wysokim priorytecie, gdy nie powoduje ona interakcji użytkownika, może to spowodować obniżenie priorytetu przyszłych wiadomości.

  • Jeśli aplikacje są podzielone na kilka pakietów, mogą się one znajdować w do różnych zasobników i o różnych poziomach dostępu. Przetestuj te aplikacje za pomocą przypisane do różnych zasobników, aby zapewnić prawidłowe działanie aplikacji.