La próxima versión de Android lleva el nombre de Frozen Yogurt (Froyo)
Ya se rumoreaba, pero una sesión del próximo Google IO, que se realizará esta semana, lo confirma: Android 2.2 incluirá JIT o Just In Time Compilation. Se trata de una mejora que incrementará agresivamente el rendimiento de las aplicaciones que corren en esta plataforma.
En Android, las aplicaciones están escritas en Java y se ejecutan en Dalvik, una máquina virtual de Java especialmente diseñada por Google para esta plataforma. Se trata de un estándar propio para que las aplicaciones puedan ejecutarse en distintos dispositivos con una potente API, sin llegar a los sacrificios que tuvo que tomar Sun con J2ME (Java 2 Mobile Edition).
Cuando se programa en Java, un compilador convierte lo que el programador escribió como texto en una secuencia de números que representan a este programa. Esta secuencia de números, conocida como byte-code, no es entendida directamente por el hardware, sino que por un software llamado máquina virtual. Una máquina virtual como Dalvik debe procesar el byte code para convertir sus instrucciones en algo que entienda el procesador real.
Hasta ahora Dalvik se comporta como un intérprete, es decir, a medida que va leyendo el byte code ejecuta un procedimiento equivalente en el procesador del dispositivo. Por ejemplo, si hay un ciclo que se repite 1000 veces, entonces por cada una de esas iteraciones Dalvik tendrá que procesar el byte code y ejecutar sus instrucciones equivalentes, realizando el mismo procedimiento 1000 veces.
Con JIT Compilation, que se espera para Android 2.2, Dalvik convertirá secciones completas de bytecode en código ejecutable por el procesador real, este código se ejecutará sin más interrupciones. Siguiendo el ejemplo anterior, Dalvik realizará la conversión a código real sólo una vez, y éste se ejecutará a máxima velocidad 1000 veces.
El uso de JIT es común en la implementación de Java para sistemas de escritorio y servidores, pero en Android hasta ahora habían sido bastante conservadores en este aspecto. Con este cambio no sólo se mejorará el rendimiento sino que además la exigencia al procesador será menor, lo que reducirá el consumo de energía. En pruebas realizadas en un Nexus One se han obtenido mejoras de rendimiento de hasta 6 veces en procesamiento de datos puro.
Bonus Track: Flash en Android 2.2
En Android 2.2 también se estrenará Flash 10.1 de Adobe. Se trata de una versión desarrollada exclusivamente para esta plataforma. Si han estado viviendo en una caverna los últimos meses, pueden revisar el artículo dedicado a Adobe, Android y Apple.
Como adelanto, este es un video en donde Adobe muestra el funcionamiento de Flash 10.1 en Android
Links:
– A JIT Compiler for Android’s Dalvik VM (Google IO)
– JIT performance boot coming with Android 2.2 (Android and Me)