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 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 ograniczonym dostępem: aplikacja zużywa dużo zasobów systemu lub może wystawiać niepożądane zachowanie.

Oprócz tych zasobników priorytetowych jest jeszcze specjalny nigdy zasobnik dla zainstalowane aplikacje, które 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.
  • To zostało kliknięte przez użytkownika 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

Na Androidzie 9 (poziom interfejsu API 28) i nowszych, gdy użytkownik wejdzie w interakcję z aplikacją system tymczasowo umieszcza aplikację w aktywnym zasobniku. Gdy użytkownik przestanie wchodzić w interakcję z aplikacją, system umieszcza ją w sekcji na podstawie historii wykorzystania.

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

  • użytkownik klika powiadomienie wysłane przez aplikację,

  • użytkownik wchodzi w interakcję z usługą na pierwszym planie w aplikacji, klikając multimedia .

  • Użytkownik łączy się z aplikacją podczas interakcji z Androidem Automotive systemu operacyjnego, w którym aplikacja korzysta z usługi na pierwszym planie lub CONNECTION_TYPE_PROJECTION.

Zestaw roboczy

Aplikacja znajduje się w zasobniku zestawu roboczego, jeśli działa często, 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. Szczegółowe informacje 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. Szczegółowe informacje znajdziesz w artykule Zarządzanie zasilaniem. ograniczenia.

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. Szczegółowe informacje 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 korzystał z aplikacji przez określoną liczbę dni; Wł. Android 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. W trakcie w ramach tej sesji system grupuje zadania aplikacji z innymi aplikacjami ofert pracy.
    • Zadania z ograniczeniami nie są uruchamiane samodzielnie. Musi być co najmniej jeden inne zadania uruchomione lub oczekujące w tym samym czasie, które mogą zawierać dowolne innej pracy.
  • Aplikacja może uruchamiać mniej przyspieszonych zadań w porównaniu z systemem umieścić aplikację w mniej restrykcyjnym zasobniku.
  • Aplikacja może wywoływać 1 alarm dziennie. Ten alarm może mieć ścisły alarm lub alarm niedokładny.
.

Wykluczenia z ograniczonego zasobnika

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ą wejść w interakcję z powiadomieniami z aplikacji, aktywuje promocję aplikacji w aktywnym zasobniku. W takim przypadku rozważ zmieniliśmy wygląd niektórych powiadomień, które umożliwiają użytkownikom interakcję. W przypadku niektórych wytycznych zobacz wzorce projektowe powiadomień Material Design.

  • Jeśli aplikacja nie wyświetla powiadomienia po otrzymaniu powiadomienia o wysokim priorytecie wiadomość FCM (Firebase Cloud Messaging, FCM), z którą użytkownik nie może wchodzić w interakcję i tym samym promować ją 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ć. Na wersji 12L (poziom interfejsu API 32) lub niższym, jeśli nieprawidłowo oznaczasz wiadomość FCM jako wysoki priorytet, mimo że tak nie jest. wywołuje interakcję użytkownika, może 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.