Tabla de contenidos
Windows permite que las aplicaciones de escritorio sigan ejecutándose, estén visibles o no, mientras que el iOS de Apple solo permite que las aplicaciones realicen algunas tareas limitadas en segundo plano. Android se encuentra en algún punto intermedio: las aplicaciones que se ejecutan en primer plano tienen prioridad, pero las aplicaciones tienen mucha más libertad para ejecutarse en segundo plano que en iOS.
Veremos exactamente cómo Android administra las aplicaciones y los procesos que se ejecutan en su teléfono o tableta, desmitificando lo que sucede en segundo plano.
La jerarquía del ciclo de vida del proceso
Un proceso en Android puede estar en uno de cinco estados diferentes en un momento dado, del más importante al menos importante:
- 1. Proceso de primer plano : la aplicación que está utilizando se considera el proceso de primer plano. Otros procesos también pueden considerarse procesos en primer plano, por ejemplo, si están interactuando con el proceso que está actualmente en primer plano. Hay solo unos pocos procesos en primer plano en un momento dado.
- 2. Proceso visible : un proceso visible no está en primer plano, pero sigue afectando lo que ve en su pantalla. Por ejemplo, el proceso de primer plano puede ser un cuadro de diálogo que le permite ver una aplicación detrás de él; la aplicación visible en segundo plano sería un proceso visible.
- 3. Proceso de servicio : un proceso de servicio no está vinculado a ninguna aplicación que esté visible en su pantalla. Sin embargo, está haciendo algo en segundo plano, como reproducir música o descargar datos en segundo plano. Por ejemplo, si comienza a reproducir música y cambia a otra aplicación, la reproducción de música en segundo plano se gestiona mediante un proceso de servicio.
- 4. Proceso en segundo plano : los procesos en segundo plano no son visibles actualmente para el usuario. No tienen ningún impacto en la experiencia de usar el teléfono. En un momento dado, se están ejecutando muchos procesos en segundo plano. Puede pensar en estos procesos en segundo plano como aplicaciones «en pausa». Se guardan en la memoria para que pueda volver a usarlos rápidamente cuando vuelva a ellos, pero no están usando un valioso tiempo de CPU u otros recursos que no son de memoria.
- 5. Proceso vacío : un proceso vacío ya no contiene datos de la aplicación. Se puede guardar con fines de almacenamiento en caché para acelerar el lanzamiento de aplicaciones más tarde, o el sistema puede eliminarlo según sea necesario.
Por ejemplo, digamos que enciende su teléfono y abre una aplicación de música. Mientras lo usa, la aplicación de música será un proceso en primer plano. Cuando comience a reproducir música y salga de la aplicación de música, la música seguirá reproduciéndose como un proceso de servicio.
Veamos Angry Birds como otro ejemplo. Angry Birds sería un proceso en primer plano mientras lo jugabas. Cuando sales de Angry Birds e ingresas a la aplicación Gmail para ver tu correo electrónico, Angry Birds se convierte en un proceso en segundo plano (porque no tiene que hacer nada en segundo plano), mientras que Gmail se convierte en el proceso en primer plano. Cuando vuelva a Angry Birds, se convertirá en su proceso de primer plano y el juego se reanudará rápidamente. Angry Birds no estaba usando recursos en segundo plano, aparte de algo de RAM, pero se reanuda rápidamente porque permaneció en caché y listo para reanudar.
Android gestiona procesos automáticamente
Android hace un buen trabajo al administrar estos procesos automáticamente, por lo que no necesita un asesino de tareas en Android .
Cuando Android necesita más recursos del sistema, comenzará a eliminar primero los procesos menos importantes. Android comenzará a eliminar los procesos vacíos y en segundo plano para liberar memoria si se está agotando. Si necesita más memoria, por ejemplo, si está jugando un juego particularmente exigente en un dispositivo sin mucha RAM, Android comenzará a interrumpir los procesos de servicio, por lo que es posible que se detenga la transmisión de música y las descargas de archivos.
En la mayoría de los casos, Android hace todo esto sin que tengas que preocuparte por ello. Android usa inteligentemente la RAM de su dispositivo para almacenar en caché aplicaciones y otros datos, porque no tiene sentido dejar su RAM vacía .
Por supuesto, Android ofrece a las aplicaciones tanta flexibilidad que tienen espacio para comportarse mal. Por ejemplo, una aplicación mal codificada podría iniciar un proceso de servicio que permanece ejecutándose en segundo plano todo el tiempo, consumiendo todo el tiempo de su CPU y disminuyendo drásticamente la duración de la batería.
¡Una cosa interesante que notará en aplicaciones antivirus como Avast! para Android es que la aplicación antivirus utiliza un icono de notificación. si intenta deshabilitar el icono de notificación, Avast! lo recomendaré en contra. Al tener un icono de notificación visible, Avast! se convierte en una aplicación de mayor prioridad, lo que evita que Android la considere una aplicación en segundo plano y la mate.
Las aplicaciones de Android pueden comenzar en respuesta a eventos
Las aplicaciones de Android también pueden iniciarse en respuesta a eventos. Por ejemplo, un desarrollador podría programar su aplicación para que se ejecute automáticamente al inicio y ejecute un servicio en segundo plano. Las aplicaciones pueden comenzar en respuesta a una variedad de otros eventos, como cuando toma una foto, cuando cambia su conexión de datos, etc. Esto permite que las aplicaciones realicen acciones en respuesta a eventos sin ejecutarse constantemente en segundo plano.
Gestión de procesos
No debería necesitar administrar los procesos manualmente, pero hay algunas formas de hacerlo si lo desea. Puede utilizar el menú multitarea en Android 4.0 y versiones posteriores para realizar una gestión básica de procesos. Para acceder a él, toque el botón multitarea dedicado en los dispositivos Nexus . En otros dispositivos Android, es posible que deba tocar dos veces o mantener presionado el botón Inicio.
Es probable que las aplicaciones que se muestran en el menú se encuentren en estado de «proceso en segundo plano». Puede matarlos deslizando una aplicación hacia la izquierda o hacia la derecha, lo que la eliminará de la memoria de su dispositivo. Esto no debería ser necesario, pero puede ayudar cuando desee eliminar rápidamente una aplicación, tal vez no se esté portando bien.
También puede ir a la pantalla de Configuración, tocar Aplicaciones, tocar una aplicación y usar el botón Forzar detención para eliminar una aplicación que se comporte mal.
Android se basa en Linux y cada aplicación de Android se asigna a una ID de usuario de Linux diferente, o cuenta de usuario. Esto aísla las aplicaciones entre sí. Si rooteas tu dispositivo, las aplicaciones pueden escapar de los entornos sandbox de sus usuarios y ejecutarse con privilegios de root .
Crédito de la imagen: JD Hancock en Flickr