Ahorra energía y batería

La eficiencia energética es particularmente importante en Wear OS. El diseño de Wear OS principales se enfocan significativamente en el consumo de energía del dispositivo, ya que el reloj es un y tiene un factor de forma pequeño, ideado para interacciones cortas.

En comparación con los dispositivos móviles más grandes, los dispositivos Wear OS tienen baterías más pequeñas, por lo que el agotamiento de la batería es más evidente. Además, le demanda más esfuerzo al usuario para cargar un dispositivo Wear OS, en comparación con un dispositivo móvil. Si bien los usuarios pueden cobrar sus dispositivos móviles en varios intervalos durante el día, necesitan desconectar el dispositivo Wear OS del cuerpo antes de cargarlo.

Para mejorar la eficiencia energética de tu app, sigue estas prácticas recomendadas de diseño:

  • El diseño de la app debe aprovechar bien el factor de forma de Wear OS. Integra no deberías copiar directamente tu aplicación para dispositivos móviles.
  • Usa tu app para dispositivos móviles existente como ayuda para determinados casos de uso. Por ejemplo: El uso de Internet y sincronización en el reloj es costoso; considera si el el dispositivo móvil podría hacer el trabajo pesado, y el dispositivo Wear OS recibe cambios en los datos.
  • Diseña tus casos de uso para interacciones más cortas.
  • Ten en cuenta qué eventos de Wear OS usas y con qué frecuencia estos eventos de que ocurran cambios.
  • Siempre que sea posible, aplaza el trabajo de tu app hasta que el reloj se esté cargando. Esto se aplica en particular a las tareas que consumen muchos datos, como la sincronización de datos, y organizar bases de datos.

    Si el dispositivo se está cargando y tiene una conexión Wi-Fi, programa los trabajos para cargar previamente datos, imágenes y actualizaciones que el usuario probablemente desee ver en tu .

Esta guía avanzada te ayuda a comprender cuándo y cómo el sistema ejecuta tu app. y cómo limitar el tiempo de ejecución y el consumo de batería de tu app. Para obtener más información sobre cómo se logran acciones particulares, como cargar una aplicación o desplazarse por una (consulta la guía relacionada con el rendimiento, como la de Compose en Wear OS) de la guía de rendimiento.

Cómo supervisar el uso de la batería a lo largo del tiempo

Para analizar las estadísticas de la batería de un dispositivo Wear OS que ejecuta tu app, ingresa el siguiente comando en una ventana de la terminal de tu máquina de desarrollo:

adb shell dumpsys batterystats

Una biblioteca en GitHub cuenta con un analizador de estadísticas de batería, que podría ser útil ejecutar junto con este comando.

Eventos que afectan la duración de la batería

Antes de pensar en tu app específicamente, debes pensar de forma más general sobre los eventos que consume energía en un dispositivo Wear OS.

La siguiente tabla muestra el efecto relativo en la duración de la batería en varias eventos comunes en apps para Wear OS. El consumo exacto varía según el dispositivo.

Evento Impacto en la duración de la batería Cómo mitigar
Acceder a la red, incluidos LTE y Wi-Fi Muy alto Aplaza el acceso a la red no esencial hasta que el dispositivo se esté cargando.
Enciende la pantalla y, luego, inicia el modo interactivo Alto No animes al usuario a mantener la pantalla encendida más de necesario. Proporciona una experiencia que utilice siempre activa estándar, también conocido como modo ambiente.
Cómo acceder al sensor de GPS Alto Si es posible, espera hasta que el usuario solicite acceso al GPS.
Mantén alto el uso de la CPU Alto Consumo de flujo con Jetpack Compose
Cómo acceder al sensor de frecuencia cardíaca Medio Usa el tiempo de actividad del procesador cuando recibir devoluciones de llamada de la API del sensor, como cuando usas Servicios de salud en Wear OS
Acceder a otro dispositivo por Bluetooth Medio Las sesiones deben ser breves.
Cómo mantener un bloqueo de activación Medio Cómo reducir la creación manual de bloqueos de activación y su uso WorkManager

Minimiza el tiempo de encendido de la pantalla

