E
|
sta máquina virtual corre
por encima de un kernel Linux 2.6, el cuál le permite, entre otras cosas,
delegar las tareas relacionadas con la gestión de hilos y memoria a bajo nivel. También ha sido optimizada también para
que haya múltiples instancias suyas funcionando con un impacto muy bajo en el
rendimiento de la memoria del dispositivo. Este aspecto de usar varias máquinas virtuales se pensó para
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.
Al ser una máquina
virtual interprete, ejecuta archivos en el formato Dalvik Ejecutable
(*.dex), un formato optimizado para el almacenamiento eficiente y ejecución
maleable 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. El hecho de no utilizar la máquina
virtual de Java (aparte de posibles aspectos legales y otros que podamos
imaginarnos) es la necesidad de optimizar al máximo los recursos y enfocar el
funcionamiento de los programas hacia un entorno de escasos recursos de
memoria, procesador y almacenamiento como es el que se tiene en los teléfonos.
El interprete toma los
archivos generados por las clases Java y los combina en uno o más archivos
ejecutables Dalvik (. dex), los cuales a su vez son comprimidos en un sólo
fichero .apk (Android Package) en el dispositivo.
De esta
forma, reutiliza la información duplicada por múltiples archivos .class,
reduciendo así la necesidad de espacio (sin comprimir) a la mitad de lo que
ocuparía un archivo .
No hay comentarios:
Publicar un comentario