Dalvik - Android

4
Dalvik - Android Dalvik es la maquina virtual que utiliza la plataforma de dispositivos móviles Android para ejecutar aplicaciones y código escrito en Java que se encuentra en la capa de Aplicación. Dalvik es un Sistema que entiende el código escrito en Java y lo convierte a un formato optimizado para móviles que consume menos recursos, está optimizada para requerir poca memoria y está diseñada para permitir ejecutar varias instancias de la maquina virtual simultáneamente, delegando en el Sistema Operativo subyacente el soporte de aislamiento de procesos, gestión de memorias e Hilos. A menudo se nombra a Dalvik como una maquina virtual de Java, pero esto no es estrictamente correcto, ya que el bytecode (Bydecode es el Código intermedio entre el código fuente y el código máquina) con el que opera no es Java bytecode. A diferencia de la maquina virtual de Java, basada en el uso de pilas, la máquina virtual Dalvik está basada en registros. Su objetivo fundamental es el mismo que cualquier maquina virtual, permitiendo que el código sea compilado a un bydecode independiente de la máquina en la que se va a ejecutar, y la máquina virtual interpreta este bydecode a la hora de ejecutar un programa.

description

Pequeña descripción sobre la máquina virtual utilizada por los dispositivos móviles Android

Transcript of Dalvik - Android

Page 1: Dalvik - Android

Dalvik - Android

Dalvik es la maquina virtual que utiliza la plataforma de dispositivos móviles Android para ejecutar aplicaciones y código escrito en Java que se encuentra en la capa de Aplicación.

Dalvik es un Sistema que entiende el código escrito en Java y lo convierte a un formato optimizado para móviles que consume menos recursos, está optimizada para requerir poca memoria y está diseñada para permitir ejecutar varias instancias de la maquina virtual simultáneamente, delegando en el Sistema Operativo subyacente el soporte de aislamiento de procesos, gestión de memorias e Hilos.

A menudo se nombra a Dalvik como una maquina virtual de Java, pero esto no es estrictamente correcto, ya que el bytecode (Bydecode es el Código intermedio entre el código fuente y el código máquina) con el que opera no es Java bytecode. A diferencia de la maquina virtual de Java, basada en el uso de pilas, la máquina virtual Dalvik está basada en registros. Su objetivo fundamental es el mismo que cualquier maquina virtual, permitiendo que el código sea compilado a un bydecode independiente de la máquina en la que se va a ejecutar, y la máquina virtual interpreta este bydecode a la hora de ejecutar un programa.

El hecho de no utilizar la máquina virtual de Java (aparte de posibles aspectos legales) 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.

La herramienta dx incluida en el SDK de Android permite transformar los archivos Class de Java compilados por un compilador Java al formato de archivos *.dex (Dalvik Executable). Dex es un formato optimizado para el almacenamiento eficiente y ejecución mapeable en memoria.

Page 2: Dalvik - Android

Dalvik 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. La Dalvik VM 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.

Fuente Imagen: http://gdroid.com.mx

Otra punto a tener en cuenta es que el hecho de que Dalvik funcione sobre un núcleo Linux implica que es posible escribir aplicaciones en C/C++ que funcionen directamente sobre el kernel.

El creador de Dalvik

Dalvik fue diseñada por Dan Bornstein con contribuciones de otros ingenieros de Google. El nombre Dalvik fue elegido por Dan en honor a Dalvík, un pueblo en Islandia donde vivieron antepasados suyos.

Para conocer un poco más la historia de Dan Bornstein podemos acceder a su página web personal en:

http://www.milk.com/home/danfuzz/

Dalvik vs JVM

La máquina virtual de Java como se dijo anteriormente se

basa en el uso de las pilas en cambio Dalvik utiliza los

registros, ya que los teléfonos móviles están optimizados

para la ejecución basada en los mismos.

Aunque se utilice el lenguaje Java para las aplicaciones

Android, el bytecode de Java no es ejecutable en un sistema Android. De igual forma, las

librerías Java que utiliza Android son ligeramente distintas a las utilizadas en Java Standard

Edition (Java SE) o en Java Mobile Edition (Java ME), guardando también características en

común.

Page 3: Dalvik - Android

Lo que llamamos en Java como “recolectar basura”, que no es otra cosa más que liberar el

espacio 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.

De igual forma, el hecho de que Android haga un uso extenso del lenguaje XML para definir las

interfaces gráficas y otros elementos, implica que estos archivos deben ser linkeados a la hora

de compilar y para que su conversión a bytecode pueda mejorar el rendimiento de nuestras

aplicaciones.

¿Que es el “Dalvik Cache” o cache Dalvik?

El cache Dalvik es una parte de la memoria RAM usada por el Núcleo Android para ejecutar

aplicaciones, guardando parte de la información almacenada para futuros usos sin necesidad

de iniciar todo el proceso de nuevo.

Como toda información guardada en memoria, con el tiempo acaba ocupando un espacio vital

en nuestro sistema y ralentizando las funciones básicas de forma innecesaria y son varias

aplicaciones borran de manera programada el Dalvik cache, como parte de los procesos de

limpieza del sistema pero otras no.

También es posible hacer la limpieza de manera

manual reiniciando nuestro dispositivo en modo

Recovery y una vez adentro se elije la opción borrado

dalvik. Una vez borrada la cache, al reiniciar el

dispositivo, esta tomará un tiempo más largo en

reiniciar ya que tendrá que reconstruir todo el cache de nuevo.