La máquina virtual Dalvik forma parte del entorno de ejecución de aplicaciones de Android que se utilizaba en versiones anteriores a la versión 5.0 Lollipop. Se reemplazó por el entorno de ejecución ART a partir de la versión 5.0.
El entorno de ejecución Dalvik se diseñó específicamente para dispositivos móviles y estaba optimizado para ejecutar aplicaciones en dispositivos con recursos limitados, como memoria y capacidad de procesamiento. Dalvik utilizaba una técnica de compilación JIT para compilar el código de la aplicación en tiempo de ejecución, en lugar de compilarlo en código de máquina antes de la instalación de la aplicación, como hace el entorno de ejecución ART.
La máquina virtual Dalvik es el componente central de este entorno de ejecución.
¿Qué es la máquina virtual Dalvik?
La máquina virtual Dalvik se nombró así en honor a la aldea de pescadores de Dalvík, en Islandia. Es un tipo de máquina virtual de registro basada en stack, que utiliza una técnica de compilación Just In Time (JIT) para compilar el código de la aplicación en código de máquina durante la ejecución.
El enfoque JIT de la máquina virtual Dalvik permitió que las aplicaciones se ejecutaran de manera más rápida y eficiente en dispositivos móviles, ya que solo compilaba el código que se utilizaba en tiempo de ejecución. Esto significa que no era necesario compilar todo el código de la aplicación antes de la instalación, lo que habría requerido más recursos de memoria y capacidad de procesamiento.
La máquina virtual Dalvik también tenía algunas limitaciones. Por ejemplo, el proceso JIT podía consumir más recursos de la CPU del dispositivo y ralentizar la carga de la aplicación. Además, no proporcionaba un nivel de seguridad adecuado, ya que cualquier aplicación podía acceder a los recursos de otras aplicaciones sin restricciones.
El entorno Dalvik
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaLa arquitectura de la máquina virtual Dalvik cuenta con varios componentes que trabajan juntos para ejecutar las aplicaciones de Android. Estos componentes incluyen:
- Class loader: es el responsable de cargar las clases y recursos necesarios para la ejecución de la aplicación. El class loader utiliza el sistema de archivos de Android para buscar las clases y recursos necesarios.
- Compiler: es el responsable de compilar el código de la aplicación en código de bytes de Dalvik. El compilador utiliza una técnica de compilación Just-In-Time (JIT) para compilar el código en tiempo de ejecución. El compilador puede compilar solo la parte del código de la aplicación que se está utilizando en ese momento para ahorrar memoria.
- Garbage Collector: se responsabiliza de liberar la memoria que la aplicación ya no está utilizando. Utiliza un algoritmo de recolección de basura de tipo mark-and-sweep para liberar la memoria no utilizada.
- Dalvik Virtual Machine: la máquina virtual Dalvik es el componente central de la arquitectura de Dalvik. Su cometido es cargar las clases y recursos necesarios, ejecutar el código de la aplicación y administrar la memoria que utiliza la aplicación.
La máquina virtual Dalvik
La máquina virtual Dalvik utiliza un modelo de registro basado en pila, en lugar del modelo basado en registro que utilizan otras máquinas virtuales, como la máquina virtual de Java. También utiliza un sistema de recolección de basura optimizado para dispositivos móviles con recursos limitados.
Para cada aplicación, debe existir una máquina virtual Dalvik. Esto sucede porque en iOS, al tener solo un fabricante para el mismo dispositivo, ya que pertenece a una sola marca, es más sencillo. El caso de Android, sin embargo, es muy distinto, dado que, como son distintas marcas (Samsung, Xiaomi, Motorola, etc.), se requieren distintos fabricantes. Como consecuencia de esto, cada aplicación debe tener su propia máquina virtual Dalvik.
Esto puede provocar conflictos y problemas con la seguridad del dispositivo en el que estemos trabajando.
¿Cómo seguir aprendiendo sobre la máquina virtual Dalvik?
Ya hemos visto cómo funciona la máquina virtual Dalvik y en qué consiste. Ahora, si quieres seguir aprendiendo para convertirte en todo un experto de la seguridad informática, no te pierdas el Ciberseguridad Full Stack Bootcamp. Con esta formación intensiva e íntegra te formarás a nivel teórico y práctico para lograr destacar en el sector IT en cuestión de meses. ¡Pide ya mismo más información y atrévete a impulsar tu futuro!