Entradas populares

viernes, 29 de mayo de 2015

Política de la eliminación de procesos


Cada aplicación Android se ejecuta en su propio proceso. Este proceso se crea cada vez que una aplicación 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 aplicación considerada prioritaria. Por ello, es importante saber cómo los componentes de una aplicación en Android (Activity, Broadcast Intent Receiver, Service y Content Provider) determinan e influyen en el ciclo de vida de la aplicación. No usar los componentes correctamente a la hora de construir una aplicación puede significar que el sistema operativo la termine cuando en realidad está haciendo una tarea importante para el usuario.

Android construye una jerarquía donde evalúa la clase de componentes que están ejecutándose y el estado de los mismos. En orden de importancia, serían los siguientes:

1. Procesos en primer plano: aquellos necesarios para lo que el usuario está haciendo en ese momento. Un proceso se encuadra en esa categoría si cumple alguna de las siguientes condiciones:

a. tiene un componente Activity ejecutándose, con la que el usuario está interactuando.
b. tiene un componente Broadcast Intent Receiver ejecutándose.
c. ha lanzado algún otro proceso que tiene un componente Service ejecutándose en el momento.

         Idealmente, sólo debería haber algunos de estos procesos en el sistema, y su eliminación debería darse únicamente en casos extremos en los que la falta de recursos impide siguen ejecutándolos todos.

2. Procesos visibles: aquellos procesos que contienen un componente Activity visible en la pantalla, pero no con el foco de actividad en ese momento.

3. Procesos de servicio: aquellos procesos que tienen un componente Service y que están ejecutándose en background. Aunque no sean visibles directamente al usuario, desempeñan tareas sí percibidas por este.

4. Procesos en segundo plano: procesos con un componente Activity, que no son visibles al usuario. Estos procesos no tienen una importancia directa para el usuario en ese momento.

5. Procesos vacíos: procesos que ya no ejecutan ninguna actividad, pero que se mantienen en memoria para agilizar una posible nueva llamada por parte del usuario.

Según esta jerarquía, Android prioriza los procesos existentes en el sistema y decide cuáles han de ser eliminados, con el fin de liberar recursos y poder lanzar la aplicación requerida.


No hay comentarios:

Publicar un comentario