Sei sulla pagina 1di 2

Tomando en cuenta lo aprendido en la semana 1 y semana 2, ¿por qué cree Ud.

que el runtime
de Android se cambió de Dalvik a ART?

Buenas tardes estimado profesor y compañeros

Junto con saluda y dado respuesta al presente foro, puedo indicar lo siguiente:

Dalvik es una maquina virtual la cual es usada en los teléfonos con sistema operativo Android,
la cual posee una serie de características que la diferencian de las maquinas virtuales de Java,
esta maquina virtual fue desarrolla por Google para los sistemas Android, esta maquina
virtual se utilizo hasta la version 5.0 de Android, siendo en la version 4.4 opcional el uso de
esta.

La máquina virtual Dalvik se caracteriza por realizar compilaciones “justo a tiempo” (JIT, Just-
In-Time). En resumen, cada vez que se ejecuta una aplicación, el compilador de la máquina
virtual Dalvik traduce el bytecode de dicha aplicación con la herramienta “dexopt” en tiempo
de ejecución a código máquina, y lo ejecuta.

Por otro lado ART, también es una maquina virtual, que tiene su base de ejecución muy
parecidas a Dalvik pero esto solo al principio, ya que ART fue creado con el fin de mejorar la
velocidad de las aplicaciones y a su vez el rendimiento, incluyendo también el rendimiento de
batería y sistema Android en los dispositivos.

ART mejora respecto a la máquina virtual Dalvik:

 Mejora el rendimiento del recolector de basura

 Mejora la depuración de aplicaciones

 Mejora los análisis de ayuda al desarrollo

 Consume menos energía

 Mejora el rendimiento general del sistema

 No hay caché de código en tiempo de ejecución

 Al utilizar solo memoria RAM se puede paginar (Dalvik utilizaban memoria Caché que
no era paginable)

 Pre-inicializa el conjunto de clases en tiempo de compilación lo que mejora el


rendimiento de la memoria RAM

 Compilar con la herramienta “dex2oat” desde un fichero DEX a un ELF consume casi
tres veces más de tiempo que, compilar con la herramienta “dexopt” de DEX a ODEX.
Pese a esto, el resultado es una compilación completa en los fichero ELF, al contrario
que en los ODEX que solo se compilaba una parte
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.

Con lo mencionado anteriormente, yo creo que el cambio de plataforma se debe a que ART
tiene un sistema de compilación diferente a lo que se conoce en Dalvik, en donde este
compila los procesos y guarda el caché desde el momento de la instalación de la aplicación, en
otras palabras, que en vez de que a diferencia de lo que realiza en Dalvik que las aplicaciones
se van compilando a medida que se navega dentro de app, en ART la compilación de app se
realiza y se cachea en el sistema desde el momento de su instalación.

Saludos Cordiales.

Felipe Faúndez.

Potrebbero piacerti anche