Strom und Akku schonen

Die Energieeffizienz ist bei Wear OS besonders wichtig. Die Design prinzipien von Wear OS konzentrieren sich stark auf den Energieverbrauch des Geräts, da die Smartwatch ein kleines Gerät ist, das für kurze Interaktionen gedacht ist.

Im Vergleich zu größeren Mobilgeräten haben Wear OS-Geräte kleinere Akkus, sodass sich ein hoher Akkuverbrauch stärker bemerkbar macht. Außerdem ist das Aufladen eines Wear OS-Geräts aufwendiger als das eines Mobilgeräts. Nutzer können ihre Mobilgeräte mehrmals täglich aufladen, müssen ein Wear OS-Gerät jedoch abnehmen, bevor sie es aufladen.

So verbessern Sie die Energieeffizienz Ihrer App:

  • Das Design Ihrer App sollte den Formfaktor von Wear OS optimal nutzen. Es sollte nicht direkt Ihre mobile App kopieren.
  • Verwenden Sie Ihre vorhandene mobile App für bestimmte Anwendungsfälle. Beispielsweise ist die Internetverbindung und Synchronisierung auf der Smartwatch ressourcenintensiv. Überlegen Sie, ob das Mobilgerät die Hauptarbeit erledigen und das Wear OS-Gerät Änderungen an den Daten erhalten kann.
  • Entwerfen Sie Ihre Anwendungsfälle für kürzere Interaktionen.
  • Überlegen Sie, welche Wear OS-Ereignisse Sie verwenden und wie oft diese Ereignisse auftreten.
  • Verschieben Sie die Arbeit Ihrer App nach Möglichkeit auf den Zeitpunkt, an dem die Smartwatch aufgeladen wird. Das gilt insbesondere für datenintensive Aufgaben wie das Synchronisieren von Daten und das Organisieren von Datenbanken.

    Wenn das Gerät aufgeladen wird und eine WLAN-Verbindung besteht, planen Sie Jobs, um Daten, Bilder und Updates vorab abzurufen, die der Nutzer wahrscheinlich in Ihrer App sehen möchte.

In diesem Leitfaden erfahren Sie, wann und wie das System Ihre App ausführt und wie Sie die Laufzeit und den Akkuverbrauch Ihrer App begrenzen können. Weitere Informationen dazu, wie bestimmte Aktionen ausgeführt werden, z. B. das Laden einer App oder das Scrollen durch eine Liste, finden Sie in den Leistungsrichtlinien, z. B. im Leistungsleitfaden für Compose auf Wear OS.

Akkunutzung im Zeitverlauf beobachten

Wenn Sie die Akkustatistiken eines Wear OS-Geräts analysieren möchten, auf dem Ihre App ausgeführt wird, geben Sie den folgenden Befehl in einem Terminalfenster auf Ihrem Entwicklungscomputer ein:

adb shell dumpsys batterystats

In einer Bibliothek auf GitHub finden Sie einen Parser für Akkustatistiken, der in Verbindung mit diesem Befehl nützlich sein kann.

Ereignisse, die sich auf die Akkulaufzeit auswirken

Bevor Sie sich speziell mit Ihrer App befassen, sollten Sie sich allgemein über die Ereignisse informieren, die auf einem Wear OS-Gerät Strom verbrauchen.

Die folgende Tabelle zeigt die relativen Auswirkungen auf die Akkulaufzeit bei verschiedenen häufigen Ereignissen in Wear OS-Apps. Der genaue Stromverbrauch variiert je nach Gerät.

Ereignis Auswirkungen auf die Akkulaufzeit Problembehebung
Auf das Netzwerk zugreifen, einschließlich LTE und WLAN Sehr hoch Verschieben Sie den nicht erforderlichen Netzwerkzugriff auf den Zeitpunkt, an dem das Gerät aufgeladen wird.
Display einschalten und interaktiven Modus starten Hoch Fordern Sie den Nutzer nicht auf, das Display länger als nötig eingeschaltet zu lassen. Bieten Sie eine Nutzung im Always-on Modus, auch Inaktivmodus genannt.
Auf den GPS-Sensor zugreifen Hoch Warten Sie nach Möglichkeit, bis der Nutzer den GPS-Zugriff anfordert.
Hohe CPU-Auslastung beibehalten Hoch Verwenden Sie Flows mit Jetpack Compose.
Auf den Herzfrequenzsensor zugreifen Mittel Verwenden Sie die aktive Zeit des Prozessors, wenn Sie Callbacks von der Sensor API erhalten, z. B. wenn Sie Gesundheitsdienste auf Wear OS verwenden.
Über Bluetooth auf ein anderes Gerät zugreifen Mittel Halten Sie Sitzungen kurz.
Wakelock beibehalten Mittel Reduzieren Sie die manuelle Erstellung von Wakelocks und verwenden Sie WorkManager.

Zeit, in der das Display eingeschaltet ist, minimieren

Beachten Sie in Ihrer Wear OS-App die folgenden Grundsätze zur Bildschirmnutzung:

  • Sperren, die das Display eingeschaltet lassen:Vermeiden Sie diese nach Möglichkeit. Deaktivieren Sie zum Testen in den Systemeinstellungen die Option Always-on-Display und prüfen Sie, ob sich das Display innerhalb des Zeitlimits ausschaltet.
  • Animationen:Minimieren Sie aufwendige Animationen und konzentrieren Sie sich stattdessen auf kurze Übergänge, um ein professionelleres Erscheinungsbild zu erzielen. Vermeiden Sie insbesondere lange Animationen und Schleifen. Wenn eine Schleife erforderlich ist, fügen Sie zwischen den Schleifen eine Pause ein, die mindestens so lang ist wie die Animation selbst.
  • Zeit im Inaktivmodus:Unterstützen Sie bei Bedarf den Always-on-Modus, z. B. für Fitnessanwendungsfälle. Wenn Ihre App den Always-on-Modus erfordert, folgen Sie diesen Empfehlungen für den Inaktivmodus.

CPU-Auslastung minimieren

Beachten Sie in Ihrer Wear OS-App die folgenden Grundsätze zur CPU-Auslastung:

  • Halten Sie die Nutzung kurz.
  • Führen Sie alle zugehörigen Vorgänge in einem Batch aus, um die Zeit zu maximieren, in der der Prozess Ihrer App im Leerlauf ist.

Wakelocks minimieren

Vermeiden Sie in den meisten Fällen alle Vorgänge, die verhindern, dass Ihre App in den Ruhemodus wechselt, wie z. B. Wakelocks. In Gesundheits- und Fitness-Apps sind beispielsweise für lange Trainingseinheiten keine Wakelocks erforderlich. Verwenden Sie die aktive Zeit des Prozessors, wenn Sie Callbacks von der Sensor API erhalten, z. B. wenn Sie Gesundheitsdienste auf Wear OS verwenden.

In einigen Fällen ist es in Ordnung, einen Wakelock zu erwerben, z. B. wenn Ihre App eine der folgenden Aktionen ausführt:

  • Medien im Hintergrund abspielen
  • Verwendet WorkManager oder JobScheduler (Das System behält einen Wakelock in Ihrem Namen bei, wenn der Job im Hintergrund ausgeführt wird.)

Wenn Sie Wakelocks lokal debuggen möchten, verwenden Sie den Background Task Inspector von Android Studio, die Systemtrace oder adb shell dumpsys batterystats, um einzelne Vorkommen von langen Wakelocks sowie Zusammenfassungen der Gesamtzahl und Dauer der beibehaltenen Wakelocks zu prüfen. Vergleichen Sie die Anzahl und Dauer der Wakelocks, die Ihre App beibehält, mit den interaktiven Nutzungsmustern Ihrer App:

  • Prüfen Sie, ob unerwartete Wakelocks vorhanden sind.
  • Wenn die Dauer länger als erwartet ist, prüfen Sie, ob die Arbeit durch eine Abhängigkeit blockiert wird, z. B. durch die Verfügbarkeit des Netzwerks.

Prüfen, wie Ihre App inaktiv wird

Überlegen Sie, was die aktive App tut, wenn wichtige Geräteereignisse auftreten, z. B.:

  • Das Display schaltet sich aus und das Gerät wechselt in den Inaktivmodus.
  • Die App wird durch Wischen geschlossen.

Verwenden Sie die in den folgenden Abschnitten beschriebenen Tools, um die App-Aktivität zu analysieren.

Power Profiler

