Una de las novedades de Android presentadas en Google I/O fue Project Volta. Además de ser un sistema de análisis de rendimiento de batería, incluye diversas novedades que mejoran la duración de la batería. Según las pruebas preliminares realizadas en XDA Developers y otras webs como Ars Technica, esa mejora de duración puede superar el 30%.
Por un lado tenemos el compilador ART que es una mejora directa. En vez de tener que compilar cada aplicación cuando se arranca y está en funcionamiento, simplemente se pasa el código ya precompilado de la aplicación al procesador para ejecutar. Código que se deja compilado durante la instalación de la aplicación desde Google Play. Ese no tener que compilar código constantemente es una mejora inmediata, como ya apuntaba el año pasado cuando se presentó ART. Además que es código mucho más optimizado y que consume menos que el tener que compilar las cosas rápidamente como ocurre con la máquina virtual Dalvik de Java, por muchas técnicas como JIT que se utilicen.
Esa mejora de batería también procede de usar menos memoria. Aunque no prestemos atención a ello, tener en uso 2GB de RAM consume más que tener 1GB, y ART también ayuda a reducir el impacto en memoria de las aplicaciones, y el motivo por el que funciona mejor Android en equipos de 512MB.
Pero Google también ha introducido un gestor de trabajos para la CPU en forma de API (JobScheduler, mencionada en la conferencia inaugural de Google I/O) que crea una cola de trabajos pendientes y poco importantes para realizar todos de una vez en lugar de tener que estar cada uno constantemente despertando al procesador para realizarlos y luego entrando en reposo. También hay un modo de "ahorro de batería" que al 15% limita el uso de información en segundo plano y el brillo de la pantalla, igual que el ya existente en Windows Phone. Por último, los desarrolladores tienen una nueva forma de ver en qué consume batería sus aplicaciones, Battery Historian, y detectar problemas.
De esta forma se consigue ese aumento de duración de batería de más de un 30%, que es sencillamente estupendo y lo pone en la línea de otros sistemas operativos que usan aplicaciones compiladas. Léase iOS y Windows Phone, en los que una batería de 1500 a 1800 mAh te da la duración de una batería de 2500 mAh en Android.
Lo presentado por Google, eso sí, no es nada nuevo. iOS tiene características similares que permiten minimizar al máximo el consumo de batería en tareas secundarias, los desarrolladores ya contaban con APIs para la programación de tareas, y que también está en la línea de lo que se hace en OS X Mavericks.
No quiero decir que Google haya copiado a Apple (que aquí todos se copian de todos), si no que me parece interesante saberlo para poder tener una idea más clara de lo que pretende Google puesto que hay más información de la que podría parecer sobre los cambios que trae Android L. Cuando tienes código precompilado (mediante ART) realmente el sistema operativo puede predecir el uso real que se tiene que hacer del procesador y gestionar mejor la temporización de procesos (Timer Coalescing) como en Mavericks.
Me parece un rumbo adecuado el tomado por Google ya que siempre he criticado fuertemente que Java sea un lenguaje interpretado en vez de compilado. Pero si ahora lo ha convertido en lenguaje compilado, un problema menos de Android del que se van a beneficiar los usuarios que reciban Android L en sus terminales. Que no serán muchos en los primeros meses.
Vía: Ars Technica.