Strom und Akku schonen

Energieeffizienz ist unter Wear OS besonders wichtig. Das Wear OS-Design konzentrieren sich voll und ganz auf den Stromverbrauch von Geräten, da die Smartwatch kleiner Formfaktor für kurze Interaktionen.

Im Vergleich zu größeren Mobilgeräten haben Wear OS-Geräte kleinere Akkus. eine schnelle Entladung ist deutlicher. Außerdem müssen die Nutzenden Wear OS-Geräte im Vergleich zu Mobilgeräten nutzen. Nutzer können zwar ihre Mobilgeräte in verschiedenen Intervallen im Laufe des Tages nutzen, Trennen Sie ein Wear OS-Gerät vom Körper, bevor Sie es laden.

Beachten Sie die folgenden Best Practices für das Design, um die Energieeffizienz Ihrer App zu verbessern:

  • Beim Design Ihrer App sollte der Formfaktor Wear OS gut eingesetzt werden. Es Ihre mobile App nicht direkt kopieren.
  • Du kannst deine bestehende mobile App für bestimmte Anwendungsfälle verwenden. Beispiel: Internet und Synchronisierung auf der Uhr sind teuer; überlegen Sie, ob die Mobilgerät die schwere Arbeit übernehmen und das Wear OS-Gerät erhält Änderungen an Daten.
  • Entwerfen Sie Anwendungsfälle für kürzere Interaktionen.
  • Überleg dir, welche Wear OS-Ereignisse du verwendest und wie oft diese Ereignisse passieren auftreten.
  • Nach Möglichkeit solltest du die Arbeit deiner App zurückstellen, bis die Smartwatch geladen wird. Dies gilt insbesondere für datenintensive Aufgaben wie das Synchronisieren von Daten und zum Organisieren von Datenbanken.

    Wenn das Gerät geladen wird und eine WLAN-Verbindung besteht, planen Sie Aufträge, Daten, Bilder und Updates vorab abzurufen, die der Nutzer wahrscheinlich

Dieser Leitfaden hilft dir zu verstehen, wann und wie das System deine App ausführt wie Sie die Laufzeit Ihrer App begrenzen und den Akkuverbrauch verringern können. Weitere Informationen dazu, wie wie das Laden einer App oder das Scrollen durch eine Liste: Informationen zur Leistung erhalten, z. B. die Funktion Compose on Wear OS Leitfaden zur Leistungsoptimierung

Akkunutzung im Zeitverlauf überwachen

Um die Akkustatistiken eines Wear OS-Geräts zu analysieren, auf dem deine App ausgeführt wird, gib die Führen Sie den folgenden Befehl in einem Terminalfenster auf Ihrem Entwicklungscomputer aus:

adb shell dumpsys batterystats

Eine Bibliothek auf GitHub enthält einen Akku-Parser, der mit diesem Befehl ausführen.

Ereignisse, die sich auf die Akkulaufzeit auswirken

Bevor Sie sich konkret über Ihre App Gedanken machen, sollten Sie allgemein darüber nachdenken, zu Ereignissen, die Strom auf einem Wear OS-Gerät verbrauchen.

Die folgende Tabelle zeigt die relativen Auswirkungen auf die Akkulaufzeit über mehrere häufige Ereignisse in Wear OS-Apps. Der genaue Stromverbrauch variiert je nach Gerät.

Veranstaltung Auswirkungen auf die Akkulaufzeit Minderung
Auf das Netzwerk zugreifen, einschließlich LTE und WLAN Sehr hoch Verschieben Sie unwichtigen Netzwerkzugriff auf, bis das Gerät aufgeladen wird.
Display aktivieren und interaktiven Modus starten Hoch Ermutigen Sie die Nutzenden nicht, den Bildschirm länger als notwendig ist. Bieten Sie eine User Experience, die immer aktiv , auch Ambient-Modus genannt.
Auf GPS-Sensor zugreifen Hoch Warte wenn möglich, bis der Nutzer den GPS-Zugriff anfordert.
CPU-Auslastung hoch halten Hoch Konsum mit Jetpack Compose
Auf Herzfrequenzsensor zugreifen Mittel Verwenden Sie die Wachzeit des Prozessors, wenn des Empfangs von Callbacks von der Sensor API, z. B. bei der Verwendung von Gesundheitsdienstleistungen aktiviert Wear OS
Über Bluetooth auf ein anderes Gerät zugreifen Mittel Halten Sie die Sitzungen kurz.
Einen Wakelock halten Mittel Manuelle Erstellung und Verwendung von Wakelocks reduzieren <ph type="x-smartling-placeholder"></ph> WorkManager

Gerätenutzungsdauer minimieren

Halten Sie sich in Ihrer Wear OS-App an die folgenden Prinzipien zur Bildschirmnutzung:

  • Displaysperren:Vermeiden Sie das Sperren nach Möglichkeit. Deaktiviere zum Testen die Option Immer an Display in den Systemeinstellungen aus und achten Sie darauf, ob der Bildschirm innerhalb Timeout-Zeitraum.
  • Animationen:Minimieren Sie aufwendige Animationen und konzentrieren Sie sich stattdessen auf kurze für einen professionelleren Look. Vermeiden Sie insbesondere Animationen und Schleifen. Wenn eine Schleife erforderlich ist, fügen Sie eine Pause zwischen den Schleifen hinzu. das mindestens so lang ist wie die Animation selbst.
  • Wachzeit im Inaktivmodus:Die Unterstützung ist bei Bedarf immer aktiv, z. B. bei Fitness-Anwendungsfälle. Wenn für Ihre App ein Always-On erforderlich ist, prüfen Sie, ob sie Folgendes gilt, wenn sich das Gerät im Inaktivmodus befindet:

    • Verringert den Prozentsatz des beleuchteten Gerätebildschirms.
    • Zeigt keine Animationen an.
    • Der Bildschirminhalt wird nicht aktualisiert, außer während einer onAmbientUpdate()-Callback.

CPU-Nutzung minimieren

Halte dich in deiner Wear OS-App an die folgenden Prinzipien zur CPU-Nutzung:

  • Halten Sie die Nutzung kurz.
  • Alle zugehörigen Vorgänge zusammenfassen, um die Verarbeitungszeit Ihrer Anwendung zu maximieren ist inaktiv.

Wakelocks minimieren

Vermeiden Sie in den meisten Fällen Vorgänge, die den Ruhezustand Ihrer App verhindern, z. B. Wakelocks. In den Spalten „Gesundheit und Fitness-Apps, Trainings mit langer Ausführungszeit brauchen keinen Wakelock. Wachzeit des Prozessors beim Empfang von Rückrufen verwenden über die Sensor API, z. B. bei der Verwendung von Gesundheitsdiensten unter Wear OS.

In einigen Fällen ist es in Ordnung, einen Wakelock zu erhalten, z. B. wenn dein hat die App eine der folgenden Aufgaben:

  • Medien werden im Hintergrund wiedergegeben.
  • Verwendet WorkManager oder JobScheduler. (Das System enthält eine Wakelocks, wenn Sie den Job im Hintergrund ausführen.)

Im Akkuverlauf sehen Sie, wie lange Wakelocks sowie Zusammenfassungen der Gesamtzahl und Dauer von Wakelocks hält. Anzahl und Dauer der Wakelocks prüfen, die Ihre App verwendet und diese Informationen mit den interaktiven Nutzungsmustern App:

  • Suchen Sie nach unerwarteten Wakelocks.
  • Wenn die Dauer länger als erwartet ist, überlegen Sie, ob das Werk aufgrund von Abhängigkeiten wie der Verfügbarkeit des Netzwerks blockiert wird.

Prüfen, wie Ihre App inaktiv wird

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

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

Verwenden Sie zum Analysieren der App-Aktivitäten die Tools in den folgenden Abschnitten.

Energie-Profiler

Energy Profiler finden Sie im Android Studio-Menü unter Anzeigen > Tool-Fenster > Profiler:

  1. Prüfen Sie den System-Trace, wenn der Bildschirm ausgeht und das Gerät in die Ambient-Modus zu wechseln.
  2. Achten Sie auf weitere Arbeiten und den CPU-Auslastungsgrad des Geräts.

Logo: Perfetto

Mit Perfetto können Sie einen Trace aufzeichnen und dann in Ihrer App nachsehen, oder Fäden funktionieren, wenn sich das Display ausschaltet, wird in den Inaktivmodus versetzt oder der Nutzer schließt die App-Aktivität.

Definieren Sie benutzerdefinierte Ereignisse, um die wichtigsten Ereignisse Ihrer App zu kennzeichnen, einschließlich domainspezifische Ereignisse. Bei einer Medien-App umfasst dies Aufgaben wie das Abrufen von Playlists, Herunterladen eines bestimmten Medienelements, Starten der Wiedergabe und Beenden der Wiedergabe Wiedergabe starten. Wenn Sie diese Ereignisse definieren, können Sie sie in Perfetto sehen und das Timing mit der CPU- und Stromnutzung Ihrer App beeinflussen.

Geplante Jobs Ihrer Anwendung analysieren

Mit geplanten Jobs können Sie mit dem WorkManager Hintergrundarbeiten in Ihrem Einige Hintergrundarbeiten müssen regelmäßig ausgeführt werden. Führen Sie jedoch keine Jobs aus. häufig oder über einen längeren Zeitraum, da dies den Akku des Geräts entlasten kann.

Verwenden Sie den Akkuverlauf, um die Ausführung geplanter Jobs zu überprüfen. gesamt (Systemstatistiken > Jobscheduler-Statistiken) und nach App (App-Statistiken > Geplanter Job). Prüfen Sie die Gesamtzahl und die Gesamtdauer:

  • Wenn ein Job sehr häufig ausgeführt wird, sollten Sie diese Häufigkeit reduzieren.
  • Überprüfen Sie, ob die Gesamtausführungszeit Ihren Erwartungen entspricht deutlich länger.

Sehen Sie sich auch das Battery Historian-Diagramm an und achten Sie dabei auf jeden JobScheduler. zu erstellen. Wenn Sie den Mauszeiger über einen bestimmten Eintrag halten, wird der zeigt den Inhaber des ausgeführten Jobs an. Hier einige Tipps:

  • Für Ihre App sollte die Ausführungsdauer sinnvoll sein.
  • Überlegen Sie, ob die Jobs stattfinden, während Ihre Anwendung ausgeführt wird, oder ob der Jobs stellen regelmäßige Hintergrundarbeit dar.

Sensoren

Wear OS-Geräte haben viele verschiedene Sensoren, z. B. GPS. In den meisten Fällen können Sie Gesundheitsdienstleistungen unter Wear OS, anstatt direkt mit SensorManager In vielen Fällen fasst Health Services Daten intelligent in Batches zusammen, um die Akkuleistung zu verbessern.

Führen Sie den folgenden Befehl in einem Terminal aus, um die Sensornutzung in Ihrer App zu analysieren Fenster auf Ihrem Entwicklungscomputer:

adb shell dumpsys sensorservice

Mit diesem Befehl wird Folgendes angezeigt:

  • Aktuelle und frühere Sensorregistrierungen.
  • Sensorkonfiguration, einschließlich Batchverarbeitung, sofern festgelegt.
  • Kürzlich erhobene Daten.

Abmeldung von Sensoren testen

Um zu überprüfen, ob Ihre App keine Sensordaten mehr wie erwartet abrufen kann, testen Sie den folgenden Szenarien:

  1. App durch Wischen schließen.
  2. Tippe mit der Handfläche auf das Display. Dadurch wird entweder der Bildschirm ausgeschaltet oder wird der Bildschirm in den Inaktivmodus versetzt.

Überprüfen Sie mit dem ADB-Befehl aus dem vorherigen Abschnitt, wird korrekt als nicht registriert angezeigt.

Datenschicht

Wenn Sie die Data Layer API verwenden, verbraucht jede Übertragung etwas Energie. In Wenn du diese API zum Senden von Daten verwendest, muss deine App erst aktiviert werden, damit du sie empfangen kannst. mit den Daten. Seien Sie deshalb vorsichtig, wenn Sie diese API verwenden.

Weitere Best Practices für die Verwendung der Data Layer API sind: Folgendes:

  • Warten Sie, bis Ihre App aktiv ist, bevor Sie einen Listener mit WearableListenerService
  • Senden Sie Statusänderungen, anstatt schnelle Updates zu konfigurieren. Diese Bundesstaaten kann das Wear OS-Gerät mithilfe von Änderungen lokale Datenberechnungen durchführen, z. B. wann mit einer Trainingseinheit begonnen hat.

    Übertragen Sie nur Statusänderungen, durch die Ihre UI aktualisiert wird. Wenn zum Beispiel Auf dem Aktivitätsbildschirm wird nur „gelaufene Kilometer“ angezeigt auf eine Dezimalstelle beschränken, nicht senden Eine Statusänderung für Wear OS jedes Mal, wenn der Nutzer ein anderes Messgerät bewegt weiter.

Um die Nutzung der Data Layer API in Ihrer Anwendung zu analysieren, führen Sie den folgenden Befehl in einem Terminal-Fenster auf Ihrem Entwicklungscomputer:

adb shell dumpsys activity service WearableService

Dieser Befehl führt unter anderem zu folgenden Ergebnissen:

  • RpcService:Gibt an, wie oft und welche Pfade mit MessageClient aufgerufen.
  • DataService: Gibt an, wie oft Datenelemente mithilfe von DataClient

Gesundheits- und Fitness-Apps

Wenn Sie eine Gesundheits- und Fitness-App haben, nutzen Sie Gesundheitsdienste zur Optimierung. der Sensoren in Ihrer App.

  • Verwende für ExerciseClient den Akkuverlauf, um das korrekte Verhalten zu überprüfen im Inaktivmodus. Achten Sie darauf, dass sich Ihre App nicht häufiger als ein bis zwei Minuten, um ExerciseUpdate-Daten zu empfangen.
  • Verwende für die ganztägige allgemeine Gesundheitsüberwachung PassiveMonitoringClient, wie im Leitfaden zur Überwachung der Gesundheits- und Fitnessdaten in der Hintergrund.

Kacheln und Zusatzfunktionen

Wenn deine App eine Kachel oder eine Zusatzfunktion unterstützt, beachte Folgendes: Best Practices:

  • Deaktivieren Sie die automatische Aktualisierung oder erhöhen Sie die Aktualisierungsrate auf 2 Stunden oder länger dauert.
  • Verwenden Sie Firebase Cloud Messaging (FCM) oder einen geeigneten Zeitplan Jobs zum Senden von Datenaktualisierungen. Achten Sie darauf, schnelle Updates zu vermeiden, was dazu führen kann, dass das System wiederholte Arbeiten schneller plant als der Nutzer oder die Plattform auf die Daten zugreifen kann, die für die Ausführung dieser Arbeit erforderlich sind.
  • Keine Aufgaben für Ihre Ansicht oder Zusatzfunktion planen, wenn der Nutzer nicht damit interagieren.
  • Verwenden Sie Offline-First-Ansätze.
  • Du kannst eine einzige Datenbank für deine Haupt-App, Kacheln und Zusatzfunktionen freigeben. Dieses sorgt auch dafür, dass die Daten auf allen UI-Oberflächen einheitlich bleiben.