Memoria virtual android
Upcoming SlideShare
Loading in...5
×
 

Memoria virtual android

on

  • 461 views

 

Statistics

Views

Total Views
461
Views on SlideShare
461
Embed Views
0

Actions

Likes
0
Downloads
7
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Memoria virtual android Memoria virtual android Document Transcript

  • 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
  • Memoria virtual en Android Android 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.
  • 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.
  • 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
  • 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.