¿Qué es dalvik? Cuando hablamos de Android y su funcionamiento interno, escuchamos que se escuchan muchas palabras en Internet. Si bien no hay una explicación fácil que podamos dar en solo unos pocos párrafos, podemos cubrir los conceptos básicos y orientarlo en la dirección correcta si necesita alimentar su lado nerd. En sus términos más simples, Dalvik es una máquina virtual que ejecuta aplicaciones y códigos escritos en Java. Un compilador estándar de Java convierte el código fuente (escrito como archivos de texto) en Bytecode, luego se compila en un archivo.dex que Dalvik VM puede leer y usar. En esencia, los archivos de clase se convierten en archivos.dex (muy parecidos a un archivo jar si se estuviera utilizando la máquina virtual Java estándar) y luego los lee y ejecuta Dalvik Virtual Machine. Los datos duplicados utilizados en los archivos de clase se incluyen solo una vez en la salida.dex, lo que ahorra espacio y usa menos sobrecarga. Los archivos ejecutables pueden modificarse nuevamente cuando instala una aplicación para hacer las cosas aún más optimizadas para dispositivos móviles. Cosas como el intercambio de pedidos de bytes y la vinculación de la estructura de datos y las bibliotecas de funciones en línea hacen que los archivos sean más pequeños y funcionen mejor en nuestros dispositivos. El Dalvik VM fue escrito desde cero con Android en mente.
Confundido todavía? No te sientas mal, la charla de programación geek generalmente tiene ese efecto. Piénselo de esta manera: cuando crea una aplicación Java para su computadora, una máquina virtual Java ejecuta la salida compilada del código fuente. Es por eso que Java se ejecuta en casi cualquier sistema operativo. Dalvik es una versión optimizada para dispositivos móviles de una máquina virtual Java, construida con código del proyecto Apache Harmony, que es de código abierto y funciona mejor que una máquina virtual Java estándar en nuestro hardware limitado, diseñada para que pueda ejecutar más de una instancia de la VM a la vez, es decir, multitarea. Debido a que Dalvik es de código abierto, también se ha portado a otros sistemas operativos, como el del BlackBerry PlayBook. Es bastante complicado, bastante genial, y Oracle (la compañía que compró Java a Sun) lo odia.
Android usa Dalvik porque, si bien la licencia de la máquina virtual Java estándar es GPL2 (gratuita y de código abierto), cuando se coloca en un dispositivo móvil y usa la Edición Micro de Java, no lo es. La gran disputa entre Google y Oracle se basa en Dalvik. Google afirma que fue escrito en un entorno de "sala limpia" sin utilizar ninguno de los códigos de Oracle, y Oracle no está de acuerdo. Afirmamos que no tenemos idea, estamos contentos de que funcione tan bien como lo hace.