Dalvik - Android
-
Upload
jorge-casariego -
Category
Documents
-
view
73 -
download
0
description
Transcript of 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.
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.
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.