lunes, 30 de abril de 2012

Política de eliminación de procesos en Android

Cada aplicación Android se ejecuta en su propio proceso. Este proceso se crea cada vez que una aplicacion necesita ejecutar parte de su código y seguirá existiendo hasta que la aplicación finalice o hasta que el sistema necesite utilizar parte de sus recursos para otra aplicacion considerada prioritaria.

Entonces se debe de saber como los componentes en Android determinan e influyen en el ciclo de vida de la aplicacion . No usar componentes correctamente a la hora de construir una aplicacion puede significar que el sistema los termine cuando en realidad esta haciendo una tarea importante para el usuario . Entonces Android por eso construye una jerarquía donde evalúa los componentes que están ejecutándose y el estado de los mismos en orden de importancia estarían de esta manera.

Los procesos en primer plano : Son los necesarios para lo que el usuario este haciendo en ese momento . Como se sabe que se esta ejecutando en primer plano pues si cumple alguna de las siguientes condiciones , que tiene un componente Activity  ejecutándose con el que el usuario esta interactuando, tiene un componente Broadcast Intent Receiver  ejecutándose , los que tengan un componente Service ejecutandose en el momento.

Solo debería de haber algunos procesos en el sistema idealmente y su eliminación se debe dar únicamente cuando la falta de recursos impida que se siga ejecutando.

Existen también los procesos visibles que son los que contienen un componente Activity visible en pantalla pero no con el foco de actividad en ese momento.

Procesos de servicio , son aquellos procesos que tienen un componente Service  y se están ejecutando en background , que aunque no sean visibles directamente al usuario desempeñan tareas si percibidas por este.

Procesos en segundo plano son los que tiene un componente Activity que no son visibles al usuario y estos procesos no tienen una importancia directa para el usuario en ese momento.

Procesos vacíos que son los que ya no ejecutan ninguna actividad pero que se mantiene en memoria para agilizar una posible nueva llamada por parte del usuario.

Como dije Android utiliza una jerarquía que es esta y según esta  Android prioriza los procesos existentes en el sistema y decide cuales han de ser eliminados con el fin de liberar recursos y poder lanzar la aplicacion requerida.

Ademas Android también permite que el usuario manipule los procesos y los termine cuando el desee mediante distintas aplicaciones esto es una gran ventaja ya que como se menciono anteriormente Android prioriza los procesos y si decide que un proceso es importante lo sigue manteniendo activo , entonces el usuario podría eliminarlo fácilmente para liberar mas recursos.

Aquí podemos ver lo que les menciono anteriormente donde el mismo usuario puede decidir que proceso o aplicacion desea que se este ejecutando y cuales no.


1 comentario: