Lokalizacja w tle a żywotność baterii

Korzystanie z lokalizacji w tle może znacznie wpływać na czas pracy baterii. Android umożliwia ograniczanie gromadzenia danych o lokalizacji w tle, co zmusza programistów do optymalizowania aplikacji pod kątem oszczędzania baterii. Te optymalizacje przynoszą korzyści wszystkim urządzeniom, niezależnie od wersji Androida, na której działają.

W przypadku ograniczeń dostępu do lokalizacji w tle:

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

Wymagana wiedza

Ten dokument zakłada znajomość tych interfejsów API:

Informacje o szybkim zużyciu baterii

Pobieranie danych o lokalizacji a zużycie baterii:

  • Dokładność: dokładność danych o lokalizacji. Zasadniczo im większa dokładność, tym większy pobór prądu.
  • Częstotliwość: jak często jest obliczana lokalizacja. Im częściej obliczana jest lokalizacja, tym więcej energii zużywa bateria.
  • Opóźnienie:szybkość dostarczania danych o lokalizacji. Mniejsza opóźnienie zwykle wymaga więcej energii z 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 najdokładniejszą możliwą lokalizację, która jest obliczana na podstawie jak największej liczby danych wejściowych (włącza GPS, Wi-Fi i komórkową oraz używa różnych czujników) i może powodować znaczne zużycie baterii.
  • PRIORITY_BALANCED_POWER_ACCURACY zapewnia dokładną lokalizację przy optymalizacji zużycia energii. bardzo rzadko korzysta z GPS; Zwykle do obliczania lokalizacji urządzenia używa kombinacji informacji o sieci Wi-Fi i komórkowej.
  • PRIORITY_LOW_POWER korzysta głównie ze stacji bazowych i nie używa danych z GPS ani Wi-Fi, zapewniając przy tym dokładność na poziomie miasta przy minimalnym zużyciu baterii.
  • PRIORITY_NO_POWER otrzymuje pasywnie lokalizację z innych aplikacji, dla których lokalizacja została już obliczona.

Aby zaspokoić potrzeby większości aplikacji w zakresie lokalizacji, używaj opcji zrównoważonego lub niskiego zużycia energii. Zachowaj wysoką dokładność dla aplikacji, które działają na pierwszym planie i wymagają aktualizacji lokalizacji w czasie rzeczywistym (np. aplikacji do map).

Częstotliwość

Częstotliwość wyświetlania reklam w danym miejscu możesz określić na 2 sposoby:

Przekazuj największą możliwą wartość podczas używania parametru setIntervalMillis(). Dotyczy to zwłaszcza zbierania danych o lokalizacji w tle, które często powoduje zużycie baterii. Zarezerwuj odstępy czasowe o długości kilku sekund na potrzeby zastosowań na pierwszym planie.

Limity lokalizacji w tle wprowadzone w Androidzie 8.0 (poziom interfejsu API 26) wymuszają stosowanie tych strategii, ale Twoja aplikacja powinna dążyć do ich stosowania na urządzeniach z Androidem 7.0 (poziom interfejsu API 24) i starszymi.

Opóźnienie

Opóźnienie możesz określić za pomocą metody setMaxUpdateDelayMillis(), przekazując zwykle wartość kilkakrotnie większą niż interwał określony w metodzie setIntervalMillis(). To ustawienie opóźnia przesyłanie lokalizacji, a wiele aktualizacji lokalizacji może być dostarczanych partiami. Te 2 zmiany pomagają zminimalizować zużycie baterii.

Jeśli Twoja aplikacja nie potrzebuje natychmiastowej aktualizacji lokalizacji, prześlij do metody setMaxUpdateDelayMillis() możliwie największą wartość, aby uzyskać więcej danych i zwiększyć wydajność baterii.

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

Więcej materiałów

Więcej informacji znajdziesz w tych dokumentach:

  • Rekomendacje: w tym przewodniku znajdziesz konkretne zalecane działania, które możesz podjąć, aby zmniejszyć wpływ aplikacji na czas pracy na baterii.
  • Przypadki użycia: w tym przewodniku znajdziesz kilka typowych przypadków użycia, w których możesz korzystać z usług lokalizacyjnych, oraz dowiesz się, jak zoptymalizować wpływ na czas pracy na baterii w tych przypadkach.