Power Profiler ist im Android Studio-Menü zugänglich, indem Sie View > Toolfenster > Profiler auswählen:

  1. Prüfen Sie die Ablaufverfolgung des Systems, wenn sich das Display ausschaltet und das Gerät in den Inaktivmodus wechselt.
  2. Suchen Sie nach allen Arbeiten, die fortgesetzt werden, und nach der CPU-Auslastung des Geräts.

Perfetto

Mit Perfetto können Sie eine Trace aufzeichnen und dann Ihre App prüfen, um festzustellen, ob Threads arbeiten, wenn sich das Display ausschaltet, das Gerät in den Inaktivmodus wechselt oder der Nutzer die Aktivität Ihrer App schließt.

Definieren Sie benutzerdefinierte Ereignisse, um wichtige Ereignisse Ihrer App zu markieren, einschließlich domänenspezifischer Ereignisse. Bei einer Medien-App wären das Aufgaben wie das Abrufen von Wiedergabelisten, das Herunterladen einer bestimmten Mediendatei, das Starten und Beenden der Wiedergabe. Wenn Sie diese Ereignisse definieren, können Sie sie in Perfetto sehen und ihre Zeitplanung mit der CPU- und Energienutzung Ihrer App vergleichen.

Sie können auch die Android CLI verwenden, um die android-profiler Funktion (android skills add android-profiler) zu installieren. Damit können KI-Agenten Perfetto-System-Ablaufverfolgungen über die Befehlszeile aufzeichnen und Energieleisten, Wakelocks und Gerätezustände im Ruhemodus analysieren.

Geplante Jobs Ihrer App analysieren

Mit geplanten Jobs, die WorkManager verwenden, können Sie Hintergrundarbeiten in Ihrer App ausführen. Einige Hintergrundarbeiten müssen zwar regelmäßig ausgeführt werden, aber Sie sollten Jobs nicht zu häufig oder zu lange ausführen, da dies den Akku des Geräts entladen kann.

Verwenden Sie den Background Task Inspector von Android Studio (View > Toolfenster > App Inspection) oder führen Sie adb shell dumpsys jobscheduler und adb shell dumpsys batterystats aus, um die Ausführung geplanter Jobs und Worker zu prüfen. Prüfen Sie die Ausführungshäufigkeit und die Gesamtdauer:

  • Wenn ein Job sehr häufig ausgeführt wird, sollten Sie die Häufigkeit reduzieren.
  • Prüfen Sie, ob die Gesamtausführungszeit Ihren Erwartungen entspricht und nicht wesentlich länger ist.

Sie können auch eine Ablaufverfolgung aufzeichnen, um die Jobausführung mit der Aktivität Ihrer App auf einer Zeitachse zu korrelieren. Hier einige Tipps:

  • Die Ausführungsdauer sollte für Ihre App sinnvoll sein.
  • Überlegen Sie, ob die Jobs ausgeführt werden, während Ihre App läuft, oder ob es sich um regelmäßige Hintergrundarbeiten handelt.

Sensoren

Wear OS-Geräte haben viele verschiedene Sensoren, z. B. GPS. Verwenden Sie in den meisten Fällen Gesundheitsdienste auf Wear OS, anstatt direkt mit SensorManager zu interagieren. In vielen Fällen führt Health Services intelligent Batching von Daten durch, um die Akkuleistung zu verbessern.

Wenn Sie die Sensornutzung in Ihrer App analysieren möchten, geben Sie den folgenden Befehl in einem Terminalfenster auf Ihrem Entwicklungscomputer ein:

adb shell dumpsys sensorservice

Die Ergebnisse dieses Befehls zeigen Folgendes:

  • Aktuelle und vorherige Sensorregistrierungen.
  • Sensorkonfiguration, einschließlich Batching, falls festgelegt.
  • Kürzlich erfasste Daten.

Aufhebung der Registrierung von Sensoren testen

Wenn Sie prüfen möchten, ob Ihre App wie erwartet keine Sensordaten mehr abruft, testen Sie die folgenden Szenarien:

  1. Schließen Sie Ihre App durch Wischen.
  2. Tippen Sie mit der Handfläche auf das Display. Dadurch wird das Display entweder ausgeschaltet oder in den Inaktivmodus versetzt.

Verwenden Sie den ADB-Befehl aus dem vorherigen Abschnitt, um zu prüfen, ob der Sensor korrekt als nicht registriert angezeigt wird.

Datenschicht

Bei Verwendung der Data Layer API verbraucht jede Übertragung etwas Strom. Wenn Sie diese API verwenden, um Daten zu senden, muss Ihre App aktiviert werden, um die Daten zu empfangen. Aus diesen Gründen sollten Sie diese API sparsam verwenden.

Einige weitere Best Practices für die Verwendung der Datenebene API:

  • Warten Sie, bis Ihre App aktiv ist, bevor Sie mit WearableListenerService einen Listener einrichten.
  • Verwenden Sie die Data Layer API nicht, um die Smartwatch regelmäßig zu pingen, um zu prüfen, ob ein Companion-Gerät oder eine Companion-App verfügbar ist. Wenn Sie wiederholt Nachrichten senden, wird das Funkmodul und der Remote-App-Prozess aktiviert, was den Akku des Geräts unnötig entlädt. Verwenden Sie stattdessen CapabilityClient, um die Geräteverfügbarkeit und funktionen zu erkennen, oder senden Sie nur Nachrichten, wenn sich der Status ändert.
  • Übertragen Sie Statusänderungen, anstatt schnelle Updates zu konfigurieren. Mit diesen Statusänderungen kann das Wear OS-Gerät lokale Datenberechnungen durchführen, z. B. wenn eine Trainingseinheit gestartet wurde.

    Übertragen Sie nur Statusänderungen, die die Benutzeroberfläche aktualisieren. Wenn auf dem Aktivitätsbildschirm beispielsweise nur die gelaufenen Kilometer mit einer Nachkommastelle angezeigt werden, senden Sie keine Statusänderung an das Wear OS-Gerät, wenn der Nutzer einen weiteren Meter zurücklegt.

Wenn Sie die Nutzung der Data Layer API in Ihrer App analysieren möchten, geben Sie den folgenden Befehl in einem Terminalfenster auf Ihrem Entwicklungscomputer ein:

adb shell dumpsys activity service WearableService

Die Ergebnisse dieses Befehls umfassen Folgendes:

  • RpcService:Hier sehen Sie, wie oft und welche Pfade mit MessageClient aufgerufen werden.
  • DataService:Hier sehen Sie, wie oft Datenelemente mit DataClient festgelegt werden.

Gesundheits- und Fitness-Apps

Wenn Sie eine Gesundheits- und Fitness-App verwalten, verwenden Sie Health Services, um die Sensornutzung Ihrer App zu optimieren.

  • Verwenden Sie für ExerciseClient eine Ablaufverfolgung, Perfetto oder adb shell dumpsys batterystats, um das korrekte Verhalten im Inaktivmodus zu prüfen. Prüfen Sie, ob Ihre App nicht häufiger als alle ein bis zwei Minuten aktiviert wird, um ExerciseUpdate-Daten zu empfangen.
  • Verwenden Sie für die allgemeine Gesundheitsüberwachung den ganzen Tag über PassiveMonitoringClient, wie im Leitfaden zum Überwachen von Gesundheits- und Fitnessdaten im Hintergrund beschrieben.

Ansichten und Zusatzfunktionen

Wenn Ihre App eine Ansicht oder eine Zusatzfunktion unterstützt, beachten Sie die folgenden Best Practices:

  • Deaktivieren Sie die automatische Aktualisierung oder erhöhen Sie die Aktualisierungsrate auf 2 Stunden oder länger.
  • Verwenden Sie Firebase Cloud Messaging (FCM) oder entsprechend geplante Jobs, um Datenupdates zu senden. Achten Sie darauf, eine schnelle Aktualisierungsrate zu vermeiden, da das System sonst wiederholte Arbeiten schneller plant, als der Nutzer oder die Plattform auf die für diese Arbeit erforderlichen Daten zugreifen kann.
  • Planen Sie keine Arbeit für Ihre Ansicht oder Zusatzfunktion, wenn der Nutzer nicht damit interagiert.
  • Verwenden Sie Offline-First-Ansätze.
  • Verwenden Sie eine gemeinsame Datenbank für Ihre Haupt-App, Ansichten und Zusatzfunktionen. So bleiben die Daten auch auf allen Benutzeroberflächen einheitlich.