Procesos y ciclo de vida de las aplicaciones en Android

Como desarrollador de Android, si uno no conoce el ciclo de vida de la aplicación de Android o no tiene un conocimiento profundo al respecto, hay muchas posibilidades de que la aplicación no tenga una buena experiencia de usuario. No tener un conocimiento adecuado del ciclo de vida de la aplicación no afectará el funcionamiento de esa aplicación, pero conducirá a una mala experiencia del usuario. Tomemos un ejemplo en el que el usuario está usando la aplicación, que consume una gran cantidad de batería y, por otro lado, hay otra aplicación que brinda las mismas funcionalidades que ofrece la aplicación anterior, entonces hay muchas posibilidades de que el usuario cambiará a una aplicación posterior y no utilizará la aplicación anterior.

Este es un tema importante y una necesidad obligatoria para tener un conocimiento adecuado de los procesos en el ciclo de vida de la aplicación y Android y cómo los diferentes procesos pueden afectar el estado de la aplicación. El conocimiento del ciclo de vida de la aplicación en Android también es imprescindible porque, sin tener el conocimiento adecuado, muchas veces el proceso puede bloquearse mientras se realiza un trabajo importante que, en última instancia, dará lugar a una mala impresión de la aplicación en los usuarios. El ciclo de vida del proceso de la aplicación no está controlado únicamente por la aplicación en sí, sino que la vida útil del proceso de la aplicación depende de varios factores, como la memoria que toma la aplicación, la memoria disponible en el sistema, qué tan importante es el proceso desde la perspectiva de el usuario, cuánto tiempo había pasado desde que el usuario no utilizó esa aplicación.

Importancia de tener conocimiento del proceso y el ciclo de vida de la aplicación

Es necesario conocer el ciclo de vida de la aplicación, ya que no afectará el funcionamiento de la aplicación, pero afectará la experiencia del usuario. Digamos que el usuario tiene dos opciones en las que el usuario tiene la opción de elegir una aplicación de dos, en las que ambas aplicaciones ofrecen la misma funcionalidad e involucran el mismo tipo de tarea, pero una aplicación consume más batería que la otra, por lo que, seguramente, el usuario se decantará por la aplicación que consuma menos batería. Por lo tanto, los desarrolladores deben comprender que la aplicación no contiene recursos y servicios cuando no está en uso, ya que puede ser la causa de un mayor uso de la batería. Por lo tanto, los desarrolladores deben manejar cada estado de aplicación de la aplicación de Android y deben liberar los recursos cuando la aplicación está en segundo plano.

Función de caché de LRU en la optimización de aplicaciones de Android

Como se sabe, un dispositivo Android en particular tiene una capacidad de almacenamiento y velocidad de procesamiento limitadas, pero dado que hay tantas aplicaciones ejecutándose en el dispositivo del usuario, se vuelve un desafío para el sistema operativo Android administrar el recurso adecuadamente para que ninguno de los recursos se convierta en un déficit de recursos. Entonces, el sistema operativo Android empuja la aplicación menos utilizada en un caché llamado Caché LRU (Usado menos recientemente), si la aplicación no se ha utilizado durante mucho tiempo, se empujará a la cola de la LRU y estará presente en el frente de la cola. Si la aplicación entra en uso en un momento cercano, estará cerca del final de la cola, y si la aplicación se usó más recientemente, estará presente al final de la cola. Por ejemplo, si el usuario no ha utilizado Facebook durante mucho tiempo, entonces la aplicación de Facebook estará presente al principio de la cola y si supongamos que el usuario ha usado WhatsApp recientemente, entonces estará presente al final de la cola de LRU Cache. La cola de caché de LRU se puede representar en forma de diagrama como:

La prioridad de los procesos en la aplicación de Android

Para determinar qué proceso debe eliminarse para una administración adecuada de la memoria y la batería, el sistema operativo Android mantiene una jerarquía en la que todos los procesos se colocan en orden de prioridad. La menor prioridad es el proceso que se puede eliminar primero cuando el sistema quiere liberar algún recurso. Android usa un conjunto de reglas y regulaciones para decidir la prioridad de los procesos en función del estado de ejecución de las aplicaciones. A continuación se muestran los estados de proceso que un proceso puede tener en cualquier momento en las aplicaciones de Android. La prioridad de estos procesos disminuye de arriba hacia abajo en el orden en que se enumeran.

