SlideShare una empresa de Scribd logo
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.

Más contenido relacionado

PDF
Sistemas Operativos Moviles, Android y IOs
PPTX
Algoritmo del baquero
PDF
Estrategias para utilizar android con seguridad
PPTX
Gestion E/S Sistemas Operativos I
DOCX
Gestion de procesos Android
DOCX
Gestion de memoria_en_android
PPTX
Ejercicios interbloqueo
Sistemas Operativos Moviles, Android y IOs
Algoritmo del baquero
Estrategias para utilizar android con seguridad
Gestion E/S Sistemas Operativos I
Gestion de procesos Android
Gestion de memoria_en_android
Ejercicios interbloqueo

La actualidad más candente (20)

PPTX
Sqlite Base de Datos
PPTX
Gestion Procesos, Sistemas Operativos
DOCX
DIAGNOSTICO DEL SISTEMA OPERATIVO
PPTX
Arquitectura y caracteristicas de los sistemas operativos windows
PPTX
Gestión de memoria
PPTX
Gestion de memoria
PDF
Google y sus servidores
PPTX
Sistemas operativos-para-servidores
PPTX
Memoria virtual
PPTX
Acceso Directo a la Memoria - DMA
PDF
Gestion entrada y salida
PPTX
Arquitectura de Bases de Datos Oracle
PPTX
Cuestionario de Active Directory
PPTX
Tecnicas de Administracion de Memoria
DOCX
tarea 6 sistemas digitales y perifericos.docx
DOCX
Conceptualización de tecnología orientada a objetos
PDF
Comandos basicos en linux
PDF
Ejercicios sistemas operativos I
PPTX
Administración de procesos y del procesador
PDF
Modelo Orientado A Objetos
Sqlite Base de Datos
Gestion Procesos, Sistemas Operativos
DIAGNOSTICO DEL SISTEMA OPERATIVO
Arquitectura y caracteristicas de los sistemas operativos windows
Gestión de memoria
Gestion de memoria
Google y sus servidores
Sistemas operativos-para-servidores
Memoria virtual
Acceso Directo a la Memoria - DMA
Gestion entrada y salida
Arquitectura de Bases de Datos Oracle
Cuestionario de Active Directory
Tecnicas de Administracion de Memoria
tarea 6 sistemas digitales y perifericos.docx
Conceptualización de tecnología orientada a objetos
Comandos basicos en linux
Ejercicios sistemas operativos I
Administración de procesos y del procesador
Modelo Orientado A Objetos
Publicidad

Similar a Memoria virtual android (20)

PDF
"Android de la A a la Z" -- Unidad 1
PPT
Sistema operativo android
DOCX
Android de la A a la Z - Unidad 1
PDF
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
PDF
Android estructura del Sistema Operativo
PPT
Taller de Android
PPTX
Androidoriiginal
PDF
Curso android 01 leccion - teoria
DOCX
Android.docx
PDF
Documento de android
PPTX
Sistema operativo android
PDF
android evolution
PPTX
Introducción a la Plataforma para Móviles Android
PPTX
Exposición - Android
PDF
Android idelma
ODP
Android
"Android de la A a la Z" -- Unidad 1
Sistema operativo android
Android de la A a la Z - Unidad 1
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
Android estructura del Sistema Operativo
Taller de Android
Androidoriiginal
Curso android 01 leccion - teoria
Android.docx
Documento de android
Sistema operativo android
android evolution
Introducción a la Plataforma para Móviles Android
Exposición - Android
Android idelma
Android
Publicidad

Más de Carlos Francisco Ojeda Ureña (8)

DOCX
Sincronizacion de procesos_android
DOCX
Proteccion android
DOCX
Sistemas operativos moviles Android
DOCX
Cuestiones de repaso_cap_31_utpl
DOCX
Cuestiones de repaso_capitulo_20
DOCX
Cuestiones de repaso_capitulo_29
DOCX
Cuestiones de repaso_cap_24
DOCX
Sincronizacion de procesos_android
Proteccion android
Sistemas operativos moviles Android
Cuestiones de repaso_cap_31_utpl
Cuestiones de repaso_capitulo_20
Cuestiones de repaso_capitulo_29
Cuestiones de repaso_cap_24

Último (20)

PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
taller de informática - LEY DE OHM
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
Presentación de Redes de Datos modelo osi
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
CyberOps Associate - Cisco Networking Academy
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
Maste clas de estructura metálica y arquitectura
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Presentación PASANTIAS AuditorioOO..pptx
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Influencia-del-uso-de-redes-sociales.pdf
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
introduccion a las_web en el 2025_mejoras.ppt
taller de informática - LEY DE OHM
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
REDES INFORMATICAS REDES INFORMATICAS.pptx
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Calidad desde el Docente y la mejora continua .pdf
Power Point Nicolás Carrasco (disertación Roblox).pptx
Presentación de Redes de Datos modelo osi
historia_web de la creacion de un navegador_presentacion.pptx
CyberOps Associate - Cisco Networking Academy
Plantilla para Diseño de Narrativas Transmedia.pdf
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Maste clas de estructura metálica y arquitectura

Memoria virtual android

  • 1. 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
  • 2. 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.
  • 3. 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.
  • 4. 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
  • 5. 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.