W tym dokumencie opisujemy sprawdzone metody optymalizacji zużycia energii w mobilnej aplikacji do nawigacji, którą tworzysz za pomocą pakietu Navigation SDK. Opisuje też kompromisy, które należy wziąć pod uwagę przy stosowaniu tych praktyk. W tym dokumencie znajdziesz informacje na temat:
- Źródła wysokiego zużycia energii, uszeregowane od najwyższego do najniższego.
- Strategie optymalizacji zużycia energii w kolejności ważności, zaczynając od liczby klatek na sekundę.
- Strategie dla użytkowników, które pomogą im zarządzać sposobem korzystania z urządzenia podczas nawigacji.
Dlaczego warto zoptymalizować aplikację do nawigacji?
W zależności od sytuacji użytkownicy aplikacji mogą korzystać z wskazówek nawigacyjnych przez długi czas. Na przykład kierowcy i kurierzy mogą pracować przez wiele godzin, wykonując zadania na nieznanym terenie. W takich przypadkach użytkownicy w dużym stopniu polegają na wskazówkach w aplikacji. Powoduje to typowe problemy:
- Rozładowanie baterii i dostępność ładowarek. Intensywne korzystanie z nawigacji może powodować szybsze niż oczekiwane wyczerpywanie się baterii urządzenia. Wielu użytkowników może rozwiązać ten problem, ładując urządzenie w pojeździe, ale kierowcy jednośladów nie mają takiej możliwości.
- Ograniczenie wydajności urządzenia z powodu przegrzania. Problemy mogą wystąpić nawet u użytkowników, którzy stale ładują urządzenie. Wysokie zużycie energii przez dłuższy czas może spowodować nagrzewanie się urządzenia, co prowadzi do ograniczenia wydajności z powodu przegrzania i spadku wydajności.
Aplikacje do nawigacji krok po kroku korzystają z funkcji wymagających dużego zużycia energii, takich jak ekran, GPS i komunikacja radiowa ze stacjami bazowymi, dlatego warto zoptymalizować zużycie energii przez aplikację mobilną. Należy też wziąć pod uwagę potrzeby docelowych odbiorców w zakresie zużycia energii, aby móc dokonać odpowiednich kompromisów między wydajnością a optymalizacją zużycia energii.
Co zużywa najwięcej energii?
W tej sekcji aktywności w aplikacji związane z wysokim zużyciem energii są podzielone na 2 kategorie:
- Renderowanie ekranu
- Aktualizacje lokalizacji
Renderowanie ekranu
Renderowanie ekranu zwykle powoduje największe zużycie energii w przypadku mobilnych aplikacji do nawigacji. Za każdym razem, gdy urządzenie rysuje mapę i inne elementy interfejsu na ekranie, korzysta z przetwarzania przez GPU i CPU. Podobnie, gdy użytkownik pozostawi ten ekran włączony na dłuższy czas, zużyje więcej energii.
W przypadku kierowców, którzy korzystają z widocznej mapy do nawigacji, można się spodziewać wysokiego zużycia energii, zwłaszcza jeśli używają aplikacji w sposób ciągły przez wiele godzin. W takim przypadku aplikacja renderuje też obraz na ekranie z większą częstotliwością, ponieważ mapa jest aktualizowana w czasie rzeczywistym. W niektórych przypadkach ekran może być odświeżany niemal bez przerwy, zwłaszcza gdy użytkownik przemieszcza się z jednego miejsca do drugiego bez zatrzymywania się.
Aktualizacje lokalizacji
Oprócz renderowania ekranu energię urządzenia zużywają 2 inne działania związane z nawigacją:
- Wykorzystanie wieży radiowej i GPS-u
- aktualizacje i udostępnianie lokalizacji, np. w celu podania szacowanego czasu przyjazdu lub zgłoszenia pozycji pojazdu we flocie;
Zarówno GPS, jak i komunikacja radiowa w sieci komórkowej wymagają energochłonnych operacji początkowych: GPS musi znaleźć satelity, a radia komórkowe muszą negocjować z wieżami i nawiązywać połączenie. Z tych powodów działają one w zasadzie nieprzerwanie podczas nawigacji, mimo że moduły radiowe pozostają aktywne przez 20–30 sekund, aby zminimalizować koszty uruchomienia. System operacyjny kontroluje te ustawienia, których nie można łatwo skonfigurować w aplikacji.
W przypadku aktualizacji lokalizacji zużycie energii zależy od nieprzewidywalnych czynników. Na przykład odległość między urządzeniem a stacją bazową sieci komórkowej określa zużycie energii, ponieważ urządzenie będzie używać minimalnego sygnału niezbędnego do kontynuowania nawigacji, aby uniknąć przełączania się między stacjami. Dlatego urządzenie nawigujące w obszarze o słabym połączeniu będzie zużywać więcej energii niż urządzenie znajdujące się w pobliżu stacji bazowej. Niektóre aplikacje mogą też udostępniać aktualizacje lokalizacji centralnej usłudze zarządzania flotą, dlatego będą musiały komunikować się z serwerem.
Optymalizacja zużycia energii przez aplikację
Optymalizacja zużycia energii w aplikacjach do nawigacji jest trudna, ponieważ w dużym stopniu zależą one od zasobów o wysokim poborze mocy, co ogranicza możliwości zmniejszenia ich wpływu bez konieczności wprowadzania kompromisów, takich jak ograniczenie korzystania z ekranu. W tej sekcji znajdziesz listę podejść do optymalizacji aplikacji, uporządkowaną od najbardziej do najmniej skutecznych.
Zmiana liczby klatek
Ekran aktualizuje wyświetlane treści z częstotliwością określaną jako liczba klatek na sekundę. Liczba klatek jest zwykle mierzona w klatkach na sekundę (FPS). Renderowanie ekranu zużywa dużo mocy procesora lub GPU, więc możesz zmniejszyć liczbę klatek na sekundę, aby oszczędzać energię.
Wadą zmniejszenia liczby klatek na sekundę jest to, że renderowanie ekranu może wydawać się mniej płynne, zwłaszcza jeśli mapa jest często aktualizowana. Może to być najbardziej widoczne, gdy mapa jest powiększona, użytkownik porusza się z dużą prędkością lub gdy zmienia prędkość lub kierunek o dużą wartość.
Więcej informacji o modyfikowaniu liczby klatek znajdziesz w sekcji Liczba klatek w Centrum dla deweloperów Android Media.
Nawigacja bez mapy
Nie możesz kontrolować, jak użytkownik ustawia jasność ekranu urządzenia ani jak długo pozostawia ekran włączony, ale możesz udostępnić opcję wskazówek nawigacyjnych bez mapy. Umożliwi to użytkownikowi wybranie tej opcji w celu oszczędzania energii. Jeśli na przykład kierowcy regularnie pracują w tej samej dzielnicy, mogą nie potrzebować tak często wskazówek opartych na mapie. Nawigację bez mapy można włączyć, ustawiając miejsce docelowe i rozpoczynając wskazówki w pakiecie Navigation SDK, ale nie wyświetlając mapy.
Aby ukryć interfejs nawigacji, nie dodawaj elementu NavigationView ani SupportNavigationFragment. Jeśli już to zrobisz, usuń kod, który je dodaje. Poniższy kod został zmodyfikowany na podstawie przykładowej aplikacji na Androida pakietu Navigation SDK. Pokazuje on użycie komentarzy do usunięcia kodu, który dodaje interfejs nawigacji:
//Obtain a reference to the NavigationFragment
//setContentView(R.layout.activity_nav_fragment);
//mNavFragment = (SupportNavigationFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_fragment);
Pakiet SDK Navigation będzie nadal aktualizować lokalizacje przyciągnięte do drogi, szacowany czas dotarcia i pozostałą odległość do celu, a aplikacja będzie nadal mogła subskrybować wszystkie zdarzenia wywoływane przez pakiet SDK w miarę postępów kierowcy. Nie jest to odpowiednie w każdym przypadku, a w sytuacjach, w których kierowca musi widzieć mapę i korzystać ze wskazówek wizualnych, nie jest to dobra rada. Na zrzutach ekranu poniżej widać porównanie obok siebie przełączania widoków mapy podczas aktywnej nawigacji.
![]() |
![]() |
Używanie ciemnego stylu mapy
Rozważ zastosowanie ciemnego motywu, aby zmniejszyć ilość energii potrzebnej do renderowania mapy na ekranie.
Pakiet Navigation SDK renderuje mapy za pomocą pakietu Google Maps SDK na Androida, który zawiera opcje stylizowania wszystkich widoków mapy w aplikacji, które nie są widokami nawigacji. Widok nawigacji obsługuje też wymuszanie trybu ciemnego. Może to nie wpływać na każde urządzenie w ten sam sposób ze względu na różnice w rodzaju ekranu, ale w niektórych przypadkach może pozwolić na oszczędzanie energii. Z niedawnego badania wynika, że ilość energii zaoszczędzonej dzięki trybowi ciemnemu na niektórych ekranach zależy od początkowej jasności ekranu. Na przykład tryb ciemny oszczędza więcej energii na ekranach ustawionych na pełną jasność niż na ekranach, których jasność jest już dostosowana do 30–50% maksymalnej wartości. Jest to ważne, gdy używasz ciemnego motywu w aplikacjach, ponieważ oszczędność energii będzie zależeć od tego, jak użytkownik ustawi jasność ekranu.
Więcej informacji o modyfikowaniu interfejsu nawigacji znajdziesz w artykule Modyfikowanie interfejsu nawigacji.

