W tym dokumencie opisaliśmy sprawdzone metody optymalizacji zużycia energii w aplikacji mobilnej do nawigacji, którą tworzysz za pomocą pakietu Navigation SDK. Jednocześnie opisujemy w nim kompromisy, które należy wziąć pod uwagę, stosując te metody. Ten dokument dotyczy w szczególności:
- Źródła wysokiego poboru mocy, uszeregowane od najwyższego do najniższego.
- Strategie optymalizacji zużycia energii, pogrupowane według ważności, począwszy od częstotliwości odświeżania.
- Strategie dla użytkowników, które uczą ich, jak zarządzać korzystaniem z urządzenia podczas nawigacji.
Dlaczego warto zoptymalizować aplikację do nawigacji?
W zależności od sytuacji użytkownicy aplikacji mogą korzystać z nawigacji przez długi czas. Na przykład kierowcy i kurierzy mogą pracować długie godziny, wykonując zadania w nieznanym terenie. W takich przypadkach użytkownicy polegają głównie na wskazówkach wyświetlanych w aplikacji. Może to powodować typowe problemy:
- Zużycie baterii i dostępność ładowarek Intensywne korzystanie z nawigacji może powodować szybsze rozładowywanie się baterii. Wielu użytkowników może rozwiązać ten problem, ładując urządzenie w samochodzie, ale kierowcy jednośladów nie mogą tego zrobić.
- Ograniczenie działania urządzenia z powodu przegrzania Nawet użytkownicy, którzy stale ładują swoje urządzenie, mogą mieć problemy. Wysokie zużycie energii przez długi czas może spowodować nagrzewanie się urządzenia, co spowoduje ograniczenie wydajności termicznej i następną utratę wydajności.
Aplikacje nawigacyjne korzystają z funkcji zużywających dużo energii, takich jak ekran, GPS i komunikacja radiowa z wieżami telefonii komórkowych, dlatego sprawdzoną metodą jest optymalizacja zużycia energii przez aplikację mobilną. Dodatkowo należy wziąć pod uwagę potrzeby energetyczne docelowych odbiorców, aby można było dokonać odpowiednich kompromisów między wydajnością a optymalizacją zużycia energii.
Co zużywa najwięcej energii?
W tej sekcji czynności w aplikacji związane z wysokim zużyciem energii są podzielone na 2 kategorie:
- Renderowanie ekranu
- Aktualizacje lokalizacji
Renderowanie ekranu
W aplikacjach do nawigacji mobilnej największe zużycie energii zwykle powoduje renderowanie ekranu. Za każdym razem, gdy urządzenie wyświetla mapę i inne elementy interfejtu na ekranie, korzysta z procesora graficznego i procesora. Podobnie, gdy użytkownik pozostawia włączony ekran przez dłuższy czas, zużycie energii również wzrasta.
W pewnym stopniu można się spodziewać wysokiego zużycia energii w przypadku kierowców i pasażerów, którzy nawigują, korzystając z widocznej mapy, zwłaszcza jeśli używają aplikacji przez wiele godzin. W takim przypadku aplikacja renderuje obraz 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 jedzie z miejsca na miejsce bez zatrzymywania się.
Aktualizacje lokalizacji
Oprócz renderowania ekranu zużycie energii przez urządzenie zwiększają 2 inne czynności związane z nawigacją:
- Korzystanie z wieży radiowej i GPS
- aktualizacje i udostępnianie lokalizacji, na przykład w celu podania przewidywanego czasu dojazdu lub zgłoszenia pozycji pojazdu w flotylli;
Zarówno GPS, jak i komórkowa komunikacja radiowa wymagają dużych ilości energii na potrzeby uruchamiania: GPS musi znaleźć satelity, a komórkowa komunikacja radiowa musi nawiązać połączenie z wieżami i ustanowić połączenie. Z tych powodów są one w podstawie stale aktywne podczas nawigacji, mimo że radiokomórki pozostają aktywne przez 20–30 sekund, aby zminimalizować koszty uruchamiania. Te ustawienia są kontrolowane przez system operacyjny i nie można ich łatwo skonfigurować w aplikacji.
W przypadku aktualizacji lokalizacji zużycie energii zależy od czynników, których nie da się przewidzieć. 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 potrzebnego do kontynuowania nawigacji, aby uniknąć przełączania się między wieżami. Dlatego urządzenie korzystające z nawigacji w miejscu o słabym zasięgu zużywa więcej energii niż urządzenie w pobliżu stacji bazowej. Niektóre aplikacje mogą też udostępniać aktualizacje lokalizacji z centralną usługą zarządzania flotą, co wymaga komunikacji z serwerem.
Optymalizacja zużycia energii przez aplikację
Wyzwaniem w optymalizacji zużycia energii w aplikacjach do nawigacji jest to, że aplikacje te w dużej mierze polegają na zasobach pochłaniających dużo energii, co ogranicza możliwości ograniczenia wpływu bez konieczności dokonywania kompromisów, takich jak ograniczenie używania ekranu. W tym rozdziale znajdziesz listę metod optymalizacji aplikacji, uporządkowaną według ich wpływu (od największego do najmniejszego).
Zmień liczbę klatek
Ekran aktualizuje wyświetlany obraz z częstotliwością zwaną częstotliwością odświeżania. Liczba klatek jest zwykle mierzona w klatkach na sekundę (FPS). Renderowanie ekranu obciąża procesor lub kartę graficzną, dlatego możesz zmniejszyć częstotliwość wyświetlania klatek, aby oszczędzać energię.
Minusem zmniejszenia częstotliwości wyświetlania klatek jest to, że renderowanie ekranu może być mniej płynne, zwłaszcza jeśli mapa jest często aktualizowana. Może to być najbardziej widoczne, gdy mapa jest zbliżona, aby pokazać więcej szczegółów, gdy 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 dokumentacji dla programistów w Centrum deweloperskim Androida Media.
Nawigacja bez mapy
Nie możesz kontrolować, jak użytkownik ustawia jasność ekranu urządzenia ani jak długo ekran pozostaje włączony, ale możesz udostępnić opcję nawigacji bez mapy. Pozwoli to użytkownikowi wybrać tę opcję, aby oszczędzać energię. Jeśli na przykład kierowcy regularnie pracują w tym samym sąsiedztwie, mogą nie potrzebować wskazówek opartych na mapie tak często. Nawigację bez mapy można włączyć, ustawiając miejsce docelowe i rozpoczynając wskazówki w pakiecie Navigation SDK, ale bez wyświetlania mapy.
Aby ukryć interfejs nawigacji, nie dodawaj widoku NavigationView ani fragmentu SupportNavigationFragment. Jeśli już je dodałeś, usuń kod, który je dodaje. Poniższy kod jest zmodyfikowaną wersją aplikacji demonstracyjnej Navigation SDK na Androida i pokazuje, jak za pomocą komentarzy usunąć kod, który dodaje interfejs użytkownika nawigacji:
//Obtain a reference to the NavigationFragment
//setContentView(R.layout.activity_nav_fragment);
//mNavFragment = (SupportNavigationFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_fragment);
Pakiet SDK do nawigacji będzie nadal aktualizować położenie na mapie, przewidywany czas dojazdu i pozostającą odległość do przebycia, a Twoja aplikacja będzie nadal subskrybować wszystkie zdarzenia wywoływane przez pakiet SDK w miarę przemieszczania się kierowcy. Nie jest to odpowiednie rozwiązanie w każdym przypadku. Oczywiście nie jest to dobra rada w przypadku, gdy kierowca musi widzieć mapę i podążać za wskazówkami wizualnymi. Na poniższych zrzutach ekranu widać porównanie widoków mapy podczas aktywnej nawigacji.
![]() |
![]() |
Używanie ciemnego stylu mapy
Rozważ użycie ciemnego motywu, aby zmniejszyć ilość energii potrzebnej do renderowania mapy na ekranie.
Pakiet SDK Nawigacji renderuje mapy za pomocą pakietu SDK Map Google na Androida, który zawiera opcje stylizacji widoków mapy w aplikacji, które nie są widokami nawigacji. Widok nawigacji obsługuje też wymuszanie trybu ciemnego. W zależności od typu ekranu może to mieć różny wpływ na różne urządzenia, ale w niektórych przypadkach pozwala na oszczędzanie energii. Niedawne badanie wykazało, że ilość energii oszczędzanej przez tryb ciemny na niektórych ekranach zależy od tego, jak jasny jest ekran na samym początku. 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ż ustawiona na 30–50% maksymalnej wartości. Należy o tym pamiętać, 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 użytkownika nawigacji znajdziesz w artykule Modyfikowanie interfejsu użytkownika nawigacji.
![Zrzut ekranu pakietu SDK do nawigacji działającego na telefonie iPhone 15 Pro z ciemnym stylem mapy.](https://developers.google.cn/static/maps/documentation/navigation/images/nav_dark_map_style.png?hl=pl)
Aby utworzyć ciemny styl mapy, użyj obiektu MapStyleOptions z stylem JSON, który reprezentuje wybrany przez Ciebie ciemny styl mapy. Stare style JSON można tworzyć za pomocą starszego edytora stylów na stronie https://mapstyle.withgoogle.com/.
Zmień częstotliwość aktualizacji lokalizacji GPS
Przy rozważaniu zużycia energii na potrzeby aktualizacji lokalizacji wysyłanych z urządzenia skoncentruj się bardziej na częstotliwości aktualizacji lokalizacji niż na ilości danych wysyłanych w ramach transmisji.
Nie możesz tego bezpośrednio kontrolować w Navigation SDK, ale jeśli Twoja aplikacja na Androida samodzielnie prosi o lokalizację, zastosuj się do zaleceń podanych w artykule pt. Optymalizacja lokalizacji pod kątem oszczędzania baterii w dokumentacji dla deweloperów Androida. Ta sama rada dotyczy korzystania ze źródeł lokalizacji innych niż GPS (komórka i Wi-Fi).
Edukowanie użytkowników
Użytkownicy Twojej aplikacji mogą chcieć wiedzieć, jak zoptymalizować zużycie energii. Aby pomóc im zmniejszyć zużycie energii w aplikacjach, zaleć użytkownikom:
- Zablokuj telefon
- Uruchom aplikację do nawigacji w tle
- Jeśli to możliwe, korzystaj z nawigacji bez mapy.
- zmniejszyć jasność ekranu, korzystając z ciemnego trybu na ekranach OLED i AMOLED lub włączając adaptacyjną jasność;
- Nie przegrzewaj urządzenia.
- Połącz się z siecią Wi-Fi w samochodzie, jeśli jest dostępna.
Pomiar zużycia energii
Do pomiaru zużycia energii możesz użyć profesjonalnych narzędzi, ale ich zdobycie jest często trudne lub kosztowne. Aplikacje i narzędzia do profilowania IDE, takie jak Power Profiler w Android Studio i panel zużycia baterii w XCode Organizerze, mierzą zużycie energii, ale trudno jest wyeliminować wpływ procesów działających w tle lub ustawić podstawową wydajność, z której można dokonywać pomiarów. W niektórych przypadkach ograniczenia na urządzeniu mogą uniemożliwić uzyskanie dostępu do niezbędnych danych.
Możesz użyć specjalnego sprzętu do monitorowania zasilania i zmodyfikować konfigurację połączenia z baterią. Istnieją też komercyjne produkty i usługi, które ułatwiają to zadanie. Pamiętaj, że modyfikowanie urządzeń w ten sposób może spowodować utratę gwarancji.