Économiser l'énergie et la batterie

L'efficacité énergétique est particulièrement importante sur Wear OS. La conception Wear OS de Google se concentrent particulièrement sur la consommation d'énergie de l'appareil, car celle-ci petit format, conçu pour de courtes interactions.

Par rapport aux appareils mobiles plus grands, les appareils Wear OS ont une batterie plus petite. la décharge de la batterie est plus visible. De plus, l'utilisateur demande plus d'efforts pour recharger un appareil Wear OS qu'un appareil mobile. Les utilisateurs peuvent facturer leurs appareils mobiles à différents intervalles dans la journée, ils doivent détachez l'appareil Wear OS de son corps avant de le charger.

Pour améliorer l'efficacité énergétique de votre application, suivez ces bonnes pratiques de conception:

  • La conception de votre application doit utiliser à bon escient le facteur de forme Wear OS. Il ne doit pas copier directement votre application mobile.
  • Utilisez votre application mobile existante pour vous aider dans certains cas d'utilisation. Par exemple : et la synchronisation sur la montre sont coûteuses. demandez-vous si l'appareil mobile peut faire le gros du travail, et l'appareil Wear OS reçoit des changements dans les données.
  • Concevez vos cas d'utilisation pour des interactions plus courtes.
  • Réfléchissez aux événements Wear OS que vous utilisez et à leur fréquence. se produisent.
  • Dans la mesure du possible, différez le travail de votre application jusqu'à ce que la montre soit en charge. Cela s'applique particulièrement aux tâches gourmandes en données, telles que la synchronisation l’organisation des bases de données.

    Si l'appareil est en charge et qu'il est connecté au Wi-Fi, planifiez des tâches pour préchargez les données, les images et les mises à jour que l'utilisateur souhaitera probablement voir dans votre l'application.

Ce guide d'alimentation vous aide à comprendre quand et comment le système exécute votre application, et comment limiter l'exécution de votre application et décharger la batterie. Pour savoir comment des actions particulières sont effectuées, comme charger une application ou faire défiler un consultez des conseils liés aux performances, comme le guide Compose sur Wear OS guide des performances.

Surveiller l'utilisation de la batterie dans le temps

Pour analyser les statistiques de la batterie d'un appareil Wear OS qui exécute votre application, saisissez la dans une fenêtre de terminal de votre ordinateur de développement:

adb shell dumpsys batterystats

Une bibliothèque GitHub dispose d'un analyseur de statistiques sur la batterie, qui pourrait être utile de l’exécuter avec cette commande.

Événements qui affectent l'autonomie de la batterie

Avant d'aborder votre application de manière plus générale, sur les événements qui consomment de l'énergie sur un appareil Wear OS.

Le tableau suivant montre l'effet relatif sur l'autonomie de la batterie dans plusieurs des événements courants dans les applications Wear OS. La décharge de la batterie dépend des appareils.

Événement Impact sur l'autonomie de la batterie Comment atténuer les effets
Accéder au réseau, y compris LTE et Wi-Fi Très élevé Différez l'accès non essentiel au réseau jusqu'à ce que l'appareil soit en charge.
Allumer l'écran et démarrer le mode interactif Élevée N'encouragez pas l'utilisateur à garder l'écran allumé plus longtemps que nécessaires. Fournir une expérience qui utilise toujours activé , également appelé mode Veille.
Accéder au capteur GPS Élevée Si possible, attendez que l'utilisateur demande l'accès au GPS.
Maintenir une utilisation élevée du processeur Élevée Consommation à l'aide de Jetpack Compose.
Accéder au capteur de fréquence cardiaque Moyenne Utilisez le temps d'éveil du processeur lorsque recevoir des rappels de l'API Sensor, par exemple lors de l'utilisation Services Santé activés Wear OS
Accéder à un autre appareil via le Bluetooth Moyenne Faites en sorte que les sessions soient courtes.
Maintenir un wakelock Moyenne Réduire la création et l'utilisation manuelles de wakelocks <ph type="x-smartling-placeholder"></ph> WorkManager.

Réduire le temps d'écran

