¿Qué es ART? Android Runtime, el sucesor de Dalvik

¿Qué es ART? Android Runtime, el sucesor de Dalvik

Carlos González

Desde sus orígenes, Android se había basado en Dalvik. Y durante mucho tiempo, esta fue la máquina virtual usada por el sistema operativo, pero con Android 4.4 KitKat surgió ARTAndroid Runtime como alternativa, y se convirtió en el sustituto definitivo a partir de Android Lollipop. Pero ¿qué es exactamente? Se trata del entorno de ejecución de aplicaciones del sistema operativo Android.

ART o Android Runtime es la máquina virtual de Android, su entorno de ejecución de aplicaciones. Con Dalvik, a partir de Android 2.2 Froyo, el sistema operativo utilizaba JIT (Just-In-Time) para la compilación de código en cada ejecución de una aplicación. ART, sin embargo, sustituyó esta tecnología por el uso de AOT (Ahead-Of-Time). Y la diferencia radica en que esta tecnología crea un archivo de compilación tras la instalación de una aplicación. De este modo, el archivo se usa cuando se ejecuta la aplicación, y no se tiene que estar compilando constantemente cuando es ejecutada.

ART o Android Runtime y los beneficios sobre el rendimiento del sistema operativo

Gracias a este importante cambio, Android no lleva a cabo una cantidad tan amplia de compilaciones por cada aplicación. El resultado es tan sencillo como que el uso de la CPU se reduce de forma significativa aumentando el rendimiento para un mismo hardware, y el ahorro de batería es también considerable. Pero además, frente a la anterior máquina virtual Dalvik, ART introduce otras mejoras a nivel de rendimiento como las apps de depuración y perfilado y la recolección de basura. El usuario no nota cambio alguno entre un entorno de ejecución de aplicaciones y el otro, pero las diferencias son realmente importantes.

El problema al que se enfrentó Google, en el cambio de Dalvik a ART, está en la compatibilidad. Para esto, diseñaron ART haciendo uso del mismo código de bytes de entrada que Dalvik, suministrado por archivos .dex estándar sobre los APK. Lo que sí se modificó fueron los archivos .odex, siendo sustituidos por archivos ELF. ¿Por qué? Porque, al compilar una app con ART en el dispositivo, la misma se dirige a partir del ELF compilado.

Aunque todo esto implica un tiempo adicional para la compilación, durante la instalación de una aplicación, supone una importante reducción de gastos relacionados con la compilación JIT, de Dalvik. Otro ‘daño colateral’ está en que, por este cambio, las aplicaciones instaladas tienen un peso superior al que tenían con Dalvik. Pero, como es evidente, la mayoría de cambios son ventajas de ART o Android Runtime frente a la máquina virtual Dalvik.