SlideShare ist ein Scribd-Unternehmen logo
1 von 5
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srt
Carlos Solano
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
ALASBLANKS
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativos
Carolina Cols
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
ayreonmx
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores
JUANR1022
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.
Carlos Solano
 

Was ist angesagt? (20)

Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srt
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
 
Sistemas Operativos Moviles, Android y IOs
Sistemas Operativos Moviles, Android y IOsSistemas Operativos Moviles, Android y IOs
Sistemas Operativos Moviles, Android y IOs
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivos
 
Sistema Operativo Distribuido
Sistema Operativo DistribuidoSistema Operativo Distribuido
Sistema Operativo Distribuido
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativos
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesos
 
Sistemas Por Capas
Sistemas Por CapasSistemas Por Capas
Sistemas Por Capas
 
Gestion de memoria_en_android
Gestion de memoria_en_androidGestion de memoria_en_android
Gestion de memoria_en_android
 
MEMORIA DRAM
MEMORIA DRAMMEMORIA DRAM
MEMORIA DRAM
 
Ciclo de instrucción
Ciclo de instrucciónCiclo de instrucción
Ciclo de instrucción
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores
 
Estructura+del+sistema+mac+os+x
Estructura+del+sistema+mac+os+xEstructura+del+sistema+mac+os+x
Estructura+del+sistema+mac+os+x
 
Hilos con Posix
Hilos con PosixHilos con Posix
Hilos con Posix
 
Planificacion de procesos
Planificacion de procesosPlanificacion de procesos
Planificacion de procesos
 
Planificacion cpu
Planificacion cpuPlanificacion cpu
Planificacion cpu
 
Sistema de archivos HPFS
Sistema de archivos HPFSSistema de archivos HPFS
Sistema de archivos HPFS
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.
 

Ähnlich wie Memoria virtual android

Taller de prog. en android
Taller de prog. en androidTaller de prog. en android
Taller de prog. en android
Karla Silva
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-android
Nilson Gongora
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
ERWIN AGUILAR
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
Leo31146695
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-android
Carlitos Sosa
 
Curso android desarrollo de aplicaciones moviles
Curso android   desarrollo de aplicaciones movilesCurso android   desarrollo de aplicaciones moviles
Curso android desarrollo de aplicaciones moviles
Jose Antonio Prieto
 

Ähnlich wie Memoria virtual android (20)

Taller de prog. en android
Taller de prog. en androidTaller de prog. en android
Taller de prog. en android
 
Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1
 
Androidoriiginal
AndroidoriiginalAndroidoriiginal
Androidoriiginal
 
Desarrollo android - 2 - arquitectura del sistema
Desarrollo android   - 2 - arquitectura del sistemaDesarrollo android   - 2 - arquitectura del sistema
Desarrollo android - 2 - arquitectura del sistema
 
Evidencias
EvidenciasEvidencias
Evidencias
 
Qué es java
Qué es javaQué es java
Qué es java
 
App inventor
App inventorApp inventor
App inventor
 
"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1
 
Android
AndroidAndroid
Android
 
Proyecto final pdm
Proyecto final pdmProyecto final pdm
Proyecto final pdm
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-android
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
 
Guía Android
Guía AndroidGuía Android
Guía Android
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
 
Mdw guia-android
Mdw guia-androidMdw guia-android
Mdw guia-android
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-android
 
J2 me o java me
J2 me o java meJ2 me o java me
J2 me o java me
 
Documento de android
Documento de androidDocumento de android
Documento de android
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
 
Curso android desarrollo de aplicaciones moviles
Curso android   desarrollo de aplicaciones movilesCurso android   desarrollo de aplicaciones moviles
Curso android desarrollo de aplicaciones moviles
 

Mehr von Carlos Francisco Ojeda Ureña (9)

Gestion de procesos Android
Gestion de procesos AndroidGestion de procesos Android
Gestion de procesos Android
 
Sincronizacion de procesos_android
Sincronizacion de procesos_androidSincronizacion de procesos_android
Sincronizacion de procesos_android
 
Proteccion android
Proteccion androidProteccion android
Proteccion android
 
Sistemas operativos moviles Android
Sistemas operativos moviles  AndroidSistemas operativos moviles  Android
Sistemas operativos moviles Android
 
Cuestiones de repaso_cap_31_utpl
Cuestiones de repaso_cap_31_utplCuestiones de repaso_cap_31_utpl
Cuestiones de repaso_cap_31_utpl
 
Cuestiones de repaso_capitulo_20
Cuestiones de repaso_capitulo_20Cuestiones de repaso_capitulo_20
Cuestiones de repaso_capitulo_20
 
Cuestiones de repaso_capitulo_29
Cuestiones de repaso_capitulo_29Cuestiones de repaso_capitulo_29
Cuestiones de repaso_capitulo_29
 
Cuestiones de repaso_cap_24
Cuestiones de repaso_cap_24Cuestiones de repaso_cap_24
Cuestiones de repaso_cap_24
 
Deber métodos
Deber métodosDeber métodos
Deber métodos
 

Kürzlich hochgeladen

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Kürzlich hochgeladen (10)

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

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.