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 szczególności ten dokument obejmuje:
- Źródła wysokiego zużycia energii, uporządkowane 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 w 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 termicznego 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 dużym 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 jest, gdy użytkownik pozostawi ten ekran włączony na dłuższy czas – to również zużywa więcej energii.
W przypadku kierowców, którzy korzystają z widocznej mapy do nawigacji, możesz spodziewać się 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 przybycia 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 komórkowe 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ść.
W przypadku urządzeń z iOS pakiet Maps SDK na iOS udostępnia właściwość preferredFrameRate, która umożliwia kontrolowanie liczby klatek na sekundę. W tabeli poniżej znajdzieszGMSFrameRate
wartości wyliczeniowe, które możesz dostosować:
|
Używaj minimalnej liczby klatek, aby oszczędzać baterię. |
|
Używaj średniej liczby klatek na sekundę, aby zapewnić płynniejsze renderowanie i oszczędzać cykle przetwarzania. |
|
Użyj maksymalnej liczby klatek na sekundę dla urządzenia. W przypadku urządzeń z niższej półki jest to 30 FPS, a w przypadku urządzeń z wyższej półki – 60 FPS. |
Więcej informacji znajdziesz w GMSFrameRate w dokumentacji pakietu Google Navigation SDK na iOS.
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. Dzięki temu użytkownik będzie mógł wybrać tę opcję, aby oszczędzać energię. 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.
Dodaj wiersz kodu, aby ukryć GMSMapView:
mapView.isHidden = true
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 oczywiście nie jest to dobra rada, gdy kierowca musi widzieć mapę i korzystać ze wskazówek wizualnych. 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 mapy, aby zmniejszyć ilość energii potrzebnej do renderowania mapy na ekranie.
Pakiet Navigation SDK renderuje mapy za pomocą Google Maps SDK na iOS, 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ędność 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.

Definiowanie stylów map w Google Cloud wymaga identyfikatora mapy, który reprezentuje konfigurację mapy po stronie serwera utworzoną w projekcie Google Console. Więcej informacji o tworzeniu identyfikatora mapy znajdziesz w dokumentacji dla programistów. Więcej informacji o projektowaniu i wdrażaniu stylu mapy opartego na chmurze znajdziesz w dokumentacji dla deweloperów na temat tworzenia stylów mapy opartych na chmurze i zarządzania nimi.
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. 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.