Częściowe blokady uśpienia to mechanizm w interfejsie PowerManager API, który pozwala
programistom 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 a
częściową blokadę uśpienia, wywołując acquire() z flagą PARTIAL_WAKE_LOCK
lub korzystając z innych interfejsów API, które uzyskują blokady uśpienia.
Nadmierne używanie częściowych blokad uśpienia wyczerpuje baterię urządzenia, ponieważ uniemożliwia mu przejście w stan niskiego zużycia energii. Częściowe blokady uśpienia powinny być używane wyłącznie w razie potrzeby i zwalniane, gdy tylko przestaną być potrzebne.
Jeśli Twoja aplikacja nadmiernie korzysta z częściowych blokad uśpienia, możesz skorzystać z informacji na tej stronie, aby zdiagnozować i rozwiązać problem.
Wykrywanie problemu
Android Vitals może pomóc Ci wykryć, kiedy Twoja aplikacja nadmiernie korzysta z częściowych blokad uśpienia.
Android Vitals
Android Vitals może pomóc Ci poprawić działanie aplikacji, wysyłając alert w Konsoli Play za każdym razem, gdy w aplikacji wystąpi nadmierne użycie częściowych blokad uśpienia.
Android Vitals zgłasza użycie częściowej blokady uśpienia jako nadmierne , gdy wszystkie częściowe blokady uśpienia , zsumowane, działają przez 2 lub więcej godzin w ciągu 24 godzin. Android Vitals śledzi czas trwania blokady uśpienia tylko wtedy, gdy blokada jest aktywna, gdy aplikacja działa w tle lub jako usługa na pierwszym planie. Obecnie Android Vitals wyłącza z obliczeń blokady uśpienia utworzone przez interfejsy API zainicjowane przez użytkownika, takie jak audio, lokalizacja i JobScheduler.
Panel Android Vitals dotyczący nadmiernego użycia częściowych blokad uśpienia zawiera podział nazw blokad uśpienia niezwiązanych z Twoją aplikacją, pokazując sesje i czasy trwania, których to dotyczy.
Jeśli nadmierne użycie częściowych blokad uśpienia występuje w ponad 5% sesji aplikacji na wszystkich urządzeniach w ciągu 28 dni, może to wpłynąć na widoczność aplikacji w Google Play.
Gdy dowiesz się, że w aplikacji występuje nadmierne użycie częściowych blokad uśpienia, musisz rozwiązać ten problem.
Rozwiązanie problemu
Blokady uśpienia 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 przechodzeniu urządzenia w stan uśpienia, znajdziesz najlepsze rozwiązanie dla swojej aplikacji.
Jeśli musisz użyć blokady uśpienia, postępuj zgodnie ze sprawdzonymi metodami dotyczącymi blokad uśpienia, aby nie pogorszyć wydajności urządzenia. W szczególności zadbaj o to, aby każda wywołana blokada została jak najszybciej zwolniona.
Aplikacja może też używać blokad uśpienia, nawet jeśli nie uzyskujesz ich bezpośrednio. Jeśli widzisz blokady uśpienia przypisane do aplikacji, których nie rozpoznajesz, identyfikacja blokad uśpienia utworzonych przez inne interfejsy API może pomóc Ci określić, które interfejsy API mogły je utworzyć.
Po rozwiązaniu problemu w kodzie możesz sprawdzić poprawki za pomocą lokalnych narzędzi do debugowania blokady uśpienia.
Zobacz też
- Ciągłe częściowe blokady uśpienia
- Wybór odpowiedniego interfejsu API, który zapobiega przechodzeniu urządzenia w stan uśpienia
- Dokumentacja blokad uśpienia
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język 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 biblioteki Macrobenchmark