Zoptymalizuj zużycie energii przez aplikację

W tym dokumencie opisujemy sprawdzone metody optymalizacji zużycia energii w aplikacji do nawigacji mobilnej, którą tworzysz za pomocą pakietu SDK nawigacji. Jednocześnie omówiono kompromisy, które należy wziąć pod uwagę przy stosowaniu tych praktyk. W szczególności dokument dotyczy:

  • Źródła wysokiego zużycia energii (od najwyższego do najniższego).
  • Strategie optymalizacji zużycia energii według znaczenia, zaczynając od liczby klatek.
  • Strategie dla użytkowników, które zawierają informacje o tym, 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ą przez dłuższy czas korzystać ze wskazówek nawigacji. Na przykład kierowcy i dostawcy mogą pracować przez wiele godzin, realizując zlecenia w nieznanym miejscu. W takich przypadkach polegają głównie na szczegółowych wskazówek w aplikacji. Powoduje to pewne typowe problemy:

  • Szybkie zużycie baterii i dostępność ładowarek Intensywne korzystanie z nawigacji może sprawić, że baterie urządzenia szybciej się rozładują. Wielu użytkowników może rozwiązać ten problem, ładować swoje urządzenie w pojeździe, ale kierowcy jednokołowi już nie.
  • Ograniczanie działania urządzenia z powodu nagrzania. Problemy mogą się pojawić nawet u użytkowników, którzy stale ładują swoje urządzenie. Wysokie zużycie energii w dłuższym okresie może powodować nagrzewanie się urządzenia, co prowadzi do ograniczenia temperatury i późniejszego spadku wydajności.

Aplikacje do nawigacji zakręt po zakręcie korzystają z zaawansowanych funkcji, takich jak ekran, GPS czy łączność radiowa ze stacjami bazowymi, dlatego warto zoptymalizować zużycie energii przez aplikację mobilną. Warto też wziąć pod uwagę potrzeby docelowych odbiorców, aby znaleźć kompromis między wydajnością a optymalizacją zużycia energii.

Co zużywa najwięcej energii?

W tej sekcji działania w aplikacji związane z dużym zużyciem energii dzielimy na 2 kategorie:

  • Renderowanie ekranu
  • Aktualizacje lokalizacji

Renderowanie ekranu

Renderowanie ekranu zazwyczaj powoduje największe zużycie energii przez aplikacje nawigacyjne na urządzenia mobilne. Za każdym razem, gdy urządzenie wyświetla na ekranie mapę i inne elementy interfejsu, korzysta z procesora graficznego i procesora. I podobnie, jeśli użytkownik pozostawi włączony ekran przez dłuższy czas, zużywa więcej energii.

Kierowcy, którzy korzystają z widocznej mapy podczas nawigacji, mogą spodziewać się wysokiego zużycia energii, zwłaszcza gdy korzystają z aplikacji nieprzerwanie przez wiele godzin. W tym scenariuszu aplikacja wykonuje również wyższą częstotliwość renderowania na ekranie, ponieważ mapa jest wtedy aktualizowana w czasie rzeczywistym. W niektórych przypadkach ekran może być rysowany niemal w sposób ciągły, zwłaszcza gdy użytkownik przejeżdża z lokalizacji do lokalizacji bez zatrzymywania się.

Aktualizacje lokalizacji

Oprócz renderowania ekranu 2 inne działania związane z nawigacją zużywają energię urządzenia:

  • Wykorzystanie stacji radiowych i GPS
  • aktualizowanie i udostępnianie lokalizacji, np. na potrzeby podawania szacowanego czasu dotarcia lub zgłaszania pozycji pojazdów we flocie.

Komunikacja radiowa GPS i komórkowa opiera się na operacjach uruchamiania, które nie wymagają energii. Nadajniki GPS muszą znaleźć satelity, a nadajniki komórkowe muszą negocjować z wieżami i nawiązywać połączenie. Z tego względu działają one w sposób ciągły podczas nawigacji, mimo że nadajniki komórkowe pozostają aktywne przez 20–30 sekund, starając się zminimalizować koszty uruchomienia. System operacyjny zarządza tymi ustawieniami, których nie można łatwo skonfigurować w aplikacji.

