Lokalizacja w tle a żywotność baterii

Korzystanie z lokalizacji w tle może mieć znaczny wpływ na czas pracy na baterii. Android obsługuje limity zbierania lokalizacji w tle, co zachęca deweloperów do optymalizowania aplikacji pod kątem lepszego wykorzystania baterii. Te optymalizacje są korzystne dla wszystkich urządzeń, niezależnie od wersji Androida, na której działają.

Ograniczenia dotyczące lokalizacji w tle:

  • Gromadzenie lokalizacji w tle jest ograniczone, a lokalizacja jest obliczana i dostarczana tylko kilka razy na godzinę.
  • Skanowanie sieci Wi-Fi jest bardziej oszczędne, a aktualizacje lokalizacji nie są obliczane, gdy urządzenie pozostaje połączone z tym samym statycznym punktem dostępu.
  • Czas reakcji geofencingu zmienia się z kilkudziesięciu sekund na około 2 minuty. Ta zmiana poprawia wydajność baterii – na niektórych urządzeniach nawet 10-krotnie.

Wymagana wiedza

W tym dokumencie zakładamy, że znasz te interfejsy API:

Informacje o szybkim zużyciu baterii

Gromadzenie danych o lokalizacji i zużycie baterii są ze sobą powiązane w następujący sposób:

  • Dokładność: precyzja danych o lokalizacji. Zasadniczo im wyższa dokładność, tym większe zużycie baterii.
  • Częstotliwość: jak często lokalizacja jest obliczana. Im częściej lokalizacja jest obliczana, tym więcej baterii jest zużywane.
  • Czas oczekiwania: jak szybko dostarczane są dane o lokalizacji. Mniejsze opóźnienie zwykle wymaga większego zużycia baterii.

Dokładność

Dokładność lokalizacji możesz określić za pomocą metody setPriority(), przekazując jako argument jedną z tych wartości:

  • PRIORITY_HIGH_ACCURACY zapewnia możliwie najdokładniejszą lokalizację, która jest obliczana przy użyciu tylu danych wejściowych, ile jest potrzebnych (włącza GPS, Wi-Fi i sieć komórkową oraz korzysta z różnych czujników). Może to powodować znaczne zużycie baterii.
  • PRIORITY_BALANCED_POWER_ACCURACY podaje dokładną lokalizację, optymalizując jednocześnie zużycie energii. Bardzo rzadko korzysta z GPS-u. Zwykle do obliczania lokalizacji urządzenia używa kombinacji informacji o Wi-Fi i sieci komórkowej.
  • PRIORITY_LOW_POWER opiera się głównie na stacjach bazowych i nie korzysta z GPS-u ani Wi-Fi, co zapewnia przybliżoną dokładność (na poziomie miasta) przy minimalnym zużyciu baterii.
  • PRIORITY_PASSIVE otrzymuje lokalizacje pasywnie z innych aplikacji, dla których lokalizacja została już obliczona.

Używaj opcji zrównoważonego lub niskiego zużycia energii, aby zaspokoić potrzeby większości aplikacji dotyczące lokalizacji. Wysoką dokładność zarezerwuj dla aplikacji, które działają na pierwszym planie i wymagają aktualizacji lokalizacji w czasie rzeczywistym (np. aplikacji do mapowania).

Częstotliwość

Częstotliwość lokalizacji możesz określić na 2 sposoby:

Podczas korzystania z setIntervalMillis() podaj największą możliwą wartość. Dotyczy to zwłaszcza zbierania danych o lokalizacji w tle, które często powoduje rozładowanie baterii. Zarezerwuj interwały o długości kilku sekund na potrzeby zastosowań na pierwszym planie.

Limity lokalizacji w tle wprowadzone w Androidzie 8.0 (interfejs API na poziomie 26) wymuszają stosowanie tych strategii, ale aplikacja powinna dążyć do ich stosowania na urządzeniach z Androidem 7.0 (interfejs API na poziomie 24) lub starszym.

Czas oczekiwania

Opóźnienie możesz określić za pomocą metody setMaxUpdateDelayMillis(), zwykle przekazując wartość, która jest kilka razy większa niż interwał określony w metodzie setIntervalMillis(). To ustawienie opóźnia dostarczanie informacji o lokalizacji, a wiele informacji o zmianie lokalizacji może być dostarczanych w partiach. Te 2 zmiany pomagają zminimalizować zużycie baterii.

Jeśli aplikacja nie potrzebuje natychmiastowej informacji o zmianie lokalizacji, przekaż do metody setMaxUpdateDelayMillis() największą możliwą wartość, aby skutecznie zamienić opóźnienie na więcej danych i wydajność baterii.

Podczas korzystania z geofence aplikacje powinny przekazywać dużą wartość do metody setNotificationResponsiveness(), aby oszczędzać energię. Zalecana wartość to co najmniej 5 minut.

Więcej informacji

Więcej informacji znajdziesz w tych dokumentach:

  • Rekomendacje: ten przewodnik zawiera konkretne zalecane działania, które możesz podjąć, aby zmniejszyć wpływ aplikacji na czas pracy na baterii.
  • Przykłady użycia: ten przewodnik zawiera kilka typowych przykładów użycia, w których możesz korzystać z usług lokalizacyjnych, oraz informacje o tym, jak w tych przypadkach zoptymalizować wpływ na czas pracy na baterii.