Aby utworzyć ciemny styl mapy, użyj obiektu MapStyleOptions z stylem JSON, który reprezentuje wybrany przez Ciebie ciemny styl mapy. Starsze style JSON można tworzyć w starszym edytorze stylów dostępnym pod adresem https://mapstyle.withgoogle.com/.
Zmienianie częstotliwości aktualizacji lokalizacji GPS
Jeśli chodzi o zużycie energii przez aktualizacje lokalizacji wysyłane z urządzenia, skup się bardziej na częstotliwości aktualizacji lokalizacji niż na ilości danych przesyłanych w transmisji.
Nie możesz bezpośrednio kontrolować tego w pakiecie SDK Navigation, ale jeśli Twoja aplikacja na Androida niezależnie wysyła żądania lokalizacji, zapoznaj się z poradami w artykule Optymalizacja lokalizacji pod kątem baterii w dokumentacji dla programistów Androida. Ta sama rada dotyczy korzystania ze źródeł lokalizacji innych niż GPS (sieć komórkowa i Wi-Fi).
Szkolenie użytkowników
Użytkownicy Twojej aplikacji mogą chcieć wiedzieć, jak zoptymalizować zużycie energii. Aby pomóc użytkownikom zmniejszyć zużycie energii przez aplikacje, poproś ich o wykonanie tych czynności:
- Zablokuj telefon
- Przełącz aplikację do nawigacji w tle
- W miarę możliwości korzystaj z nawigacji bez mapy
- Zmniejsz jasność ekranu, korzystając z trybu ciemnego na ekranach OLED i AMOLED lub włączając jasność adaptacyjną.
- Chroń urządzenie przed przegrzaniem
- Połącz się z Wi-Fi w samochodzie, jeśli jest dostępna.
Pomiar zużycia energii
Do pomiaru zużycia energii możesz używać profesjonalnych narzędzi, ale często trudno je zdobyć lub są drogie. Aplikacje i narzędzia do profilowania IDE, takie jak Power Profiler w Android Studio i panel Zużycie baterii w XCode Organizer, mierzą zużycie energii, ale trudno jest usunąć wpływ procesów działających w tle lub ustawić podstawową wydajność, względem której można dokonywać pomiarów. W niektórych przypadkach ograniczenia urządzenia mogą uniemożliwiać uzyskanie dostępu do niezbędnych danych.
Możesz użyć specjalnego sprzętu do monitorowania zasilania i zmodyfikować konfigurację połączenia baterii. Istnieją też komercyjne produkty i usługi, które Ci w tym pomogą. Pamiętaj, że modyfikowanie urządzeń w ten sposób może spowodować utratę gwarancji.