W przypadku aktualizowania 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 korzystać z minimalnego sygnału umożliwiającego kontynuowanie nawigacji, aby uniknąć zmiany stacji. Z tego powodu urządzenie poruszające się po obszarze o słabym połączeniu będzie zużywać więcej energii niż to, które znajduje się w pobliżu stacji dokującej. Dodatkowo niektóre aplikacje mogą udostępniać aktualizacje lokalizacji centralnej usłudze zarządzania flotą, dlatego będą musiały w tym celu komunikować się z serwerem.

Zoptymalizuj zużycie energii przez aplikację

Trudność w optymalizacji zużycia energii przez aplikacje nawigacyjne polega na tym, że są one w dużym stopniu uzależnione od zasobów, które zużywają dużo energii. Ogranicza to opcje, które pozwalają zniwelować skutki negatywnych skutków, takie jak ograniczanie korzystania z ekranu. Ta sekcja zawiera listę podejść, które możesz zastosować podczas optymalizacji aplikacji, w kolejności od najmniej do najmniejszej.

Zmiana liczby klatek

Ekran aktualizuje wyświetlane treści z częstotliwością nazywaną liczbą klatek. Liczba klatek jest zwykle mierzona w liczbie klatek na sekundę (FPS). Ponieważ renderowanie ekranu zużywa dużo procesora lub GPU, możesz zmniejszyć liczbę klatek, aby zaoszczędzić zużycie energii.

Wadą przy zmniejszaniu liczby klatek 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 i pokazana w wysokiej rozdzielczości, użytkownik porusza się z dużą prędkością albo gdy bardzo zmieniasz prędkość lub kierunek.

Na urządzeniach z iOS pakiet SDK Map Google na iOS udostępnia właściwość preferredFrameRate do kontrolowania liczby klatek. Poniższa tabela przedstawia wartości wyliczające w GMSFrameRate, które możesz dostosować:

kGMSFrameRatePowerSave

Ustaw minimalną liczbę klatek, by oszczędzać baterię.

kGMSFrameRateConservative

Użyj mediany liczby klatek, aby zapewnić płynniejsze renderowanie i oszczędzać cykle przetwarzania.

kGMSFrameRateMaximum

Ustawienie maksymalnej liczby klatek na sekundę na urządzeniu.

W przypadku urządzeń niskiej jakości jest to 30 FPS, a w urządzeniach zaawansowanych – 60 FPS.

Więcej informacji znajdziesz w sekcji GMSFrameRate w dokumentacji pakietu Google Navigation SDK na iOS.

Chociaż nie masz wpływu na ustawienie przez użytkownika jasności ekranu urządzenia ani tego, jak długo ten ekran jest włączony, możesz udostępnić opcję wskazówek dotyczących nawigacji bez mapy. Dzięki temu użytkownik będzie mógł wybrać tę opcję, by oszczędzać energię. Jeśli np. kierowcy regularnie pracują w tej samej dzielnicy, mogą nie potrzebować wskazówek na mapie tak często. Nawigację bez mapy można włączyć przez ustawienie miejsca docelowego i uruchomienie wskazówek w pakiecie Navigation SDK, ale bez wyświetlania mapy.

Dodaj wiersz kodu, by ukryć obiekt GMSMapView:

mapView.isHidden = true

Pakiet SDK nawigacji będzie nadal aktualizować lokalizacje zapisane z dróg, szacowany czas dotarcia i pozostały dystans podróży, a aplikacja może nadal subskrybować wszystkie zdarzenia zgłoszone przez pakiet SDK w miarę postępów kierowcy. Nie jest to odpowiednie w każdym przypadku użycia i oczywiście nie jest dobrą radą w przypadkach, gdy kierowca musi obejrzeć mapę i korzystać ze wskazówek wizualnych. Na poniższych zrzutach ekranu widać porównanie przełączania widoków mapy podczas aktywnej nawigacji.

Aplikacja demonstracyjna działa z widocznym widokiem mapy.
Rys. 1. Aplikacja demonstracyjna pakietu SDK na iOS z prezentacją Data Back
Aplikacja demonstracyjna działa bez widoku mapy.
Rys. 2.Aplikacja demonstracyjna uruchomiona bez widoku mapy. Zwróć uwagę, że trwa aktualizowanie informacji o pozostałym czasie i odległości, a także lokalizacji wydzielonej na drodze.

Użyj ciemnego stylu mapy

