Dalvik (software)


Dalvik es una máquina virtual (VM) de proceso descontinuado en el sistema operativo Android que ejecuta aplicaciones escritas para Android. [1] (El formato de código de bytes de Dalvik todavía se usa como formato de distribución, pero ya no en tiempo de ejecución en las versiones más recientes de Android). Dalvik era una parte integral de la pila de software de Android en las versiones de Android 4.4 "KitKat" y anteriores (ahora no compatibles). , que se usaban comúnmente en dispositivos móviles como teléfonos móviles y tabletas , y más en algunos dispositivos como televisores inteligentes y dispositivos portátiles . Dalvik es un software de código abierto, escrito originalmente por Dan Bornstein, quien le puso el nombre del pueblo pesquero de Dalvík en Eyjafjörður , Islandia . [2] [3]

Programas para Android se escriben comúnmente en Java y compilados a código de bytes para la máquina virtual de Java , lo que se traduce luego a Dalvik código de bytes y se almacena en .dex( Dalvik ejecutables ) y .odex( Optimized Dalvik ejecutable archivos); los términos relacionados odex y de-odex están asociados con las respectivas conversiones de códigos de bytes . El formato compacto Dalvik Executable está diseñado para sistemas limitados en términos de memoria y velocidad del procesador .

El sucesor de Dalvik es Android Runtime (ART), que utiliza el mismo código de bytes y archivos .dex (pero no archivos .odex), y la sucesión apunta a mejoras de rendimiento transparentes para los usuarios finales . El nuevo entorno de ejecución se incluyó por primera vez en Android 4.4 "KitKat" como una vista previa de la tecnología , [4] [5] y reemplazó a Dalvik por completo en versiones posteriores; Android 5.0 "Lollipop" es la primera versión en la que ART es el único tiempo de ejecución incluido.

A diferencia de las máquinas virtuales Java , que son máquinas apiladas, Dalvik VM utiliza una arquitectura basada en registros que requiere menos instrucciones de máquina virtual, normalmente más complejas. Los programas de Dalvik se escriben en Java utilizando la interfaz de programación de aplicaciones (API) de Android , se compilan en el código de bytes de Java y se convierten a las instrucciones de Dalvik según sea necesario.

Una herramienta llamada dxse utiliza para convertir archivos .class de Java al formato .dex. Se incluyen varias clases en un solo archivo .dex. Las cadenas duplicadas y otras constantes utilizadas en varios archivos de clase se incluyen solo una vez en la salida .dex para ahorrar espacio. El código de bytes de Java también se convierte en un conjunto de instrucciones alternativo utilizado por Dalvik VM. Un archivo .dex sin comprimir suele tener un tamaño un poco más pequeño que un archivo Java comprimido ( JAR) derivado de los mismos archivos .class. [6]

Los ejecutables de Dalvik pueden modificarse nuevamente cuando se instalan en un dispositivo móvil. Para obtener más optimizaciones , el orden de los bytes se puede intercambiar en ciertos datos, las estructuras de datos simples y las bibliotecas de funciones se pueden vincular en línea , y los objetos de clase vacíos se pueden cortocircuitar, por ejemplo.


Una comparación de las arquitecturas de Dalvik y ART
Un teléfono con tecnología Dalvik