Gestion de procesos Android

4,423 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,423
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
166
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Gestion de procesos Android

  1. 1. 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 Gestión de Procesos Integrantes: Freddy Vera Carlos Ojeda Francisco Vargas Cristian Lluay Docentes: Fernanda Maricela Soto Guerrero Fecha: 01/04/13 Período académico Abril 2013 - Agosto 2013
  2. 2. 2 INTRODUCCIÓN Android Solución software completa para dispositivos móviles. Engloba:  Sistema operativo (basado en Linux).  Entorno de ejecución basado en Java.  Librerías de bajo y medio nivel.  Conjunto inicial de aplicaciones para el usuario final. Historia  2005: Google compra Android Inc.  2007: se crea Open Handset Alliance (OHA) formada por 47 compañías (fabricantes hw/sw y operadores). Objetivo: desarrollar estándares abiertos para dispositivos móviles: Producto principal: plataforma Android.  2009: 14 nuevas compañías se unen a OHA.  2011: nuevas compañías se unen a la alianza.  13 operadores móviles.  20 fabricantes de dispositivos.  18 compañías de semiconductores.  16 compañías de software.  10 compañías de comercialización. Arquitectura  Libraries: escritas en lenguaje C/C++  libc: cabeceras y funciones estándar de C.  Surface Manager: compone los diferentes elementos de navegación y ventanas en la pantalla.  OpenGL ES/ SGL: soporte a gráficos 3D y 2D.
  3. 3. 3  Media Framework: soporte a grabación y reproducción de múltiples formatos de audio y video.  SQLite: creación y gestión de bases de datos.  Free Type: trabajar con distintos tipos de fuentes.  SSL: soporte a comunicaciones seguras.  WebKit: soporte a aplicaciones tipo navegador.  Androidruntime: Corelibraries: permite que la funcionalidad disponible en las bibliotecas anteriores esté accesible desde Java. Dalvik VM: máquina virtual Java optimizada para dispositivos móviles.  Linux Kernel: Kernel de Linux 2.6. Incluye: drivers hardware, gestión de memoria, gestión de batería, gestión de procesos. Gestión de procesos Android OS es un sistema operativo desarrollado por Google para su uso en dispositivos móviles. Esto significa que ha sido diseñado para sistemas con poca memoria y un procesador que no es tan rápido como los procesadores de escritorio. Manteniendo las limitaciones en mente, la visión de Google para Android es que tendría un robusto conjunto de APIs de programación y una interfaz de usuario muy sensible. A fin de facilitar esta visión, se creó una capa de abstracción que permite a los desarrolladores de aplicaciones a ser agnóstico hardware en su diseño. Android está basado en el kernel de Linux, pero en realidad no es puramente una "distribución Linux". Un estándar de distribución de Linux tiene un sistema de ventanas nativo, glibc y algunas utilidades estándar. No tiene una capa de abstracción entre las aplicaciones de usuario y de las bibliotecas Android está basado en el kernel Linux 2.6. Hay importantes modificaciones que se han hecho en el núcleo, pero tiene el mismo núcleo. Usted podría preguntarse, si este tiene modificaciones significativas.  Modelos probados para la gestión de procesos y la gestión de memoria.  Permisos de seguridad basada modelo es probado.  Es de código abierto
  4. 4. 4 El sistema operativo Android está diseñado como un único usuario del sistema operativo, así que Android se aprovecha de esto y se ejecuta cada componente como un usuario distinto. Esto permite Android para usar el modelo de seguridad de Linux y mantener los procesos en su propia caja de arena. Android Procesos Descripción general del proceso de gestión La gestión de procesos en un sistema operativo típico implica muchas estructuras de datos y algoritmos complejos, pero no va mucho más allá del nivel de la gestión del proceso típico de estructura de datos. Android es similar en que en el nivel de base de las estructuras de control tienen el mismo aspecto. Similar a esto:
  5. 5. 5 Esta estructura de datos es administrada por una gestión de procesos estándar, que es algo como esto:  Android OS termina un proceso cuando no hay suficiente memoria para otros procesos  Todos los componentes de aplicaciones que se ejecutan en el proceso que se está terminando por el sistema operativo se destruyen  Un nuevo proceso se iniciará por aquellos componentes cuando estos componentes deben funcionar de nuevo  Android OS decide que procesa a finalizar en función de su importancia relativa para el usuario, por ejemplo, todos los componentes de un proceso no son visibles Terminación del proceso Los procesos pueden ser asesinados en un par de maneras discretas.  Una aplicación puede llamar a un método para matar procesos que tiene permiso para matar. Esto significa que si el proceso no es parte de la misma aplicación, no puede matar a otros procesos. En realidad se puede instalar conceder un permiso a la aplicación para matar a otras aplicaciones, pero esto es algo que no se suele hacer.  El sistema operativo Android tiene una cola utilizada menos recientemente que realiza un seguimiento de las aplicaciones que no se han utilizado. Si el sistema operativo empieza a quedarse sin memoria, matará al menos la aplicación utilizada recientemente. Hay
  6. 6. 6 también prioridad a las aplicaciones que el usuario está interactuando con, o servicios en segundo plano el usuario está interactuando. Procesos y subprocesos  Cada aplicación se ejecuta en su propio proceso y todos los componentes de la aplicación se ejecuten en ese proceso, de manera predeterminada  Todas las operaciones lentas y de bloqueo en una actividad se debe hacer en un nuevo hilo, para evitar la ralentización de la interfaz de usuario Cuando un componente de aplicación se inicia y la aplicación no tiene ningún otro componente en funcionamiento, el sistema Android inicia un nuevo proceso de Linux para la aplicación con un solo hilo de ejecución. De forma predeterminada, todos los componentes de la misma aplicación se ejecutan en el mismo proceso y subproceso (llamado el "principal" hilo). Si un componente de aplicación se inicia y que ya existe un proceso para dicha aplicación (porque otro componente de la aplicación existe), entonces el componente se inicia dentro de ese proceso y usa el mismo hilo de ejecución. Sin embargo, usted puede hacer arreglos para diferentes componentes de la aplicación se ejecute en procesos separados, y se pueden crear subprocesos adicionales para cualquier proceso. Procesos del ciclo de vida El sistema Android trata de mantener un proceso de aplicación para el mayor tiempo posible, pero con el tiempo necesario para eliminar los antiguos procesos para reclamar memoria para los procesos nuevos o más importantes. Para determinar qué procesos a seguir y que matar, el sistema coloca cada proceso en una "jerarquía de importancia", basada en los componentes que se ejecutan en el proceso y el estado de los componentes. Los procesos con el menor importancia se eliminan primero, luego los que tienen la importancia más baja siguiente, y así sucesivamente, según sea necesario para recuperar los recursos del sistema. Hay cinco niveles en la jerarquía de importancia. La siguiente lista presenta los diferentes tipos de procesos en orden de importancia (el primer proceso es más importante y es asesinado el pasado.
  7. 7. 7 Primer plano proceso Un proceso que se requiere para que el usuario está haciendo actualmente. Un proceso se considera en el primer plano, si cualquiera de las condiciones siguientes son verdaderas: Alberga una Activity que el usuario está interactuando con (la Activity 's onResume() método ha sido llamado). Alberga un Service que está destinado a la actividad que el usuario está interactuando. Alberga un Service que se ejecuta "en primer plano", el servicio ha llamado startForeground() . Alberga un Service que está ejecutando uno de sus devoluciones de llamada de ciclo de vida ( onCreate() , onStart() , o onDestroy() ). Alberga una BroadcastReceiver que está ejecutando su onReceive() método. Generalmente, sólo unos pocos existen procesos en primer plano en cualquier momento dado. Son muertos sólo como un último recurso, si la memoria no es tan bajo que no todos pueden seguir ejecutándose. Generalmente, en ese punto, el dispositivo ha alcanzado un estado de paginación de memoria, lo que eliminar algunos procesos en primer plano se requiere para mantener la interfaz de usuario sensible. Proceso Visible Un proceso que no tiene ningún componente de primer plano, pero todavía puede afectar lo que el usuario ve en la pantalla. Un proceso se considera que es visible si cualquiera de las condiciones siguientes son verdaderas: Alberga una Activity que no está en el primer plano, pero sigue siendo visible para el usuario (su onPause() método ha sido llamado). Esto podría ocurrir, por ejemplo, si la actividad de primer plano inició un diálogo, que permite la actividad anterior para ser visto detrás de él. Alberga un Service que está destinado a una visible (o primer plano) actividad. Un proceso visible se considera muy importante y no morirá a menos que esto es necesario para mantener todos los procesos en primer plano en ejecución.
  8. 8. 8 Servicio de proceso Un proceso que está en marcha un servicio que se ha iniciado con la startService() método y no están incluidos en ninguna de las dos categorías más altas. Aunque los procesos de servicio no están directamente relacionados con todo lo que el usuario ve, por lo general hacer las cosas que el usuario le interesan (como la reproducción de música en segundo plano o transferencia de datos en la red), por lo que el sistema sigue en funcionamiento a menos que no hay suficiente memoria para retenerlos junto con todos los procesos de primer plano y visibles. Antecedentes proceso Un proceso que mantiene una actividad que no es actualmente visible para el usuario (de la actividad onStop() método ha sido llamado). Estos procesos no tienen un impacto directo en la experiencia del usuario, y el sistema puede matar en cualquier momento para recuperar la memoria para un primer plano, visible, o proceso de servicio. Por lo general, hay muchos procesos fondo de funcionamiento, por lo que se mantienen en un LRU (menos utilizado recientemente) lista para asegurarse de que el proceso con la actividad que fue visto más recientemente por el usuario es el último en ser matado. Si una actividad práctica sus métodos de ciclo de vida correctamente, y guarda su estado actual, matando a su proceso no tendrá un efecto visible sobre la experiencia del usuario, ya que cuando el usuario se desplaza de nuevo a la actividad, la actividad restaura la totalidad de su estado visible. Ver la Actividades documento para obtener información acerca de cómo guardar y restaurar el estado. Proceso de vacío Un proceso que no se cumple ninguno de los componentes de aplicaciones activas. La única razón para mantener este tipo de proceso vivo es con fines de almacenamiento en caché para mejorar el tiempo de arranque la próxima vez que un componente necesita para funcionar en él. El sistema a menudo mata a estos procesos con el fin de equilibrar los recursos generales del sistema entre cachés de proceso y los cachés del núcleo subyacente.
  9. 9. 9 BIBLIOGRAFÍA  http://developer.android.com/guide/basics/what-is-android.html  http://coltf.blogspot.com/p/android-os-processes-and-zygote.html  http://developer.android.com/guide/components/processes-and-threads.html  http://es.slideshare.net/VladimirKulyukin/mobicom-on-android-process- managementdatasharingssf01

×