Dalvik es una máquina virtual intérprete que ejecuta
archivos en el formato Dalvik Executable (*.dex), un formato optimizado para el
almacenamiento eficiente y ejecución mapeable en memoria. Su objetivo
fundamental es el mismo que cualquier máquina virtual, permite que el código
sea compilado a un bytecode independiente de la máquina en la que se va a
ejecutar, y la máquina virtual interpreta este bytecode a la hora de
ejecutar el programa. Una de las razones por las cuáles no se optó por utilizar
la máquina virtual de Java es la necesidad de optimizar al máximo los recursos
y enfocar el funcionamiento de los programas hacia un entorno dónde los
recursos de memoria, procesador y almacenamiento son escasos.
Dalvik está basada en registros y puede ejecutar clases
compiladas por un compilador Java y que posteriormente han sido convertidas al
formato nativo usando la herramienta “dx”. El hecho de que corra sobre un
kernel Linux le permite delegar las tareas relacionadas con la gestión de hilos
y memoria a bajo nivel.
El objetivo de esto es proteger a las aplicaciones, de
forma que el cierre o fallo inesperado de alguna de ellas no afecte de ninguna
forma a las demás.
Dalvik y la optimización en aplicaciones
Android
El uso de Dalvik permite reducir bastante el
tamaño del programa buscando información duplicada en las diversas clases y
reutilizándola.
Lo que llamamos en Java como “recolectar
basura”, que libera el espacio en memoria de objetos que ya no utilizamos en
nuestros programas, ha sido perfeccionada en Android con el fin de mantener
siempre libre la máxima memoria posible-
Dalvik != Java Virtual Machine
La máquina virtual de Java, que podemos
encontrar en casi todas las PC’s actuales, se basa en el uso de las pilas. De
modo contrario, Dalvik utiliza los registros, ya que los teléfonos móviles
están optimizados para la ejecución basada en los mismos.
No hay comentarios:
Publicar un comentario