Możesz zmienić styl mapy na ciemny motyw, by zmniejszyć zużycie energii do renderowania mapy na ekranie.

Pakiet SDK do nawigacji renderuje mapy z wykorzystaniem pakietu SDK Map Google na iOS, który zawiera opcje stylu dla widoków map niezwiązanych z nawigacją. Widok nawigacji umożliwia też wymuszanie trybu ciemnego. Może to nie wpływać na wszystkie urządzenia ze względu na różnice w typie ekranu, ale w niektórych przypadkach może powodować potencjalne oszczędności. Niedawne badanie wykazało, że ilość energii oszczędzana w trybie ciemnym na niektórych ekranach zależy od jasności ekranu. Na przykład tryb ciemny pozwala oszczędzać więcej energii na ekranach z pełną jasnością niż na ekranach, których jasność jest już ustawiona na 30–50% maksymalnej. Warto to rozważyć podczas korzystania z trybu ciemnego w aplikacjach, ponieważ oszczędność energii będzie zależała od ustawienia jasności ekranu przez użytkownika.

Więcej informacji o modyfikowaniu interfejsu nawigacji znajdziesz w artykule o modyfikowaniu interfejsu nawigacji.

Zrzut ekranu pokazujący pakiet SDK nawigacji na iPhonie 15 Pro z ciemną mapą.
Ilustracja 3.Nawigacyjny pakiet SDK skonfigurowany w ciemnym stylu mapy
Skonfiguruj obiekt GMSMapView za pomocą identyfikatora mapy, który odpowiada stylowi mapy opartemu na chmurze zdefiniowanym w Twoim projekcie.

Styl mapy oparty na chmurze wymaga identyfikatora mapy, który reprezentuje konfigurację mapy po stronie serwera utworzoną w projekcie w konsoli Google. Więcej informacji o tworzeniu identyfikatora mapy znajdziesz w dokumentacji dla programistów identyfikatora mapy. Więcej informacji o projektowaniu i wdrażaniu stylu mapy opartego na chmurze znajdziesz w dokumentacji dla programistów dotyczącej tworzenia stylów mapy w chmurze i zarządzania nimi.

Zmień częstotliwość aktualizacji lokalizacji GPS

Rozważając zużycie energii na podstawie aktualizacji lokalizacji wysyłanych z urządzenia, skup się raczej na częstotliwości aktualizacji lokalizacji, a nie na ilości danych wysyłanych w ramach transmisji.

Nie można tego kontrolować bezpośrednio w pakiecie SDK nawigacji. Ta sama rada dotyczy korzystania ze źródeł lokalizacji innych niż GPS (sieci komórkowe i Wi-Fi).

Szkolenie użytkowników

Użytkownicy aplikacji mogą chcieć się dowiedzieć, jak zoptymalizować zużycie energii. Aby pomóc im ograniczyć zużycie energii przez aplikacje, poproś ich o wykonanie tych czynności:

  • Zablokuj telefon
  • Włącz aplikację do nawigacji w tle
  • Jeśli to możliwe, używaj nawigacji bez mapy
  • Zmniejsz jasność ekranu, używając trybu ciemnego na ekranach OLED i AMOLED lub włączę automatyczną jasność
  • Dbaj o zimne urządzenie
  • Połącz się z siecią Wi-Fi w pojeździe, jeśli jest dostępna

Mierzenie zużycia energii

Do pomiaru zużycia energii możesz używać profesjonalnych narzędzi, ale ich uzyskanie jest często trudne lub kosztowne. Aplikacje i narzędzia do profilowania IDE, takie jak Power Profileer w Android Studio i Panel Wykorzystanie baterii w XCode Organizer, mierzą zużycie energii, ale trudno jest usunąć efekty działania procesów w tle lub wyznaczyć punkt odniesienia dla wydajności, na podstawie którego będą dokonywane pomiary. W niektórych przypadkach ograniczenia dotyczące urządzeń mogą uniemożliwić uzyskanie dostępu do niezbędnych danych.

Aby to zrobić, możesz użyć specjalnego sprzętu do monitorowania energii i zmienić konfigurację połączenia z baterią oraz skorzystać z dostępnych produktów i usług komercyjnych. Pamiętaj, że taka modyfikacja urządzenia może unieważnić jego gwarancję.