1. Proceso de primer plano

Un proceso en primer plano es un proceso con el que el usuario está interactuando actualmente y usándolo. Se considera que un proceso está en primer plano si se cumple alguna de las siguientes condiciones:

  • Si el proceso está ejecutando una actividad con la que el usuario está interactuando
  • Si tiene un receptor de transmisión que se encuentra actualmente en ejecución para recibir cualquier actualización del sistema.

Ejemplo: imagine que el usuario está usando Whatsapp, por lo que se dirá que la aplicación Whatsapp está en primer plano. Este proceso es de la más alta prioridad y el sistema solo puede eliminarlos si la memoria es tan baja que incluso este proceso no puede continuar con su ejecución.

2. Proceso visible

Un proceso visible es un proceso cuando la actividad puede ser visible para el usuario. El usuario no interactúa directamente con este proceso, ya que la actividad correspondiente a este proceso estaría parcialmente cubierta por otra actividad y el proceso estará en el estado de ciclo de vida onPause() . Este proceso no se puede eliminar a menos que haya tanta falta de memoria en el sistema que la ejecución de estos procesos no pueda ser posible. Eliminar estos procesos creará un impacto negativo en la experiencia del usuario, ya que un usuario puede ver la actividad correspondiente a este proceso. Estos procesos se matarían solo cuando mantenerlos vivos hiciera imposible que el proceso en primer plano continuara con su ejecución.

Ejemplo: cuando alguna aplicación necesita permiso, como acceso a la cámara, acceso al almacenamiento, etc., aparecerá un mensaje o cuadro de diálogo y solicitará el permiso requerido. Entonces, en este momento, el proceso correspondiente a la actividad de la aplicación que se está ejecutando anteriormente pasará al estado visible. 

3. Proceso de servicio

Se dice que un proceso es un proceso de servicio si está en estado de ejecución y no es un proceso en primer plano ni un proceso visible. Estos procesos no son directamente visibles para el usuario de la aplicación. Este proceso es útil para las aplicaciones que realizan tareas en segundo plano, como la carga o descarga de datos de red en segundo plano. El sistema mantendrá vivo el proceso de servicio hasta que sea imposible para el sistema mantener el proceso en primer plano y el proceso visible en ejecución.

Ejemplo: Cargar un PDF en Whatsapp desde el escritorio es un proceso de servicio que se realiza en segundo plano.

4. Proceso de fondo

Un estado de fondo en el que el sistema llama al método de ciclo de vida onStop() de Android. Supongamos que el usuario está usando una aplicación y de repente presiona el botón de inicio, por lo que debido a esta acción, el proceso pasa del estado de primer plano al estado de fondo. Cuando la aplicación pasa del estado de primer plano al estado de fondo, va a la cola de caché de LRU y se colocará al frente de la cola. Cuando el usuario regrese a esa aplicación, el proceso volverá del estado de fondo al estado de primer plano. Por lo tanto, tener conocimiento del proceso y el ciclo de vida de la aplicación en Android, junto con cómo los procesos pueden decidir el tiempo del ciclo de vida de la aplicación, es imprescindible para un desarrollador de Android, lo que puede conducir a una buena experiencia de usuario.

Uso de la batería del teléfono cuando se usa el mismo tipo de aplicaciones

BatteryUsagePhone

A partir de la imagen de arriba, se puede decir que las aplicaciones que ofrecen el mismo tipo de servicios conducen a casi la misma cantidad de consumo de batería. (Considere que el tiempo de uso de la aplicación es igual) En la imagen de arriba, se puede ver que como YouTube y Google se encuentran, tanto Video Streaming como Linkedin y Whatsapp son los mismos tipos de aplicaciones de mensajería, aunque un poco diferentes, pero estas aplicaciones utilizan el mismo tipo de transporte de datos y servicios, por lo que consumen la misma cantidad de batería.

Publicación traducida automáticamente

Artículo escrito por lavishgarg26 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *