Dalvik: la máquina virtual de Android

Dalvik es una process VM ( Process Virtual Machine) , también llamada application virtual machine, es gestionada y ejecutada como cualquier otra aplicación, pero su función es la de proporcionar un entorno de programación independiente de la plataforma que permita obviar el hardware instalado por debajo y posibilite ejecutar los programas realizados para ella en cualquier tipo de plataforma sin tener que realizar modificación alguna. Utiliza el modelo de compilación just-in-time compilation (JIT, compilación en tiempo de ejecución) que es un híbrido entre los lenguajes interpretados y los compilados y que consiste en traducir el bytecode a código máquina nativo en tiempo de ejecución lo que mejora el rendimiento considerablemente.

 
Dalvik que es distribuida como software libre (bajo licencia Apache 2.0) fue diseñanda por Dan Bornstein junto con otros diseñadores de Google específicamente para el sistema operativo de móviles/tabletas Android, está optimizada para tener bajos requerimientos de memoria y permitir múltiples instancias de la VM funcionando de manera simultánea, dejando para el sistema operativo subyacente tareas como la gestión de la memoria y la gestión de procesos e hilos. Dalvik utiliza un bytecode muy similiar pero no igual que el Java Byte Code por lo que en la práctica no son compatibles, por lo que es necesario que las clases .class sean transformadas por una utilidad llamada dx (incluida en el Android SDK) que las transforma en el Bytecode de Dalvik en clases .dex, las cuales finalmente son comprimidas en ficheros .apk que son los que conforman los paquetes de Android.

 
Dalvik es una máquina virtual de registro a diferencia de la Java VM que es una máquina virtual de pila, las máquinas virtuales de registro tienen como modelo a la máquina de Turing con uno o más registros que sustituyen a la cinta y el cabezal utilizado en dicha máquina teórica. Las máquinas virtuales de pila sin embargo utilizan una o más pilas como forma de utilizar la memoria de la máquina y su ventaja respecto a VM como la de registro reside en que generalmente tienen una mayor densidad de código lo que facilita la lectura, pero las máquinas de registro al basarse en estos últimos suele decirse que son más rápidas que las de pila dado que estas últimas se basan en memoria, aunque existen máquinas de pila que incluyen cachés en registros para acelerar la ejecución todo lo posible.

 
La creación de esta máquina virtual por parte de google para su sistema operativo Android ha permitido tener una VM muy bién adaptada a las características de los dispositivos móviles con sus limitaciones de memoria , procesamiento y batería y ha permitido a Google mantener un cierto grado de independencia respecto a otras tecnologías como Java y su máquina virtual JVM.

Esta entrada fue publicada en mswl-ad y etiquetada . Guarda el enlace permanente.