In diesem Dokument werden Best Practices zur Optimierung des Stromverbrauchs in einer mobilen Navigations-App beschrieben, die Sie mit dem Navigation SDK erstellen. Außerdem werden die Kompromisse beschrieben, die bei der Anwendung dieser Best Practices berücksichtigt werden müssen. Im Einzelnen werden in diesem Dokument folgende Themen behandelt:
- Quellen für hohen Stromverbrauch, sortiert nach dem höchsten bis zum niedrigsten Verbrauch
- Strategien zur Optimierung des Stromverbrauchs, sortiert nach Wichtigkeit, beginnend mit der Framerate
- Strategien für Endnutzer , um App-Nutzer darüber zu informieren, wie sie die Gerätenutzung während der Navigation verwalten können
Warum sollte ich meine Navigations-App optimieren?
Je nach Situation verwenden Ihre App-Nutzer die Navigationsanleitung möglicherweise über einen längeren Zeitraum. Fahrer und Zusteller arbeiten beispielsweise lange und erledigen Aufgaben in unbekanntem Gebiet. In diesen Fällen verlassen sie sich stark auf die detaillierte Routenführung in der App. Dies führt zu einigen typischen Problemen:
- Schnelle Akkuentladung und Verfügbarkeit von Ladegeräten : Bei intensiver Nutzung der Navigation kann sich der Akku des Geräts schneller als erwartet entladen. Viele Nutzer können das Problem beheben, indem sie ihr Gerät im Fahrzeug aufladen, aber Fahrer von Zweirädern können das nicht.
- Gerätedrosselung aufgrund von Überhitzung : Auch Nutzer, die ihr Gerät ständig aufladen, können Probleme haben. Ein hoher Stromverbrauch über einen längeren Zeitraum kann dazu führen, dass sich das Gerät erhitzt, was zu einer thermischen Drosselung und einem anschließenden Leistungsverlust führt.
Apps für die detaillierte Routenführung verwenden ressourcenintensive Funktionen wie Bildschirm, GPS und Funkkommunikation mit Mobilfunkmasten. Daher ist es empfehlenswert, den Stromverbrauch Ihrer mobilen App zu optimieren. Außerdem sollten Sie den Stromverbrauch Ihrer Zielgruppe berücksichtigen, damit Sie die entsprechenden Kompromisse zwischen Leistung und Optimierung des Stromverbrauchs eingehen können.
Was verbraucht am meisten Strom?
In diesem Abschnitt werden die In-App-Aktivitäten, die mit einem hohen Stromverbrauch verbunden sind, in zwei Kategorien unterteilt:
- Bildschirm-Rendering
- Standortaktualisierungen
Bildschirm-Rendering
Das Bildschirm-Rendering verursacht in mobilen Navigations-Apps in der Regel den höchsten Stromverbrauch. Jedes Mal, wenn das Gerät eine Karte und andere UI-Elemente auf dem Bildschirm zeichnet, werden GPU- und CPU-Verarbeitung verwendet. Wenn der Nutzer den Bildschirm über einen längeren Zeitraum eingeschaltet lässt, wird ebenfalls mehr Strom verbraucht.
In gewissem Maße ist mit einem hohen Stromverbrauch bei Fahrern zu rechnen, die sich auf eine sichtbare Karte verlassen, um zu navigieren, insbesondere wenn sie die App viele Stunden lang ununterbrochen verwenden. In diesem Szenario führt die App auch eine höhere Renderingrate auf dem Bildschirm aus, da die Karte dann in Echtzeit aktualisiert wird. In einigen Fällen kann der Bildschirm fast ununterbrochen neu gezeichnet werden, insbesondere wenn der Nutzer ohne anzuhalten von einem Standort zum nächsten fährt.
Standortaktualisierungen
Neben dem Bildschirm-Rendering verbrauchen zwei weitere Navigationsaktivitäten Strom:
- Mobilfunkmast und GPS-Nutzung
- Standortaktualisierungen und ‑freigabe, z. B. um eine voraussichtliche Ankunftszeit anzugeben oder die Positionen eines Fahrzeugs in einer Flotte zu melden
GPS und Mobilfunkkommunikation erfordern beide energieintensive Startvorgänge: GPS muss Satelliten finden und Mobilfunkgeräte müssen mit Masten verhandeln und eine Verbindung herstellen. Aus diesen Gründen laufen sie während der Navigation im Wesentlichen kontinuierlich, obwohl Mobilfunkgeräte 20 bis 30 Sekunden lang aktiv bleiben, um die Startkosten zu minimieren. Diese Einstellungen werden vom Betriebssystem gesteuert und können in Ihrer App nicht einfach konfiguriert werden.
Bei Standortaktualisierungen variiert der Stromverbrauch je nach unvorhersehbaren Faktoren. So bestimmt beispielsweise die Entfernung zwischen dem Gerät und der Mobilfunkbasisstation den Stromverbrauch, da das Gerät das minimale Signal verwendet, das für die Fortsetzung der Navigation erforderlich ist, um einen Wechsel des Mobilfunkmasts 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 geben einige Apps möglicherweise Standortaktualisierungen an einen zentralen Flottenmanagementservice weiter und müssen daher mit einem Server kommunizieren, um dies zu tun.
Stromverbrauch Ihrer App optimieren
Die Herausforderung bei der Optimierung des Stromverbrauchs in Navigations-Apps besteht darin, dass diese Apps stark von ressourcenintensiven Ressourcen abhängen. Dadurch sind Ihre Möglichkeiten zur Minderung der Auswirkungen begrenzt, ohne Kompromisse einzugehen, z. B. die Nutzung des Bildschirms einzuschränken. In diesem Abschnitt finden Sie eine Liste von Ansätzen, die Sie bei der Optimierung Ihrer App verfolgen können, sortiert nach der größten bis zur geringsten Wirkung.
Framerate ändern
Der Bildschirm aktualisiert die angezeigten Inhalte mit einer Frequenz, 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 verbraucht, können Sie die Framerate reduzieren, um Strom zu sparen.
Der Kompromiss bei der Reduzierung der Framerate besteht darin, dass das Bildschirm-Rendering weniger flüssig wirkt, insbesondere wenn die Karte häufig aktualisiert wird. Das ist am deutlichsten zu sehen, wenn die Karte vergrößert wird, wenn der Nutzer mit hoher Geschwindigkeit unterwegs ist oder wenn sich Geschwindigkeit oder Richtung stark ändern.
Auf iOS-Geräten macht das Maps SDK for iOS die preferredFrameRate Eigenschaft verfügbar, um die Framerate zu steuern. In der folgenden Tabelle sind dieGMSFrameRate-Enumerationswerte aufgeführt, die Sie anpassen können:
|
Verwenden Sie die minimale Framerate, um die Akkunutzung zu senken. |
|
Verwenden Sie eine mittlere Framerate, um ein flüssigeres Rendering zu erzielen und Verarbeitungszyklen zu sparen. |
|
Verwenden Sie die maximale Framerate für ein Gerät. Bei Low-End-Geräten sind das 30 FPS und bei High-End-Geräten 60 FPS. |
Weitere Informationen finden Sie unter GMSFrameRate in der Google Navigation SDK for iOS-Dokumentation.
Navigieren ohne Karte
Sie können zwar nicht steuern, wie der Endnutzer die Bildschirmhelligkeit seines Geräts einstellt oder wie lange er den Bildschirm eingeschaltet lässt, 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 Routenführung. Die Navigation ohne Karte kann aktiviert werden, indem Sie ein Ziel festlegen und die Routenführung starten im Navigation SDK, aber keine Karte anzeigen.
Fügen Sie eine Codezeile hinzu, um die GMSMapView auszublenden:
mapView.isHidden = true
Das Navigation SDK aktualisiert weiterhin die an Straßen angepassten Standorte, die voraussichtliche Ankunftszeit und die verbleibende Entfernung. Ihre App kann weiterhin alle Ereignisse abonnieren, die vom SDK ausgelöst werden, während der Fahrer unterwegs ist. Das ist nicht für jeden Anwendungsfall geeignet und natürlich kein guter Rat, wenn der Fahrer die Karte sehen und der visuellen Routenführung folgen muss. In den folgenden Screenshots wird ein direkter Vergleich des Umschaltens von Kartenansichten während der aktiven Navigation gezeigt.
|
|
Dunklen Kartenstil verwenden
Sie können die Karte so gestalten, dass ein dunkles Design verwendet wird, um die Energiemenge zu reduzieren, die zum Rendern der Karte auf dem Bildschirm erforderlich ist.
Das Navigation SDK rendert seine Karten mit dem Google Maps SDK for iOS, das Optionen zum Gestalten aller nicht navigationsbezogenen Kartenansichten in Ihrer App enthält. Die Navigationsansicht unterstützt auch das Erzwingen des dunklen Modus. Aufgrund von Unterschieden im Bildschirmtyp wirkt sich dies möglicherweise nicht auf alle Geräte gleich aus, ermöglicht aber in einigen Fällen potenzielle Energieeinsparungen. In einer aktuellen Studie wurde festgestellt, dass die durch den dunklen Modus auf einigen Bildschirmen eingesparte Energiemenge davon abhängt, wie hell der Bildschirm ursprünglich eingestellt ist. Im dunklen Modus wird beispielsweise auf Bildschirmen, die auf volle Helligkeit eingestellt sind, mehr Energie gespart als auf Bildschirmen, deren Helligkeit bereits auf 30 bis 50% des Maximums eingestellt ist. Das ist wichtig, wenn Sie den dunklen Modus für Ihre Apps verwenden, da die Energieeinsparungen davon abhängen, wie der Endnutzer die Bildschirmhelligkeit einstellt.
Weitere Informationen zum Ändern der Navigationsoberfläche finden Sie unter Navigationsoberfläche ändern.
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 Entwicklerdokumentation zur Karten-ID . 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
Wenn Sie den Stromverbrauch durch Standortaktualisierungen berücksichtigen, die vom Gerät gesendet werden, konzentrieren Sie sich mehr auf die Häufigkeit der Standortaktualisierungen als auf die Menge der gesendeten Daten.
Das können Sie im Navigation SDK nicht direkt steuern. Dasselbe gilt für die Verwendung von nicht GPS-basierten Standortquellen (Mobilfunk und WLAN).
Nutzer informieren
Die Nutzer Ihrer App möchten möglicherweise wissen, wie sie ihren Stromverbrauch optimieren können. Damit sie den Stromverbrauch ihrer Apps reduzieren können, empfehlen Sie Ihren Nutzern Folgendes:
- Telefon sperren
- Navigations-App in den Hintergrund verschieben
- Wenn möglich, Navigation ohne Karte verwenden
- Bildschirmhelligkeit reduzieren, entweder durch Verwendung des dunklen Modus für OLED- und AMOLED-Bildschirme oder durch Aktivieren der automatischen Helligkeit
- Gerät kühl halten
- Wenn verfügbar, mit dem WLAN im Fahrzeug verbinden
Stromverbrauch messen
Sie können professionelle Tools verwenden, um den Stromverbrauch zu messen. Diese sind jedoch oft schwer oder teuer zu beschaffen. Mit Apps und IDE-Profiling-Tools wie Power Profiler in Android Studio und dem Bereich Battery Usage in XCode Organizer lässt sich der Stromverbrauch messen. Es kann jedoch schwierig sein, die Auswirkungen von Hintergrundprozessen zu entfernen oder eine Leistungsbaseline festzulegen, mit der verglichen werden kann. In einigen Fällen verhindern Geräteeinschränkungen den Zugriff auf die erforderlichen Daten.
Sie können spezielle Hardware zur Stromüberwachung verwenden und die Konfiguration der Akkuverbindung ändern. Es gibt kommerzielle Produkte und Dienste, die Ihnen dabei helfen. Wenn Sie Geräte auf diese Weise ändern, erlischt möglicherweise die Garantie des Geräts.