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