En tu app para Wear OS, sigue estos principios de uso de pantalla:

  • Bloqueos de pantalla: Evita el uso siempre que sea posible. Para probar, desactiva la opción Siempre activada. mostrar en la configuración del sistema y observar si la pantalla se apaga en el tiempo de espera.
  • Animaciones: Minimice las animaciones elaboradas y enfóquese en las para lograr un aspecto más profesional. En particular, evita los dispositivos de larga duración animaciones y bucles. Si se requiere un bucle, agrega una pausa entre los bucles que sea, al menos, tan larga como la animación en sí.
  • Tiempo despierto en modo ambiente: si es necesario, se activa la función siempre activa. de fitness. Si tu app requiere la función siempre activada, comprueba que lo haga cuando el dispositivo esté en el modo ambiente:

    • Reduce el porcentaje de la pantalla del dispositivo que está iluminada.
    • No muestra animaciones.
    • No actualiza el contenido de la pantalla, excepto durante una onAmbientUpdate().

Minimiza el uso de CPU

En tu app para Wear OS, sigue estos principios de uso de la CPU:

  • Haz que el uso sea breve.
  • Agrupa las operaciones relacionadas para maximizar el tiempo que tarda el proceso de tu app. está inactivo.

Minimiza los bloqueos de activación

En la mayoría de los casos, evita cualquier operación que impida que la app entre en estado de inactividad, como como bloqueos de activación. Por ejemplo, en Salud y apps de fitness, entrenamientos de larga duración no necesitas un bloqueo de activación. Usa el tiempo de actividad del procesador cuando recibas devoluciones de llamada de la API del sensor, como cuando se usan los Servicios de salud en Wear OS.

En algunos casos es correcto adquirir un bloqueo de activación, como cuando la app realiza una de las siguientes acciones:

  • Reproduce contenido multimedia en segundo plano.
  • Usa WorkManager o JobScheduler. (El sistema tiene un el bloqueo de activación en tu nombre cuando ejecutas el trabajo en segundo plano).

Battery Historian te permite ver casos individuales de registros de bloqueos de activación y resúmenes del número total de bloqueos de activación y su duración que se está reteniendo. Cómo inspeccionar la cantidad y la duración de los bloqueos de activación de tu app conserva y comparar esta información con los patrones de uso interactivos de tus app:

  • Comprueba si hay bloqueos de activación inesperados.
  • Si la duración es más larga de lo esperado, considera si el trabajo es bloqueado en alguna dependencia, como la disponibilidad de la red.

Inspecciona cómo se desactiva tu app

Considera qué hace la app activa cuando ocurren eventos clave del dispositivo, como lo siguiente:

  • Se apaga la pantalla y el dispositivo entra en el modo ambiente.
  • La app se descarta con el deslizamiento.

Para analizar la actividad en la app, usa las herramientas que se muestran en las siguientes secciones.

Generador de perfiles de energía

Se puede acceder al Generador de perfiles de energía en el menú de Android Studio seleccionando Ver > Ventanas de herramientas > Generador de perfiles:

  1. Inspecciona el registro del sistema a medida que se apaga la pantalla y el dispositivo ingresa. modo ambiente.
  2. Busca cualquier trabajo que continúe y el nivel de uso de la CPU del dispositivo.

Perfetto

Perfetto te permite registrar un registro y, luego, inspeccionar la app para ver si hay ¿Hay subprocesos que estén haciendo algo cuando la pantalla se apaga, el dispositivo ingresar al modo ambiente o el usuario descarta la actividad de tu app.

Define eventos personalizados para marcar los eventos importantes de tu app, incluidos los siguientes: eventos específicos del dominio. Para una app multimedia, esto incluiría tareas como recuperar descargar un elemento multimedia específico, iniciar la reproducción y detenerla reproducción. Si defines estos eventos, podrás verlos en Perfetto y compararlos. su sincronización con el uso de energía y la CPU de tu app.

Analiza los trabajos programados de tu app

Los trabajos programados con WorkManager te permiten realizar tareas en segundo plano en tu . Aunque algunos trabajos en segundo plano deben ser periódicos, no ejecutes trabajos demasiado con frecuencia o durante mucho tiempo, ya que esto puede agotar la batería del dispositivo.

Usa Battery Historian para inspeccionar la ejecución de las tareas programadas, ambas general (Estadísticas del sistema > Estadísticas de Jobscheduler) y por app (Estadísticas de la app > Trabajo programado). Verifica la cantidad total y la duración total:

  • Si un trabajo se ejecuta con mucha frecuencia, considera reducir esta frecuencia.
  • Verifica que el tiempo total de ejecución coincida con lo que esperabas y no sea correcto significativamente más larga.

