9Sep

Como o Android gerencia processos

O Windows permite que aplicativos de desktop continuem sendo executados se eles são visíveis ou não, enquanto o iOS da Apple só permite que aplicativos executem algumas tarefas limitadas em segundo plano. O Android fica em algum lugar intermediário - os aplicativos que correm em primeiro plano são priorizados, mas os aplicativos têm muito mais liberdade para executar em segundo plano do que no iOS.

Vamos ver exatamente como o Android está gerenciando aplicativos e processos em execução no seu telefone ou tablet, desmistificando o que está acontecendo em segundo plano.

A Hierarquia do Ciclo de Vida do Processo

Um processo no Android pode estar em um dos cinco estados diferentes em qualquer momento, do mais importante ao menos importante:

  • 1. Processo de primeiro plano : O aplicativo que você está usando é considerado o processo de primeiro plano. Outros processos também podem ser considerados processos iniciais - por exemplo, se eles estão interagindo com o processo que está atualmente em primeiro plano. Existem apenas alguns processos de primeiro plano em qualquer momento.
  • 2. Processo visível : um processo visível não está no primeiro plano, mas ainda está afetando o que você vê na tela. Por exemplo, o processo de primeiro plano pode ser uma caixa de diálogo que permite que você veja um aplicativo por trás disso - o aplicativo visível em segundo plano seria um processo visível.
  • 3. Processo de serviço : um processo de serviço não está vinculado a nenhum aplicativo visível na tela. No entanto, está fazendo algo em segundo plano, como tocar música ou baixar dados em segundo plano. Por exemplo, se você começar a tocar música e mudar para outro aplicativo, a reprodução de música em segundo plano está sendo tratada por um processo de serviço.
  • 4. Processo de fundo : os processos em segundo plano não estão visíveis no momento para o usuário. Eles não têm impacto na experiência de usar o telefone. Em qualquer momento, muitos processos em segundo plano estão sendo executados. Você pode pensar nesses processos em segundo plano como aplicativos "pausados".Eles são mantidos em memória para que você possa retomar o uso deles rapidamente quando você voltar para eles, mas eles não estão usando valiosos tempos de CPU ou outros recursos que não sejam de memória.
  • 5. Processo vazio : um processo vazio não contém mais nenhum dado de aplicativo. Pode ser mantido ao redor para fins de cache para acelerar o lançamento de aplicativos mais tarde, ou o sistema pode matá-lo conforme necessário.

Por exemplo, digamos que você ligue o telefone e abra um aplicativo de música. Enquanto você o usa, o aplicativo de música será um processo de primeiro plano. Quando você começa a tocar música e deixa o aplicativo de música, a música continuará jogando como um processo de serviço.

Vamos ver Angry Birds como outro exemplo. Angry Birds seria um processo de primeiro plano enquanto você estava jogando. Quando você deixa o Angry Birds e entra no aplicativo do Gmail para ver seu email, o Angry Birds torna-se um processo em segundo plano( porque não precisa fazer nada em segundo plano), enquanto o Gmail se torna o primeiro plano. Quando você voltar para Angry Birds, ele se tornará seu primeiro plano e o jogo será retomado rapidamente. Angry Birds não estava usando recursos no fundo - além de algum RAM - mas ele se resume rapidamente porque ele permaneceu em cache e pronto para continuar.

Android gerencia automaticamente processos

O Android faz um bom trabalho de gerenciamento automático desses processos, e é por isso que você não precisa de um assassino de tarefas no Android.

Quando o Android precisa de mais recursos do sistema, ele começará a matar primeiro os processos menos importantes. O Android começará a matar processos vazios e em segundo plano para liberar memória se você estiver executando baixo. Se você precisar de mais memória - por exemplo, se você estiver jogando um jogo particularmente exigente em um dispositivo sem muita RAM, o Android começará a matar os processos do serviço, para que seus downloads de música e arquivos possam parar.

Na maioria dos casos, o Android faz isso tudo sem que você precise se preocupar com isso. O Android usa inteligentemente a RAM do seu dispositivo para armazenar em cache aplicativos e outros dados, porque não tem como deixar sua RAM vazia.

Claro, o Android oferece aplicativos com tanta flexibilidade que têm espaço para se comportar mal. Por exemplo, um aplicativo mal codificado poderia iniciar um processo de serviço que permaneça em segundo plano o tempo todo, usando todo o seu tempo de CPU e diminuindo drasticamente a duração da bateria.

Uma coisa interessante que você notará em aplicativos antivírus como o Avast! Para o Android, é que o aplicativo antivírus usa um ícone de notificação. Se você tentar desativar o ícone de notificação, Avast!irá recomendar contra isso. Ao ter um ícone de notificação visível, Avast!se torna um aplicativo de maior prioridade, impedindo o Android de considerá-lo um aplicativo em segundo plano e matando-o. Os aplicativos Android do

podem começar em resposta a eventos. As aplicações Android

também podem ser iniciadas em resposta a eventos. Por exemplo, um desenvolvedor poderia programar seu aplicativo para executar automaticamente na inicialização e executar um serviço em segundo plano. Os aplicativos podem ser iniciados em resposta a uma variedade de outros eventos, como quando você tira uma foto, quando sua conexão de dados muda, e assim por diante. Isso permite que os aplicativos executem ações em resposta a eventos sem executar constantemente em segundo plano.

Processos de gerenciamento

Você não precisa gerenciar processos manualmente, mas existem algumas maneiras de fazê-lo se desejar. Você pode usar o menu multitarefa no Android 4.0 e depois para fazer algum gerenciamento básico de processos. Para acessá-lo, toque o botão multitarefa dedicado nos dispositivos Nexus. Em outros dispositivos Android, você pode ter que tocar duas vezes ou apertar o botão Home. As aplicações

apresentadas no menu são prováveis ​​no estado do "processo em segundo plano".Você pode matá-los deslizando um aplicativo para a esquerda ou para a direita, o que o removerá da memória do seu dispositivo. Isso não deve ser necessário, mas pode ajudar quando você quer matar rapidamente um aplicativo - talvez seja um comportamento incorreto.

Você também pode entrar na tela Configurações, tocar Aplicativos, tocar em um aplicativo e usar o botão Parar Forçar para matar um aplicativo que funciona mal. O

Android é baseado no Linux, e cada aplicativo no Android é atribuído a uma ID de usuário diferente do Linux ou a uma conta de usuário. Isso isola aplicativos uns dos outros. Se você root seu dispositivo, as aplicações podem escapar de suas sandboxes de usuário e executar com privilégios de root.

Crédito da imagem: JD Hancock no Flickr