Cómo ejecutar una prueba A/B eficaz sobre el consumo de energía de las funciones de tu aplicación de Android

Publicado por Mayank Jain – Gerente de Producto y Yasser Dbeis – Ingeniero de software; Estudio Android

Los desarrolladores de Android nos dijeron que están buscando herramientas que ayuden a optimizar el consumo de energía para diferentes dispositivos en Android.

El nuevo Perfilador de energía en Android Studio ayuda a los desarrolladores de Android al mostrar el consumo de energía que ocurre en los dispositivos mientras usan la aplicación. Comprender el consumo de energía de los dispositivos Android puede ayudar a los desarrolladores de Android a identificar y solucionar problemas de consumo de energía en sus aplicaciones. Pueden ejecutar pruebas A/B para comparar el consumo de energía de diferentes algoritmos, funciones o incluso diferentes versiones de su aplicación.

El nuevo Power Profiler en Android StudioEl nuevo Power Profiler en Android Studio

Las aplicaciones optimizadas para un menor consumo de energía mejoran la batería y el rendimiento térmico del dispositivo, lo que significa una mejor experiencia de usuario en Android.

Estos datos de consumo de energía están disponibles a través de On Device Power Monitor (ODPM) en dispositivos Pixel 6+, segmentados por cada subsistema llamado “Power Rails”. Ver Rieles de alimentación perfilables para obtener una lista de subsistemas compatibles.

Power Profiler puede ayudar a los desarrolladores de aplicaciones a detectar problemas en varias áreas:

    • Detección de código no optimizado que utiliza más energía de la necesaria.
    • Identifique tareas en segundo plano que provocan un uso innecesario de la CPU.
    • Identificación de wakelocks que mantienen activo el dispositivo cuando no son necesarios.

Una vez que se identifica un problema de consumo de energía, Power Profiler se puede utilizar para probar varias hipótesis y comprender por qué la aplicación puede estar consumiendo una cantidad excesiva de energía. Por ejemplo, si el problema es causado por tareas en segundo plano, el desarrollador puede intentar detener la ejecución de las tareas innecesariamente o durante períodos más prolongados. Y si el problema es causado por wakelocks, el desarrollador puede intentar liberarlos cuando el recurso no esté en uso o usarlos de manera más juiciosa. Luego compare el consumo de energía antes/después del cambio usando Power Profiler.

En esta publicación de blog, demostramos una técnica que utiliza pruebas A/B para comprender cómo las características de consumo de energía de su aplicación pueden cambiar con diferentes versiones de la misma función y cómo medirlas de manera efectiva.

Un ejemplo del mundo real de cómo se puede utilizar Power Profiler para mejorar la duración de la batería de una aplicación.

Digamos que tienes una aplicación a través de la cual los usuarios pueden comprar sus películas favoritas.

Aplicación de muestra para demostrar las pruebas A/B para medir el consumo de energíaAplicación de muestra para demostrar las pruebas A/B para medir el consumo de energía Vídeo (c) copyright Fundación Blender | www.bigbuckbunny.org

A medida que su aplicación se vuelve popular y es utilizada por más usuarios, se da cuenta de que un video 4K de alta calidad tarda mucho en cargarse cada vez que se inicia la aplicación. Debido a su gran tamaño, es necesario comprender su impacto en el consumo de energía del dispositivo.

Originalmente, este video estaba en calidad 4K con las mejores intenciones, para mostrar a sus clientes los mejores aspectos destacados de la película.

Esto te hace pensar…

    • ¿Realmente necesitas un banner de vídeo 4K en tu pantalla de inicio?
    • ¿Tiene sentido subir un vídeo 4K a la red cada vez que se ejecuta la aplicación?
    • ¿Cómo cambiarán las características de consumo de energía de su aplicación si reemplaza el video 4K con algo de menor calidad (conservando al mismo tiempo el aspecto vívido del video)?

Este es un escenario perfecto para ejecutar una prueba A/B de consumo de energía.

Con una prueba A/B, puede probar dos variaciones ligeramente diferentes de la funcionalidad del banner de vídeo y elegir la que tenga las mejores características de consumo de energía.

Escenario A: Ejecute la aplicación con pancartas de vídeo 4K en la pantalla y mida el consumo de energía

Escenario B: Ejecute la aplicación con el banner de vídeo de menor resolución en la pantalla y mida el consumo de energía.

Configuración de prueba A/B

Tomémonos un momento y configuremos nuestro generador de perfiles de Android Studio para ejecutar esta prueba A/B. Necesitamos iniciar la aplicación, adjuntarle el generador de perfiles de CPU y activar un seguimiento del sistema (donde se mostrará el generador de perfiles de energía).

Paso 1

Cree una “Configuración de ejecución” personalizada haciendo clic en el menú de 3 puntos > Editar