Además, inspecciona el gráfico de Battery Historian observando cada JobScheduler entrada. Cuando mantienes el puntero sobre una entrada en particular, Battery Historian muestra al propietario del trabajo en ejecución. Ten en cuenta lo siguiente:

  • Para tu app, la duración de la ejecución debería tener sentido.
  • Determina si las tareas se realizan mientras se ejecuta la app o si la los trabajos representan tareas periódicas en segundo plano.

Sensores

Los dispositivos Wear OS tienen muchos sensores diferentes, como el GPS. En la mayoría de los casos, usa Servicios de salud en Wear OS en lugar de interactuar directamente con SensorManager En muchos casos, los Servicios de salud agrupan los datos de forma inteligente para mejorar el rendimiento de la batería.

Para analizar el uso del sensor en tu app, ejecuta el siguiente comando en una terminal en tu máquina de desarrollo:

adb shell dumpsys sensorservice

Los resultados de este comando muestran lo siguiente:

  • Registros de sensores actuales y anteriores.
  • Configuración del sensor, incluido el procesamiento por lotes si se estableció.
  • Datos muestreados recientemente.

Prueba la cancelación del registro de los sensores

Para verificar si tu app deja de recuperar los datos del sensor como se esperaba, prueba el las siguientes situaciones:

  1. Desliza para descartar la app.
  2. Presiona la pantalla con la palma. Esto apaga la pantalla o coloca la pantalla en el modo ambiente.

Usa el comando ADB de la sección anterior para verificar si el sensor se muestra correctamente como no registrado.

Capa de datos

Cuando usas la API de Data Layer, cada transmisión usa potencia. En particular, si usas esta API para enviar datos, tu app debe activarse para recibir los datos. Por estos motivos, sé conservador con el uso de esta API.

Algunas prácticas recomendadas adicionales para usar la API de Data Layer incluyen lo siguiente: lo siguiente:

  • Espera hasta que tu app esté activa antes de configurar un objeto de escucha con WearableListenerService
  • Transmite cambios de estado en lugar de configurar actualizaciones rápidas. Estos estados cambios permiten que el dispositivo Wear OS realice cálculos de datos locales, como cuándo comenzó una sesión de entrenamiento.

    Transmite solo los cambios de estado que actualicen tu IU. Por ejemplo, si tu La pantalla de actividad solo muestra "kilómetros corridos" a un decimal, no lo envíes un cambio de estado en Wear OS cada vez que el usuario mueve otro medidor avanzar.

Para analizar el uso de la API de Data Layer en tu app, ejecuta el siguiente comando en un de terminal en tu máquina de desarrollo:

adb shell dumpsys activity service WearableService

Los resultados de este comando incluyen lo siguiente:

  • RpcService: te permite ver la frecuencia y las rutas de acceso. se llama con MessageClient.
  • DataService: Te permite ver la frecuencia con la que se configuran los elementos de datos usando DataClient

Apps de salud y fitness

Si administras una app de salud y fitness, usa los Servicios de salud para optimizarla. el uso de sensores de tu app.

  • Para ExerciseClient, usa Battery Historian para verificar el comportamiento correcto en el modo ambiente. Comprueba que la app no se active con más frecuencia que la cada minuto o dos para recibir datos de ExerciseUpdate.
  • Para la supervisión de estado general que dura todo el día, usa PassiveMonitoringClient, como descritos en la guía sobre cómo supervisar los datos de salud y actividad física en el fondo.

Mosaicos y complicaciones

Si tu app admite una tarjeta o una complicación, sigue estas recomendaciones prácticas:

  • Inhabilitar la actualización automática o aumentar la frecuencia de actualización a 2 horas por más tiempo.
  • Utiliza Firebase Cloud Messaging (FCM) o una programación apropiada trabajos para enviar actualizaciones de datos. Evita que haya actualizaciones rápidas lo que puede provocar que el sistema programe el trabajo repetido a una velocidad mayor que la para que el usuario o la plataforma acceda a los datos necesarios para realizar el trabajo.
  • No programes tareas para tu tarjeta o complicación cuando el usuario no esté que estás interactuando con él.
  • Usa enfoques que prioricen el uso sin conexión.
  • Comparte una sola base de datos en la app principal, las tarjetas y las complicaciones. Esta también ayuda a mantener la coherencia de los datos en todas las plataformas de IU.