Android 9 (poziom interfejsu API 28) i nowsze obsługują zasobniki gotowości aplikacji. Czuwanie aplikacji Za pomocą puli system może ustalać priorytety żądań zasobów aplikacji na podstawie tego, jak często i jak dawno aplikacje były używane. 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 priorytetów, przypisując aplikacje w razie potrzeby. 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 używana lub była używana bardzo niedawno.
- Zestaw roboczy: aplikacja jest regularnie używana.
- Częste: w aplikacji jest często używany, ale nie codziennie.
- Rzadko: aplikacja jest rzadko 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 nakłada na te aplikacje poważne ograniczenia.
Poniższe opisy odnoszą się do przypadku nieprzewidywalnych. Natomiast gdy prognoza wykorzystuje systemy uczące się do prognozowania zachowań, zasobniki są wybierane przewidywanie następnych 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ść.
- Uruchomiona jest usługa działająca długo na pierwszym planie.
- To zostało kliknięte przez użytkownika w powiadomieniu.
Jeśli aplikacja znajduje się w aktywnej puli, system nie nakłada żadnych ograniczeń na zadania ani alarmy tej aplikacji.
Interakcja użytkownika powoduje przypisanie aplikacji jako aktywnej
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 powodują takie 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 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ą też przenoszone do zbioru aplikacji roboczych, jeśli 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 o ograniczeniach związanych z zarządzaniem energią.
Częste
Aplikacja znajduje się często, jeśli jest używana regularnie, ale niekoniecznie zainteresowanych informacjami ze świata. Na przykład aplikacja do śledzenia treningów, której użytkownik używa na siłowni, może znajdować się w grupie często używanych aplikacji.
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 jest w grupie rzadko, jeśli nie jest często używana. Na przykład hotel aplikacji używanej przez użytkownika tylko podczas pobytu w danym hotelu. zasobnika.
Jeśli aplikacja znajduje się w grupie rzadkich aplikacji, system nakłada na nią rygorystyczne ograniczenia dotyczące możliwości wykonywania zadań i uruchamiania 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 zasób, dodany w Androidzie 12 (poziom API 31), ma najniższy priorytet i największe ograniczenia spośród 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 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 wiązań w ciągu 24 godzin.
Jeśli system umieści aplikację w grupie z ograniczeniami, będą obowiązywać te ograniczenia:
- Możesz wykonywć zadania raz dziennie w ramach 10-minutowej sesji zbiorczej. 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łać 1 alarm dziennie. Alarm może być dokładny lub niedokładny.
Wyjątki z zasobnika z ograniczeniami
Te typy aplikacji nie są umieszczane w grupie ograniczonej i omijają regułę dotyczącą braku aktywności nawet na Androidzie 12 i nowszych:
- Aplikacje na urządzeniach towarzyszących
- Aplikacje działające na urządzeniu w trybie demonstracyjnym
- Aplikacje właściciela urządzenia
- Aplikacje Właściciel profilu
- Aplikacje trwałe
- Aplikacje VPN
- Aplikacje z rolą
ROLE_DIALER
- aplikacje, które użytkownik wyraźnie oznaczył jako „nieograniczone” w ustawieniach systemu;
- Aplikacje z aktywnymi widżetami
- Aplikacje, które mają co najmniej jedno z tych uprawnień:
Ocena puli priorytetów
Aby sprawdzić, do którego zasobnika przypisana jest 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, gdy zostanie ona umieszczona w grupie aplikacji w stanie gotowości, której wartość jest większa niż STANDBY_BUCKET_ACTIVE
(10).
Sprawdzone metody
Jeśli Twoja aplikacja stosuje się do sprawdzonych metod dotyczących Doze i trybu gotowości aplikacji, późniejsze funkcje zarządzania zasilaniem nie powinny sprawić Ci trudności. Jednak niektóre zachowania aplikacji, które wcześniej działały dobrze, mogą 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 w menu, może nigdy nie zostać przeniesiona do 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ż 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świetli powiadomienia po otrzymaniu wiadomości 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ą one znajdować się w różnych grupach i mieć różne poziomy dostępu. Przetestuj te aplikacje za pomocą przypisane do różnych zasobników, aby zapewnić prawidłowe działanie aplikacji.