Configuración de ejecución personalizadaConfiguración de ejecución personalizada

Paso 2

Luego seleccione la pestaña “Perfiles” y asegúrese de que “Iniciar este registro al inicio” y Actividad de la CPU > Seguimiento del sistema esté marcado. Luego haga clic en “Aplicar”.

Cambiar los ajustes de configuraciónCambiar los ajustes de configuración

Ahora simplemente ejecute “Perfil de inicio de aplicación de perfil bajo” cada vez que desee ejecutar esta aplicación desde el principio y adjunte el generador de perfiles de CPU.

Nota sobre la precisión

Los siguientes escenarios de ejemplo utilizan el inicio completo de la aplicación para estimar el consumo de energía para los fines de este blog. Sin embargo, se pueden utilizar técnicas más avanzadas para lograr una precisión aún mayor en la obtención de lecturas de potencia. Algunas técnicas para probar son:

    • Aísla y mide el consumo de energía para la reproducción de video solo después de un evento táctil en el reproductor de video.
    • Utilizar el API de marcadores de seguimiento para marcar la hora de inicio y finalización de la línea de tiempo de medición de energía y luego medir el consumo de energía solo dentro de la ventana marcada

Escenario A

En este escenario, ejecutamos la aplicación con reproducción de video 4K y medimos el consumo de energía durante los primeros 30 segundos. Opcionalmente, también podemos ejecutar el escenario A varias veces y promediar las lecturas. Una vez que se muestra el seguimiento del sistema en Android Studio, seleccione el rango de tiempo de 0 a 30 segundos en el panel de selección de la línea de tiempo y regístrelo como una captura de pantalla para compararlo con el escenario B.

Consumo de energía en el escenario A: reproducción de un vídeo 4KConsumo de energía en el escenario A: reproducción de un vídeo 4K

Como puede ver, la energía promedio consumida por la WLAN, el núcleo de la CPU y la memoria combinados es de aproximadamente 1352 mW (milivatios).

Ahora comparemos y contrastemos cómo cambia este consumo de energía en el escenario B.

Escenario B

En este escenario, ejecutamos la aplicación con reproducción de video de baja calidad y medimos el consumo de energía durante los primeros 30 segundos. Como antes, opcionalmente también podemos ejecutar el escenario B varias veces y promediar las lecturas de consumo de energía. Nuevamente, una vez que vea el seguimiento del sistema en Android Studio, seleccione el rango de tiempo de 0 a 30 segundos en el panel de selección de la línea de tiempo.

Consumo de energía en el escenario B: reproducir un vídeo de menor calidadConsumo de energía en el escenario B: reproducir un vídeo de menor calidad

La energía total consumida por WLAN, CPU Little, CPU Big y CPU Mid & Memory es de aproximadamente 741 mW (milivatios)

Conclusión

En igualdad de condiciones, el Escenario B (con vídeo de menor calidad) consumió 741 mW de potencia en comparación con el Escenario A (con vídeo 4K) que requirió 1352 mW de potencia.

El escenario B (vídeo de menor calidad) utiliza un 45 % menos de energía que el escenario A (4K), mientras que el vídeo de menor calidad proporciona poca o ninguna diferencia visual en la calidad percibida de la pantalla de la aplicación.

Como resultado de esta prueba A/B de consumo de energía, concluye que reemplazar el video 4K con un video de menor calidad en la pantalla de inicio de nuestra aplicación no solo reduce el consumo de energía en un 45 %, sino que también reduce el ancho de banda de red requerido y potencialmente también puede mejorar el rendimiento térmico de los dispositivos.

Si la lógica empresarial de su aplicación aún requiere mostrar video 4K en la pantalla de la aplicación, puede explorar estrategias como:

    • Almacenamiento en caché de vídeo 4K en ejecuciones posteriores de la aplicación.
    • Subir vídeos con el toque de un usuario.
    • Cargue una imagen inicialmente y cargue el video solo después de que la pantalla se haya renderizado por completo (carga retrasada).

Las cifras generales de consumo de energía presentadas en el escenario de prueba A/B anterior pueden parecer pequeñas, pero muestran técnicas que los desarrolladores de aplicaciones pueden usar para probar de manera efectiva el consumo de energía para las funciones de su aplicación usando Power Profiler en Android Study.

Próximos pasos

El nuevo Power Profiler está disponible en Erizo de Android Studio en. Para obtener más información, vaya a documentación oficial.

Compruebe también

en vivo desde Droidcon, incluida la mayor actualización de Gemini en Android Studio y más lanzamientos del SDK de Android.

Acabamos de lanzar nuestro episodio de otoño de #TheAndroidShow en YouTube etcétera desarrollador.android.comy esta vez …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *