Dalvik es la máquina virtual usada en los dispositivos
Android (DalvikVM), la cual está basada en
registro, diseñada y escrita por "Dan Bornstein" y algunos otros ingenieros de
Google, la cual tiene una serie de características que la
diferencian de las máquinas virtuales JAVA. Las aplicaciones Android están
hechas en el lenguaje de programación java, pero usan un bytecode diferente al
resto de aplicaciones creadas con las máquinas virtuales anteriores.
Dalvik
VM es un intérprete que sólo ejecuta los archivos ejecutables con formato
.dex (Dalvik Executable). Este formato está optimizado para el
almacenamiento eficiente de la memoria, lo cual consigue delegando en el kernel
la gestión de hilos (multithreading), de memoria y de procesos.
Características de Dalvik
:) El bytecode generado, primero es
transformado al bytecode de Java y posteriormente se transforma en el
usado por Android. Es decir, primero son generados los .class típicos de
JAVA, y posteriormente se transforman al tipo de archivo .dex (dalvik
executable). Estos archivos dex son comprimidos en los conocidos APK
(Android Package).
:) Está diseñada para ejecutar
varias instancias de la propia máquina simultáneamente.
:) Optimizada
para necesitar poca memoria.
:) Se
basa en registros en vez de en pilas
aprovechando así el mejor rendimiento de los móviles con estos.
:) Está distribuida como
software libre, usando la licencia Apache.
La
herramienta "dx" incluida en el SDK de Android permite
transformar las clases compiladas (.class) por un compilador de lenguaje
Java en formato .dex.
La
máquina virtual de Dalvik 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 .jar.
Android
proporciona una biblioteca de C optimizada para acceder a la base de datos SQLite,
pero esta biblioteca está encapsulada en un nivel superior del API de Java.
No hay comentarios:
Publicar un comentario