Standortermittlung im Hintergrund und Akkulaufzeit

Die Standortermittlung im Hintergrund kann sich erheblich auf die Akkulaufzeit auswirken. Android unterstützt Einschränkungen bei der Standortermittlung im Hintergrund. Entwickler werden dazu angehalten, ihre Apps für eine bessere Akkueffizienz zu optimieren. Diese Optimierungen sind für alle Geräte von Vorteil, unabhängig von der verwendeten Android-Version.

Mit Einschränkungen bei der Standortermittlung im Hintergrund:

  • Die Standortermittlung im Hintergrund wird gedrosselt und der Standort wird nur wenige Male pro Stunde berechnet und gesendet.
  • WLAN-Scans sind konservativer und Standortaktualisierungen werden nicht berechnet, wenn das Gerät mit demselben statischen Zugangspunkt verbunden bleibt.
  • Die Reaktionszeit für Geofencing ändert sich von einigen Sekunden auf etwa zwei Minuten. Durch diese Änderung wird die Akkuleistung verbessert – auf einigen Geräten sogar um das Zehnfache.

Erforderliche Kenntnisse

In diesem Dokument wird davon ausgegangen, dass Sie mit den folgenden APIs vertraut sind:

Schnelle Akkuentladung

Die Standortermittlung und der Akkuverbrauch hängen folgendermaßen zusammen:

  • Genauigkeit:Die Genauigkeit der Standortdaten. Im Allgemeinen gilt: Je höher die Genauigkeit, desto schneller entlädt sich der Akku.
  • Häufigkeit:Gibt an, wie oft der Standort berechnet wird. Je häufiger der Standort berechnet wird, desto mehr Akku wird verbraucht.
  • Latenz: Gibt an, wie schnell Standortdaten übermittelt werden. Eine geringere Latenz erfordert in der Regel mehr Akku.

Richtigkeit

Sie können die Standortgenauigkeit mit der Methode setPriority() angeben, indem Sie einen der folgenden Werte als Argument übergeben:

  • PRIORITY_HIGH_ACCURACY liefert den bestmöglichen Standort, der mit so vielen Eingaben wie nötig berechnet wird. Dabei werden GPS, WLAN und Mobilfunk sowie eine Vielzahl von Sensoren aktiviert. Dies kann zu einem erheblichen Akkuverbrauch führen.
  • PRIORITY_BALANCED_POWER_ACCURACY bietet eine genaue Standortermittlung und optimiert gleichzeitig den Energieverbrauch. GPS wird sehr selten verwendet. In der Regel wird eine Kombination aus WLAN- und Mobilfunkinformationen verwendet, um den Gerätestandort zu berechnen.
  • PRIORITY_LOW_POWER nutzt hauptsächlich Mobilfunkmasten und verzichtet auf GPS- und WLAN-Eingabe, um eine grobe Genauigkeit (auf Stadtebene) bei minimalem Akkuverbrauch zu erzielen.
  • PRIORITY_NO_POWER empfängt Standorte passiv von anderen Apps, deren Standort bereits berechnet wurde.

Verwenden Sie die Optionen „Ausgewogene Leistung“ oder „Niedriger Energieverbrauch“, um die Standortanforderungen der meisten Apps zu erfüllen. Verwenden Sie die hohe Genauigkeit nur für Apps, die im Vordergrund ausgeführt werden und Echtzeitaktualisierungen des Standorts erfordern, z. B. eine Karten-App.

Häufigkeit

Sie haben zwei Möglichkeiten, die Häufigkeit von Anzeigen an einem Standort festzulegen:

  • Verwenden Sie die Methode setIntervalMillis(), um das Intervall für die Berechnung des Standorts Ihrer App anzugeben.
  • Verwenden Sie die Methode setMinUpdateIntervalMillis(), um das Intervall für den Empfang der Standorte anderer Apps anzugeben.

Wenn Sie setIntervalMillis() verwenden, geben Sie den größtmöglichen Wert an. Das gilt insbesondere für die Standortermittlung im Hintergrund, die häufig den Akku entlädt. Reservieren Sie Intervalle von einigen Sekunden für Anwendungsfälle im Vordergrund.

Die in Android 8.0 (API-Ebene 26) eingeführten Einschränkungen für die Standortermittlung im Hintergrund erzwingen diese Strategien. Sie sollten jedoch versuchen, sie auch auf Geräten mit Android 7.0 (API-Ebene 24) und niedriger zu erzwingen.

Latenz

Sie können die Latenz mit der Methode setMaxUpdateDelayMillis() angeben. Dabei wird in der Regel ein Wert übergeben, der mehrmals größer ist als das in der Methode setIntervalMillis() angegebene Intervall. Dadurch wird die Übermittlung der Standortinformationen verzögert und mehrere Standortaktualisierungen können in Batches gesendet werden. Diese beiden Änderungen tragen dazu bei, den Akkuverbrauch zu minimieren.

Wenn Ihre App nicht sofort ein Standortupdate benötigt, sollten Sie der setMaxUpdateDelayMillis()-Methode den größtmöglichen Wert übergeben. So tauschen Sie die Latenz effektiv gegen mehr Daten und Akkueffizienz ein.

Bei der Verwendung von Geofences sollten Apps einen großen Wert an die Methode setNotificationResponsiveness() übergeben, um den Akku zu schonen. Wir empfehlen einen Wert von mindestens fünf Minuten.

Weitere Informationen

Weitere Informationen finden Sie in folgenden Dokumenten:

  • Empfehlungen: In diesem Leitfaden werden einige konkrete Maßnahmen beschrieben, mit denen Sie die Auswirkungen Ihrer App auf die Akkulaufzeit verbessern können.
  • Anwendungsfälle: In diesem Leitfaden werden mehrere häufige Anwendungsfälle beschrieben, in denen Sie Standortdienste verwenden können, und wie Sie die Auswirkungen auf die Akkulaufzeit in diesen Fällen optimieren können.