memoria virtual android

6
UNIVERSIDAD TECNICA PARTICULAR DE LOJA La Universidad Católica de Loja Escuela de Ciencias de la Computación Titulación de Sistemas Informáticos y Computación Memoria virtual en Android Integrantes: Freddy Vera Carlos Ojeda Francisco Vargas Docentes: Fernanda Maricela Soto Guerrero Fecha: 25/03/13 Periodo académico Abril 2013 - Agosto 2013

Upload: carlos-francisco-ojeda-urena

Post on 04-Dec-2014

558 views

Category:

Technology


10 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Memoria virtual android

UNIVERSIDAD TECNICA PARTICULAR DE LOJA

La Universidad Católica de Loja

Escuela de Ciencias de la Computación

Titulación de Sistemas Informáticos y Computación

Memoria virtual en Android

Integrantes: Freddy Vera

Carlos Ojeda

Francisco Vargas

Docentes: Fernanda Maricela Soto Guerrero

Fecha: 25/03/13

Periodo académico

Abril 2013 - Agosto 2013

Page 2: Memoria virtual android

Memoria virtual en AndroidAndroid utiliza una máquina virtual propia llamada Dalvik, que ha sido diseñada para

optimizar la memoria y los recursos de hardware en el entorno de los teléfonos móviles.

A diferencia de la máquina virtual de Java, basada en el uso de pilas, la máquina virtual

Dalvik está basada en registros.

¿Cómo funciona Dalvik?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. 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.

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”. Hay que decir que esta 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. 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.

Page 3: Memoria virtual android

Otra cosa interesante, 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. Aún así, debes de tener presente que aunque es posible hacer esto, sólo en

algunas ocasiones resultará completamente ventajoso.

¿Cuáles son las diferencias entre Dalvik y la 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.

Aunque utilizamos el lenguaje Java para programar 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.

Entender Prioridad de aplicaciones y Estados del Proceso

El orden en el que se matan los procesos para reclamar los recursos se determina por

la prioridad de las aplicaciones alojadas. La prioridad de una solicitud es igual a su

componente de mayor prioridad.

Page 4: Memoria virtual android

Cuando dos aplicaciones tienen la misma prioridad, el proceso que ha estado en una

prioridad más baja más larga será matado primero. Prioridad del proceso también se ve

afectada por las dependencias entre procesos, si una aplicación tiene una dependencia

en un servicio o proveedor de contenidos suministrados por una segunda aplicación, la

aplicación secundaria tendrá al menos una prioridad tan alta como la aplicación que

soporta.

Todas las aplicaciones Android seguirán funcionando y en la memoria hasta que el

sistema necesita de sus recursos para otras aplicaciones.

Es importante estructurar correctamente su solicitud para asegurarse de que su

prioridad es apropiada para el trabajo que está haciendo. Si no lo hace, su solicitud

podría ser asesinada, mientras que está en el medio de algo importante.

La siguiente lista detalla cada uno de los estados de la aplicación se muestra en la

figura, explicando cómo el estado está determinado por los componentes de la

aplicación que lo componen:

Procesos activos procesos activos (en primer plano) son las que albergan las

aplicaciones con los componentes actualmente interactuando con el usuario. Estos son

Page 5: Memoria virtual android

los procesos de Android está tratando de mantenerse receptivo mediante la

reivindicación de los recursos. En general, existen muy pocos de estos procesos, y los

matarán sólo como último recurso.

Procesos activos incluyen:

Las actividades en un estado "activo", es decir, están en el primer plano y

responder a eventos de usuario. Usted explorará los estados de actividad con

mayor detalle más adelante en este capítulo.

Actividades, Servicios, o receptores de radiodifusión que en la actualidad se

están ejecutando un controlador de eventos OnReceive.

Los servicios que se están ejecutando una onStart, onCreate o controlador de

eventos OnDestroy.