12
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 1

Gestion de procesos Android

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Gestion de procesos 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

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

1

Page 2: Gestion de procesos Android

INTRODUCCIÓN

AndroidSolució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.

2

Page 3: Gestion de procesos Android

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.

Android runtime:

Core libraries: 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 procesosAndroid 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

3

Page 4: Gestion de procesos Android

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:

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

4

Page 5: Gestion de procesos Android

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

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

5

Page 6: Gestion de procesos Android

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 vidaEl 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.

Primer plano procesoUn 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.

6

Page 7: Gestion de procesos Android

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 VisibleUn 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.

Servicio de procesoUn 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 procesoUn 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

7

Page 8: Gestion de procesos Android

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íoUn 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.

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

8