contacto[arroba]digitallearning.es
Nivel Bateria 2

Consejos para optimizar consumo de batería en Apps Watch Faces

Post Series: Plataformas Android (III)

En esta publicación, se definen una serie de buenas prácticas que permiten aumentar la autonomía de los dispositivos smartwatch, centrándose principalmente en el desarrollo de aplicaciones Watch Faces.

Uno de los grandes hándicap a la hora de adquirir un dispositivo smartwatch es su escasa autonomía, derivada principalmente por el reducido tamaño del dispositivo, y que impide introducir baterías de mayor capacidad. Los modelos que existen actualmente en el mercado rondan entorno a los 320mAh y 420mAh, siendo estas capacidades del todo insuficientes para un uso prolongado, y más teniendo en cuenta que utilizan procesadores no adaptados a este tipo de dispositivos, que realizan un alto consumo de batería.

Partiendo de la base de que se trata de dispositivos cuya autonomía llegan difícilmente al día de uso, es necesario enfocar el desarrollo de Watch Faces desde un punto de vista en el que las animaciones del reloj funcionen de manera correcta y que el servicio implementado no realice cálculos innecesarios, manteniendo en todo momento un consumo eficiente de su batería.

Para poder alcanzar un consumo óptimo, desde la plataforma de desarrolladores de Android nos proponen una serie de consejos que eviten desarrollos ineficientes:

  • Reducir el tamaño de los recursos utilizados, teniendo muy en cuenta que cualquier diseño de Watch Faces estará formado por una imagen de fondo fija, con una serie de elementos superpuestos, que serán los encargados de volver a dibujarse por cada actualización de la hora. En este caso, es recomendable ajustarse, en la medida posible, al tamaño de la imagen a utilizar, evitando el redibujado de píxeles que no pertenecen a la imagen en sí.
  • Evitar realizar operaciones de alto consumo dentro del método Engine.onDraw() . Para ello se recomienda no llevar a cabo las siguientes acciones:
    • Asignación de objetos.
    • Realizar de cálculos entre fotogramas cuyo resultado no varíe.
    • Reescalar el tamaño de las imágenes.
    • Carga de imágenes y otros recursos.
  • Deshabilitar antialiasing (efecto gráfico que permite mejorar la visualización de imágenes construidas a partir de líneas y curvas, evitando un diseño escalonado) para el escalado del dibujo, evitando el procesamiento de la imagen, y mejorando el rendimiento. Para ello se recomienda utilizar un filtro de mapa de bits, a partir de la instanciación de la clase Paint (ver referencia clase), e invocando al método setFilterBitmap() (ver referencia método).En las dos siguientes imágenes se puede apreciar un ejemplo de filtro habilitado y deshabilitado:
    Bitmap Filter EnabledBitmap Filter Disabled
  • Prácticas para ahorro de energía:
    • No superar los 30 fotogramas por segundo para las animaciones de Watch Faces.
    • Poner la CPU en estado de reposo entre animaciones.
  • Combinación de imágenes para evitar la carga de dos dibujos que puedan simplificarse en uno solo.

En la próxima publicación, desarrollaremos un ejemplo práctico de una Aplicación sobre Android Wear.


Imagen batería por IntelFreePress con licencia CC by SA 2.0