Middle+
¿Cómo se determina la prioridad de las aplicaciones en el sistema?
sobes.tech AI
Respuesta de la IA
La prioridad de una aplicación en Android se determina en función de varios factores, entre los principales:
- Actividad del componente: La aplicación que tiene componentes activos (actividades en primer plano, servicios, iniciados con
startForeground) tiene una prioridad más alta. - Uso de recursos: Las aplicaciones que utilizan activamente la CPU o consumen mucha memoria pueden ser marcadas por el sistema como de menor prioridad para conservar recursos para tareas más importantes.
- Interacción con la interfaz de usuario: Las aplicaciones que interactúan directamente con el usuario en ese momento reciben la prioridad más alta.
- Relación con procesos de mayor prioridad: Un proceso al que está vinculado un componente (por ejemplo, un servicio conectado a una actividad) hereda la prioridad de un proceso de mayor prioridad.
El sistema Android usa estos factores para determinar el "nivel de importancia" (importance level) de una aplicación, que en última instancia determina qué tan probable es que su proceso sea terminado (matado) en caso de escasez de memoria.
Niveles principales de importancia de los procesos:
- Proceso en primer plano: El proceso más importante. La aplicación con una actividad visible en la pantalla, un servicio iniciado con
startForeground, o que utiliza ciertas API (por ejemplo, relacionado con otra actividad en primer plano). Nunca es terminado por el sistema, a menos que se agoten recursos críticos. - Proceso visible: Proceso que no tiene componentes en primer plano, pero que afecta lo que ve el usuario. Por ejemplo, un proceso que contiene un servicio relacionado con una actividad en primer plano.
- Proceso de servicio: Proceso que contiene un servicio iniciado con
startServicey no marcado como servicio en primer plano. Puede ser terminado cuando la escasez de memoria se vuelve grave. - Proceso en caché: Proceso que no contiene componentes activos y se mantiene en memoria para una reanudación más rápida. Es el proceso de menor importancia y el candidato más probable para ser terminado en caso de escasez de memoria.