Dans votre application Wear OS, suivez ces principes d'utilisation de l'écran:

  • Verrouillage de l'écran:à éviter autant que possible. Pour effectuer un test, désactivez le mode Toujours activé afficher dans les paramètres système et vérifiez si l'écran s'éteint pendant le délai avant expiration.
  • Animations:minimisez les animations élaborées et concentrez-vous plutôt sur de brèves des transitions pour un look plus professionnel. En particulier, évitez les longues périodes des animations et des boucles. Si une boucle est requise, ajoutez une pause entre les boucles. qui dure au moins la même longueur que l'animation elle-même.
  • Temps d'éveil en mode Veille:activez le mode Always-on si nécessaire, par exemple pour de remise en forme. Si votre application nécessite l'activation permanente, vérifiez qu'elle le fait les événements suivants lorsque l'appareil est en mode Veille:

    • Réduit le pourcentage d'éclairage de l'écran de l'appareil.
    • N'affiche pas d'animations.
    • Le contenu de l'écran n'est pas mis à jour, sauf pendant une Rappel onAmbientUpdate().

Réduire l'utilisation du processeur

Dans votre application Wear OS, suivez ces principes d'utilisation du processeur:

  • Limitez l'utilisation.
  • Regroupez toutes les opérations associées afin d'optimiser le temps de traitement de votre application. est inactif.

Réduire les wakelocks

Dans la plupart des cas, évitez les opérations qui empêchent votre application de se mettre en veille, comme wakelocks, Par exemple, dans les catégories "Santé et applications de fitness, entraînements de longue durée n'ont pas besoin de wakelock. Utiliser le temps d'éveil du processeur lors de la réception de rappels depuis l'API des capteurs, par exemple lors de l'utilisation de Services Santé sur Wear OS.

Dans certains cas, l'acquisition d'un wakelock est autorisée, par exemple lorsque votre effectue l'une des actions suivantes:

  • Lit des contenus multimédias en arrière-plan.
  • Utilise WorkManager ou JobScheduler. (Le système contient un wakelock en votre nom lors de l'exécution de la tâche en arrière-plan.)

Batterie Historian vous permet de voir les occurrences individuelles de longs wakelocks, ainsi que des résumés du nombre total et de la durée des wakelocks en cours de conservation. Inspecter le nombre et la durée des wakelocks que votre application et les compare aux schémas d'utilisation interactive de application:

  • Recherchez les wakelocks inattendus.
  • Si la durée est plus longue que prévu, demandez-vous si le travail est sont bloquées sur la base d'une dépendance, telle que la disponibilité du réseau.

Inspecter le processus d'inactivité de votre application

Tenez compte de ce que fait l'application active lorsque des événements clés sur l'appareil se produisent, par exemple lorsque suivantes:

  • L'écran s'éteint et l'appareil passe en mode Veille.
  • L'application est fermée en balayant l'écran.

Pour analyser l'activité dans les applications, utilisez les outils présentés dans les sections suivantes.

Profileur d'énergie

Le Profileur d'énergie est accessible dans le menu d'Android Studio en sélectionnant Afficher > Fenêtres d'outil > Profileur:

  1. Inspectez la trace système lorsque l'écran s'éteint et que l'appareil entre en mode Veille.
  2. Recherchez tous les travaux en cours et le niveau d'utilisation du processeur de l'appareil.

Perfetto

Perfetto vous permet d'enregistrer une trace, puis d'inspecter votre application pour voir s'il y en a des threads qui fonctionnent lorsque l'écran s'éteint, passe en mode Veille, ou l'utilisateur ferme l'activité de votre application.

Définissez des événements personnalisés afin de marquer les événements importants de votre application, y compris des événements propres à votre domaine. Pour une application multimédia, cela peut inclure des tâches telles que la récupération des playlists, le téléchargement d'un élément multimédia spécifique, le démarrage et l'arrêt de la lecture lecture. En définissant ces événements, vous pouvez les voir dans Perfetto et les comparer avec l'utilisation du processeur et de l'énergie de votre application.

Analyser les jobs planifiés de votre application

Les tâches planifiées, à l'aide de WorkManager, vous permettent d'effectuer des tâches en arrière-plan dans votre l'application. Bien que certains travaux en arrière-plan doivent être périodiques, n'exécutez pas de jobs également. fréquemment ou pendant une longue durée, car cela peut décharger la batterie de l'appareil.

Utilisez Batterie Historian pour inspecter l'exécution des jobs planifiés, à la fois globales (Statistiques système > Statistiques Jobscheduler) et par application (Statistiques sur les applications > Tâche planifiée). Vérifiez le nombre total et la durée totale:

  • Si un job s'exécute très fréquemment, envisagez de réduire cette fréquence.
  • Vérifiez que la durée totale d'exécution correspond à vos attentes et qu'elle ne correspond pas beaucoup plus longtemps.

Examinez également le graphique Battery Historian et étudiez chaque JobScheduler. entrée. Lorsque vous maintenez le pointeur sur une entrée spécifique, Battery Historian indique le propriétaire du job en cours d'exécution. Réfléchissez aux points suivants :

  • Pour votre application, la durée d'exécution doit être judicieuse.
  • Déterminez si les jobs ont lieu pendant l'exécution de votre application ou si représentent un travail périodique en arrière-plan.

Capteurs

Les appareils Wear OS disposent de nombreux capteurs différents, comme le GPS. Dans la plupart des cas, utilisez Services Santé sur Wear OS au lieu d'interagir directement avec SensorManager Dans de nombreux cas, Services Santé regroupe intelligemment les données afin de améliorer les performances de la batterie.

Pour analyser l'utilisation des capteurs dans votre application, exécutez la commande suivante dans un terminal sur votre ordinateur de développement:

adb shell dumpsys sensorservice

Le résultat de cette commande est le suivant:

  • Enregistrement actuel et précédent des capteurs.
  • Configuration du capteur, y compris le traitement par lot si elle est définie.
  • Données échantillonnées récemment.

Tester la désinscription des capteurs

Pour vérifier si votre application arrête d'extraire les données des capteurs comme prévu, testez scénarios suivants:

  1. Balayez l'écran pour fermer l'application.
  2. Tapotez l'écran avec la paume de votre main. Cela éteint l'écran ou passe l'écran en mode ambiant.

Utilisez la commande ADB de la section précédente pour vérifier si le capteur apparaît correctement comme non enregistré.

Couche de données

Lorsque vous utilisez l'API Data Layer, chaque transmission consomme une certaine puissance. Dans En particulier, si vous utilisez cette API pour envoyer des données, votre application doit être activée pour recevoir les données. Par conséquent, soyez prudent dans votre utilisation de cette API.

Voici quelques bonnes pratiques supplémentaires concernant l'utilisation de l'API Data Layer : suivantes:

  • Attendez que votre application soit active avant de configurer un écouteur avec WearableListenerService
  • Transmettre les changements d'état au lieu de configurer des mises à jour rapides. Ces états modifications permettent à l'appareil Wear OS d'effectuer des calculs de données locales, par exemple une séance d'entraînement a commencé.

    Ne transmettez que les changements d'état qui mettent à jour votre UI. Par exemple, si votre l’écran d’activité n’affiche que les « kilomètres parcourus » avec une décimale, n'envoyez pas un changement d'état de Wear OS chaque fois que l'utilisateur déplace un autre outil de mesure vers l'avant.

Pour analyser l'utilisation de l'API Data Layer dans votre application, exécutez la commande suivante dans un sur votre ordinateur de développement:

adb shell dumpsys activity service WearableService

Cette commande donne les résultats suivants:

  • RpcService:permet de voir la fréquence et les chemins appelé à l'aide de MessageClient.
  • DataService:permet de voir la fréquence de définition des éléments de données DataClient

Applis de santé et remise en forme

Si vous gérez une application de santé et remise en forme, utilisez Services Santé pour optimiser l'utilisation des capteurs par votre application.

  • Pour ExerciseClient, utilisez Batterie Historian afin de vérifier le comportement correct en mode Veille. Vérifiez que votre application ne se met pas en veille plus souvent qu'une toutes les minutes ou deux pour recevoir des données ExerciseUpdate.
  • Pour surveiller l'état de santé général tout au long de la journée, utilisez le PassiveMonitoringClient, comme décrits dans le guide expliquant comment surveiller les données de santé et de remise en forme dans le en arrière-plan.

Cartes et complications

Si votre application est compatible avec une carte ou une complication, suivez ces pratiques:

  • Désactivez l'actualisation automatique, augmentez la fréquence d'actualisation à 2 heures ou plus longtemps.
  • Utilisez Firebase Cloud Messaging (FCM) ou planifiés de manière appropriée des jobs pour envoyer des mises à jour de données. Veillez à éviter un rythme rapide des mises à jour, ce qui peut amener le système à planifier des tâches répétées plus rapidement l'utilisateur ou la plateforme peuvent accéder aux données nécessaires pour effectuer ce travail.
  • Ne planifiez pas de tâches pour votre carte ou votre complication lorsque l'utilisateur n'est pas interagir avec elle.
  • Utilisez des approches orientées hors connexion.
  • Partagez une base de données unique pour votre application principale, vos cartes et vos complications. Ce permet également aux données de rester cohérentes entre les surfaces de l'interface utilisateur.