Częściowe blokady uśpienia to mechanizm w interfejsie PowerManager
API, który pozwala deweloperom utrzymać działanie procesora po wyłączeniu wyświetlacza urządzenia (czy to z powodu przekroczenia limitu czasu systemu, czy naciśnięcia przycisku zasilania przez użytkownika). Aplikacja uzyskuje częściową blokadę wybudzania, wywołując acquire()
z flagą PARTIAL_WAKE_LOCK
lub używając innych interfejsów API, które uzyskują blokady wybudzania.
Częściowa blokada uśpienia utknie, jeśli będzie utrzymywana przez długi czas, gdy aplikacja działa w tle (żadna jej część nie jest widoczna dla użytkownika). Ten stan wyczerpuje baterię urządzenia, ponieważ uniemożliwia mu przejście w stan niskiego zużycia energii. Częściowe blokady wybudzania powinny być używane tylko w razie potrzeby i zwalniane, gdy tylko przestaną być potrzebne.
Jeśli aplikacja ma zablokowane częściowe wybudzenie, możesz skorzystać z informacji na tej stronie, aby zdiagnozować i rozwiązać problem.
Wykrywanie problemu
Nie zawsze możesz wiedzieć, że częściowe blokady uśpienia w Twojej aplikacji są zablokowane. Jeśli aplikacja została już opublikowana, Android Vitals może Ci pomóc w wykryciu problemu.
Android Vitals
Android Vitals może pomóc Ci poprawić działanie aplikacji, wysyłając alerty w Konsoli Play, gdy aplikacja wykazuje zablokowane częściowe blokady wybudzania. Android Vitals zgłasza częściowe blokady uśpienia jako zablokowane, gdy w ciągu 24 godzin wystąpi co najmniej jedna godzinna częściowa blokada uśpienia, gdy aplikacja działa w tle.
Wyświetlana liczba sesji baterii to łączna liczba sesji wszystkich mierzonych użytkowników aplikacji. Więcej informacji o tym, jak Google Play zbiera dane Android Vitals, znajdziesz w dokumentacji Konsoli Play.
Gdy dowiesz się, że w aplikacji występują częściowe blokady wybudzania, które nie zostały zwolnione, musisz rozwiązać ten problem.
Rozwiąż problem
Blokady wybudzania mogą wyczerpywać baterię urządzenia, dlatego nie należy ich używać, jeśli istnieje alternatywa. W dokumentacji dotyczącej wyboru odpowiedniego interfejsu API, który zapobiega przejściu urządzenia w stan uśpienia znajdziesz najlepsze rozwiązanie dla swojej aplikacji.
Jeśli musisz użyć blokady wybudzania, postępuj zgodnie ze sprawdzonymi metodami dotyczącymi blokad wybudzania, aby nie pogorszyć wydajności urządzenia. W szczególności upewnij się, że każde pozyskane urządzenie jest zwolnione, i jak najszybciej zwalniaj blokadę.
Po rozwiązaniu problemu w kodzie możesz sprawdzić poprawki za pomocą lokalnych narzędzi do debugowania blokady wybudzania.
Zobacz również
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy JavaScript jest wyłączony.
- Zablokowane klatki
- Uruchamianie testów porównawczych w trybie ciągłej integracji
- Tworzenie i pomiar profili podstawowych bez użycia Macrobenchmark