Zbyt częste skanowanie Wi-Fi w tle

Gdy aplikacja przeprowadza skanowanie Wi-Fi w tle, wybudza procesor, co powoduje szybkie zużycie baterii. Zbyt duża liczba skanowań może znacznie skrócić czas pracy na baterii urządzenia. Uznaje się, że aplikacja działa w tle, jeśli ma stan PROCESS_STATE_BACKGROUND lub PROCESS_STATE_CACHED.

Ten dokument wyjaśnia, jak wykryć, czy aplikacja wykonuje zbyt wiele skanowań Wi-Fi w tle, a także jak zdiagnozować i rozwiązać problem.

Wykryj problem

Nie zawsze wiesz, że aplikacja przeprowadza zbyt wiele skanowań Wi-Fi. Jeśli aplikacja została już opublikowana, Android Vitals może Cię powiadomić o problemie, aby można było go naprawić.

Android Vitals

Android Vitals może poprawić wydajność aplikacji, powiadamiając Cię w Konsoli Play o zbyt częstym skanowaniu Wi-Fi w tle przez aplikację. Android Vitals wykrywa zbyt częste skanowanie Wi-Fi, gdy aplikacja wykonuje więcej niż 4 skanowania na godzinę. W Konsoli Play możesz sprawdzić odsetek sesji baterii, które wykazują takie działanie.

Definicja sesji baterii zależy od wersji platformy.

  • W Androidzie 10 sesja baterii to zbiór wszystkich raportów o stanie baterii, które zostały odebrane w ciągu danego 24-godzinnego okresu. Raport o stanie baterii odnosi się do okresu między dwoma ładowaniami baterii od poziomu naładowania poniżej 20% do powyżej 80% lub od dowolnego poziomu naładowania do 100%.
  • W Androidzie 11 sesja baterii ma stałą długość 24 godzin.

Informacje o tym, jak Google Play gromadzi dane Android Vitals, znajdziesz w dokumentacji Konsoli Play.

Zbadaj skanowania Wi-Fi

Narzędzia takie jak Bateria Historyn pozwalają uzyskać więcej informacji o działaniu aplikacji podczas skanowania. Usługa Battery Historyn udostępnia wizualizację procesu skanowania sieci Wi-Fi z uwzględnieniem poszczególnych aplikacji, dzięki czemu możesz uzyskać bardziej przejrzysty obraz tego, co dzieje się z Twoją aplikacją. Więcej informacji na temat funkcji Battery Historyn znajdziesz w artykule na temat analizowania zużycia energii przy użyciu historii baterii.

Informacje o mechanice korzystania z usługi Historyk baterii znajdziesz w artykule Statystyki baterii i przewodnik historyczny baterii.

Ogranicz skanowanie

Jeśli to możliwe, aplikacja powinna przeprowadzać skanowanie Wi-Fi, gdy działa na pierwszym planie. Usługi działające na pierwszym planie automatycznie przedstawiają powiadomienia; przeprowadzają skanowanie Wi-Fi na pierwszym planie, dzięki czemu użytkownik wie, dlaczego i kiedy na jego urządzeniu jest wykonywane skanowanie Wi-Fi.

Więcej informacji o skanowaniu na pierwszym planie znajdziesz w dokumentacji klasy WifiManager.

Jeśli Twoja aplikacja nie może uniknąć skanowania Wi-Fi, gdy działa w tle, warto zastosować strategię Lazy First. Lazy First obejmuje 3 techniki, których możesz użyć do ograniczenia skanowania Wi-Fi: reduce, opóźnianie i koalesce. Więcej informacji o tych metodach znajdziesz w artykule Optymalizacja pod kątem żywotności baterii.