In diesem Dokument werden Best Practices für die Optimierung des Energieverbrauchs in einer mobilen Navigations-App beschrieben, die Sie mit dem Navigation SDK erstellen. Gleichzeitig werden die Kompromisse beschrieben, die bei der Anwendung dieser Praktiken berücksichtigt werden müssen. In diesem Dokument werden insbesondere die folgenden Themen behandelt:
- Quellen mit hohem Stromverbrauch, sortiert vom höchsten zum niedrigsten.
- Strategien zur Optimierung des Energieverbrauchs, nach Wichtigkeit geordnet, beginnend mit der Framerate.
- Strategien für Endnutzer, mit denen Sie Ihre App-Nutzer darüber informieren, wie sie die Gerätenutzung beim Navigieren verwalten können.
Warum sollten Sie Ihre Navigations-App optimieren?
Je nach Situation nutzen Ihre App-Nutzer die Navigationshilfe möglicherweise über einen längeren Zeitraum. So können Fahrer und Kurierfahrer beispielsweise lange Arbeitszeiten haben und Aufträge in unbekannten Gebieten erledigen. In diesen Fällen verlassen sie sich stark auf die In-App-Navigation. Das führt zu einigen häufigen Problemen:
- Akkulaufzeit und Verfügbarkeit von Ladegeräten Wenn Sie die Navigation häufig nutzen, kann sich der Akku des Geräts schneller als erwartet entladen. Viele Nutzer können dieses Problem beheben, indem sie ihr Gerät im Auto aufladen. Das ist für Fahrer von Zweirädern jedoch nicht möglich.
- Gerät wird aufgrund von Überhitzung gedrosselt Auch bei Nutzern, die ihr Gerät ständig aufladen, können Probleme auftreten. Ein hoher Stromverbrauch über einen längeren Zeitraum kann dazu führen, dass sich das Gerät erwärmt, was zu einer thermischen Drosselung und einem anschließenden Leistungsverlust führt.
Apps für die Schritt-für-Schritt-Navigation nutzen leistungsintensive Funktionen wie Display, GPS und Funkkommunikation mit Mobilfunkmasten. Daher sollten Sie die Stromnutzung Ihrer mobilen App optimieren. Außerdem sollten Sie die Anforderungen Ihrer Zielgruppe an die Stromnutzung berücksichtigen, damit Sie die richtige Abwägung zwischen Leistung und optimiertem Energieverbrauch treffen können.
Was verbraucht am meisten Strom?
In diesem Abschnitt werden die In-App-Aktivitäten mit hohem Stromverbrauch in zwei Kategorien unterteilt:
- Bildschirm-Rendering
- Standortaktualisierungen
Bildschirm-Rendering
Das Bildschirm-Rendering verursacht in der Regel den höchsten Energieverbrauch in mobilen Navigations-Apps. Jedes Mal, wenn das Gerät eine Karte und andere UI-Elemente auf dem Bildschirm anzeigt, wird die GPU und CPU beansprucht. Wenn der Nutzer den Bildschirm längere Zeit eingeschaltet lässt, wird ebenfalls mehr Strom verbraucht.
Bei Fahrern oder Fahrgästen, die sich bei der Navigation auf eine sichtbare Karte verlassen, ist ein gewisser Stromverbrauch zu erwarten, insbesondere wenn sie die App viele Stunden lang ununterbrochen verwenden. In diesem Szenario wird die Karte in der App auch schneller gerendert, da sie dann in Echtzeit aktualisiert wird. In einigen Fällen kann der Bildschirm fast kontinuierlich neu gezeichnet werden, insbesondere wenn der Nutzer ohne Unterbrechung von einem Ort zum anderen fährt.
Standortaktualisierungen
Neben dem Bildschirm-Rendering verbrauchen noch zwei weitere Navigationsaktivitäten die Geräteleistung:
- Funkmasten und GPS-Nutzung
- Standortaktualisierungen und ‑freigabe, z. B. um eine geschätzte Ankunftszeit anzugeben oder die Positionen eines Fahrzeugs in einer Flotte zu melden.
Sowohl GPS als auch die Mobilfunkkommunikation erfordern einen energieintensiven Startvorgang: GPS muss Satelliten finden und Mobilfunk muss mit Funkmasten kommunizieren und eine Verbindung herstellen. Aus diesen Gründen laufen sie während der Navigation praktisch kontinuierlich, auch wenn die Mobilfunkschnittstellen 20 bis 30 Sekunden lang aktiv bleiben, um die Startkosten zu minimieren. Diese Einstellungen werden vom Betriebssystem gesteuert und können nicht einfach in Ihrer App konfiguriert werden.
Bei Standortaktualisierungen variiert der Stromverbrauch aufgrund unvorhersehbarer Faktoren. So wird beispielsweise der Energieverbrauch durch den Abstand zwischen dem Gerät und der Mobilfunkbasisstation bestimmt, da das Gerät das Mindestsignal verwendet, das für die Fortsetzung der Navigation erforderlich ist, um den Wechsel von Funkmasten zu vermeiden. Daher verbraucht ein Gerät, das in einem Gebiet mit schlechter Verbindung navigiert, mehr Strom als ein Gerät, das sich in der Nähe einer Basisstation befindet. Außerdem können einige Apps Standortaktualisierungen mit einem zentralen Flottenmanagementdienst teilen und müssen daher mit einem Server kommunizieren, um dies zu ermöglichen.
Energieverbrauch Ihrer App optimieren
Die Herausforderung bei der Optimierung des Energieverbrauchs in Navigations-Apps besteht darin, dass diese Apps stark von energiehungrigen Ressourcen abhängig sind. Das schränkt Ihre Möglichkeiten ein, die Auswirkungen zu verringern, ohne Kompromisse wie die Einschränkung der Bildschirmnutzung einzugehen. In diesem Abschnitt finden Sie eine Liste mit Optimierungsmöglichkeiten für Ihre App, sortiert nach der größten bis zur geringsten Auswirkung.
Framerate ändern
Das Display aktualisiert die angezeigten Inhalte mit einer bestimmten Häufigkeit, die als Framerate bezeichnet wird. Die Framerate wird in der Regel in Bildern pro Sekunde (Frames per Second, fps) gemessen. Da das Bildschirm-Rendering viel CPU- oder GPU-Leistung beansprucht, können Sie die Framerate reduzieren, um den Energieverbrauch zu senken.
Wenn Sie die Framerate reduzieren, kann das Bildschirm-Rendering weniger flüssig erscheinen, insbesondere wenn die Karte häufig aktualisiert wird. Das ist am deutlichsten zu sehen, wenn die Karte herangezoomt ist, um Details zu sehen, wenn der Nutzer mit hoher Geschwindigkeit unterwegs ist oder wenn er seine Geschwindigkeit oder Richtung stark ändert.
Auf iOS-Geräten stellt das Maps SDK for iOS die Eigenschaft preferredFrameRate bereit, um die Framerate zu steuern. In der folgenden Tabelle sind die Werte für dieGMSFrameRate
-Aufzählung aufgeführt, die Sie anpassen können:
|
Verwenden Sie die Mindest-Framerate, um den Akkuverbrauch zu senken. |
|
Verwenden Sie eine mittlere Framerate, um ein flüssigeres Rendering zu ermöglichen und Verarbeitungszyklen zu sparen. |
|
Verwenden Sie die maximale Framerate für ein Gerät. Bei Low-End-Geräten sind das 30 fps, bei High-End-Geräten 60 fps. |
Weitere Informationen finden Sie in der Dokumentation zum Google Navigation SDK für iOS unter GMSFrameRate.
Ohne Karte navigieren
Sie können zwar nicht festlegen, wie der Endnutzer die Helligkeit des Displays seines Geräts einstellt oder wie lange das Display eingeschaltet bleibt, aber Sie können eine Option für die Navigationsanleitung ohne Karte anbieten. So kann der Endnutzer diese Option auswählen, um Strom zu sparen. Wenn Fahrer beispielsweise regelmäßig in derselben Gegend arbeiten, benötigen sie möglicherweise nicht so oft eine kartenbasierte Navigation. Die Navigation ohne Karte kann aktiviert werden, indem Sie im Navigation SDK ein Ziel festlegen und die Navigation starten, aber keine Karte anzeigen.
Fügen Sie eine Codezeile hinzu, um die GMSMapView auszublenden:
mapView.isHidden = true
Das Navigations-SDK aktualisiert weiterhin die an Straßen gesnapten Standorte, die geschätzte Ankunftszeit und die verbleibende Fahrtstrecke. Außerdem kann Ihre App weiterhin alle vom SDK ausgelösten Ereignisse abonnieren, während der Fahrer unterwegs ist. Das ist nicht für jeden Anwendungsfall geeignet und natürlich auch nicht in Fällen, in denen der Fahrer die Karte sehen und visuellen Anweisungen folgen muss. Die folgenden Screenshots zeigen einen direkten Vergleich des Wechsels zwischen Kartenansichten während der aktiven Navigation.
Dunklen Kartenstil verwenden
Sie können für die Karte ein dunkles Design verwenden, um den Energieverbrauch für das Rendern der Karte auf dem Bildschirm zu reduzieren.
Das Navigation SDK rendert seine Karten mit dem Google Maps SDK for iOS, das Optionen zum Stilisieren aller Kartenansichten in Ihrer App enthält, die nicht zur Navigation gehören. Die Navigationsansicht unterstützt auch den erzwungenen Dunkelmodus. Aufgrund von Unterschieden beim Bildschirmtyp wirkt sich dies möglicherweise nicht auf alle Geräte gleich aus. In einigen Fällen kann es jedoch zu Energieeinsparungen kommen. Eine neuere Studie hat gezeigt, dass die Energieeinsparung durch den dunklen Modus auf einigen Displays davon abhängt, wie hell das Display ursprünglich eingestellt ist. Beispielsweise spart der dunkle Modus auf Displays mit voller Helligkeit mehr Energie als auf Displays, deren Helligkeit bereits auf 30–50% des Maximums eingestellt ist. Das ist wichtig, wenn Sie den dunklen Modus für Ihre Apps verwenden, da die Energieeinsparung davon abhängt, wie der Endnutzer die Bildschirmhelligkeit einstellt.
Weitere Informationen zum Ändern der Navigations-UI finden Sie unter Navigations-UI ändern.
Konfigurieren Sie Ihre GMSMapView mit einer mapID, die einen in Ihrem Projekt definierten cloudbasierten Kartenstil darstellt.Für das cloudbasierte Gestalten von Karteninhalten ist eine Karten-ID erforderlich, die eine serverseitige Kartenkonfiguration darstellt, die in Ihrem Google Console-Projekt erstellt wurde. Weitere Informationen zum Erstellen einer Karten-ID finden Sie in der Entwicklerleitfaden für Karten-IDs. Weitere Informationen zum Entwerfen und Bereitstellen eines cloudbasierten Kartenstils finden Sie in der Entwicklerdokumentation zum Erstellen und Verwalten cloudbasierter Kartenstile.
Aktualisierungshäufigkeit des GPS-Standorts ändern
Bei der Betrachtung des Stromverbrauchs durch Standortaktualisierungen, die vom Gerät gesendet werden, sollten Sie sich mehr auf die Häufigkeit der Standortaktualisierungen als auf die Menge der gesendeten Daten konzentrieren.
Das lässt sich nicht direkt im Navigation SDK steuern. Dasselbe gilt für die Verwendung von nicht GPS-basierten Standortquellen (Mobilfunk und WLAN).
Nutzer schulen
Die Nutzer Ihrer App möchten vielleicht wissen, wie sie den Energieverbrauch optimieren können. Um den Energieverbrauch ihrer Apps zu senken, empfehlen Sie Ihren Nutzern Folgendes:
- Smartphone sperren
- Navigations-App in den Hintergrund stellen
- Nach Möglichkeit Navigation ohne Karte verwenden
- Displayhelligkeit verringern, entweder durch Verwendung des dunklen Modus für OLED- und AMOLED-Displays oder durch Aktivieren der adaptiven Helligkeit
- Gerät kühl halten
- Mit dem WLAN im Fahrzeug verbinden, falls verfügbar
Stromverbrauch messen
Sie können den Stromverbrauch mit professionellen Tools messen, die aber oft schwer oder teuer zu beschaffen sind. Apps und IDE-Profilierungstools wie der Power Profiler in Android Studio und der Bereich Akkunutzung im XCode Organizer messen den Energieverbrauch. Es kann jedoch schwierig sein, die Auswirkungen von Hintergrundprozessen zu entfernen oder einen Leistungsgrundwert festzulegen, an dem sich die Messungen orientieren können. In einigen Fällen können Geräteeinschränkungen den Zugriff auf die erforderlichen Daten verhindern.
Sie können spezielle Hardware zur Leistungsüberwachung verwenden und die Konfiguration der Akkuverbindung ändern. Es gibt kommerzielle Produkte und Dienstleistungen, die Ihnen dabei helfen. Beachten Sie, dass durch eine solche Modifizierung die beschränkte Garantie des Geräts erlischt.