Middle+
Como é que a prioridade das aplicações é determinada no sistema?
sobes.tech IA
Resposta da IA
A prioridade de uma aplicação no Android é determinada com base em vários fatores, sendo os principais:
- Atividade do componente: Uma aplicação que possui componentes ativos (atividades em primeiro plano, serviços iniciados com
startForeground) tem uma prioridade mais alta. - Uso de recursos: Aplicações que utilizam ativamente a CPU ou consomem muita memória podem ser marcadas pelo sistema como de prioridade inferior para conservar recursos para tarefas mais importantes.
- Interação com a interface do utilizador: Aplicações que interagem diretamente com o utilizador neste momento recebem a prioridade mais alta.
- Ligação a processos de prioridade mais elevada: Um processo ao qual um componente está ligado (por exemplo, um serviço conectado a uma atividade) herda a prioridade de um processo de prioridade mais elevada.
O sistema Android usa esses fatores para determinar o "nível de importância" (importance level) de uma aplicação, que por sua vez determina quão provável é que o seu processo seja terminado (matado) em caso de escassez de memória.
Principais níveis de importância dos processos:
- Processo em primeiro plano: O processo mais importante. A aplicação com uma atividade visível na tela, um serviço iniciado com
startForeground, ou que utiliza certas API (por exemplo, relacionado com outra atividade em primeiro plano). Nunca é terminado pelo sistema, a menos que os recursos críticos se esgotem. - Processo visível: Processo que não possui componentes em primeiro plano, mas que influencia o que o utilizador vê. Por exemplo, um processo que contém um serviço relacionado com uma atividade em primeiro plano.
- Processo de serviço: Processo que contém um serviço iniciado com
startServicee não marcado como serviço em primeiro plano. Pode ser terminado quando a escassez de memória se tornar grave. - Processo em cache: Processo que não contém componentes ativos e é mantido na memória para uma recuperação mais rápida. É o processo de menor importância e o candidato mais provável a ser terminado em caso de escassez de memória.