Como o Android gerencia os processos
O Windows permite que os aplicativos da área de trabalho permaneçam em execução, estejam eles visíveis ou não, enquanto o iOS da Apple permite que os aplicativos executem apenas algumas tarefas limitadas em segundo plano. O Android fica em algum lugar no meio - aplicativos em primeiro plano são priorizados, mas os aplicativos têm muito mais liberdade para serem executados em segundo plano do que no iOS.
Analisaremos exatamente como o Android está gerenciando os aplicativos e processos em execução no seu smartphone 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 a qualquer momento, do mais importante ao menos importante:
- 1. processo em primeiro plano: O aplicativo que você está usando é considerado o processo de primeiro plano. Outros processos também podem ser considerados processos em primeiro plano - por exemplo, se estiverem interagindo com o processo que está atualmente em primeiro plano. Existem apenas alguns processos em primeiro plano em qualquer momento.
- 2. processo visível: Um processo visível não está em primeiro plano, mas ainda está afetando o que você vê na tela. Por exemplo, o processo de primeiro plano pode ser um diálogo que permite que você veja um aplicativo por trás dele - o aplicativo visível no 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 sua tela. No entanto, ele está fazendo algo em segundo plano, como tocar música ou fazer o download de 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 será tratada por um processo de serviço..
- 4. Processo em segundo plano: 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. A qualquer momento, muitos processos em segundo plano estão em execução no momento. Você pode pensar nesses processos em segundo plano como aplicativos "pausados". Eles são mantidos na memória para que você possa rapidamente voltar a usá-los quando voltar para eles, mas eles não estão usando o tempo valioso da CPU ou outros recursos que não sejam de memória.
- 5. processo vazio: Um processo vazio não contém mais dados de aplicativos. Ele pode ser mantido para fins de armazenamento em 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 seu telefone e abra um aplicativo de música. Enquanto você o usa, o aplicativo de música será um processo em primeiro plano. Quando você começar a tocar música e sair do aplicativo de música, a música continuará sendo reproduzida como um processo de serviço.
Vamos ver o Angry Birds como outro exemplo. Angry Birds seria um processo de primeiro plano enquanto você estava jogando. Quando você sai do Angry Birds e entra no aplicativo do Gmail para visualizar seu e-mail, o Angry Birds se torna um processo em segundo plano (porque não precisa fazer nada em segundo plano), enquanto o Gmail se torna o processo em primeiro plano. Quando você voltar para o Angry Birds, ele se tornará seu processo em primeiro plano e o jogo será retomado rapidamente. O Angry Birds não estava usando recursos em segundo plano - além de alguma RAM - mas continua rapidamente porque permaneceu em cache e pronto para continuar.
Android gerencia automaticamente processos
O Android faz um bom trabalho ao gerenciar automaticamente esses processos, e é por isso que você não precisa de um assassino de tarefas no Android.
Quando o Android precisar de mais recursos do sistema, ele começará a matar os processos menos importantes primeiro. O Android começará a matar os processos vazios e em segundo plano para liberar memória se você estiver com pouca carga. Se você precisar de mais memória - por exemplo, se estiver jogando um jogo particularmente exigente em um dispositivo sem muita memória RAM, o Android começará a matar os processos de serviço, para que seu streaming de músicas e downloads de arquivos parem..
Na maioria dos casos, o Android faz tudo isso sem precisar se preocupar com isso. O Android usa inteligentemente a RAM do seu dispositivo para armazenar aplicativos em cache e outros dados, porque não faz sentido deixar sua RAM vazia.
Obviamente, o Android fornece aos aplicativos muita flexibilidade que eles têm espaço para se comportarem mal. Por exemplo, um aplicativo mal codificado pode iniciar um processo de serviço que permanece em execução em segundo plano o tempo todo, gastando todo o tempo da CPU e diminuindo drasticamente a duração da bateria..
Uma coisa interessante que você notará em aplicativos antivírus como o Avast! para Android é que o aplicativo antivírus usa um ícone de notificação. se você tentar desativar o ícone de notificação, o Avast! irá recomendar contra ele. Com um ícone de notificação visível, o Avast! torna-se um aplicativo de maior prioridade, impedindo que o Android considere um aplicativo de segundo plano e o mate.
Aplicativos Android podem começar em resposta a eventos
Aplicativos para Android também podem ser iniciados em resposta a eventos. Por exemplo, um desenvolvedor pode programar seu aplicativo para ser executado 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 a 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.
Gerenciando Processos
Você não precisa gerenciar processos manualmente, mas há algumas maneiras de fazê-lo, se quiser. Você pode usar o menu multitarefa no Android 4.0 e posterior para fazer um gerenciamento básico de processos. Para acessá-lo, toque no botão multitarefa dedicado em dispositivos Nexus. Em outros dispositivos Android, você pode ter que tocar duas vezes ou pressionar o botão "Início".
Os aplicativos exibidos no menu provavelmente estão no estado "processo em segundo plano". Você pode matá-los passando um aplicativo para a esquerda ou direita, o que irá removê-lo da memória do seu dispositivo. Isso não deveria ser necessário, mas pode ajudar quando você quiser matar rapidamente um aplicativo - talvez ele esteja se comportando mal.
Você também pode ir para a tela Configurações, tocar em Aplicativos, tocar em um aplicativo e usar o botão Forçar parada para matar um aplicativo com comportamento inadequado.
O Android é baseado no Linux e cada aplicativo no Android é atribuído a um ID de usuário do Linux diferente - ou conta de usuário. Isso isola os aplicativos uns dos outros. Se você torcer o seu dispositivo, os aplicativos podem escapar dos sandboxes dos usuários e ser executados com privilégios de root.
Crédito de imagem: JD Hancock no Flickr