Entenda o gerenciamento de Memória e Task Killers no Android

Edson Alves 21/09/2010



Link original: Não usar Task Killer

Porque não usar Task Killer

por Rodrigo ZaratinErick Petrucelli.

Possivelmente esse é um dos assuntos mais polêmicos que passaram pela lista Android Brasil e acho que vale um tutorial básico para explicar aos novos usuários o motivo desse tipo de aplicação não ser recomendada. Até porque a primeira coisa que quase todos os novos usuários do Android fazem é instalar aplicações “Task Killers” por imaginarem que a memória do aparelho precisa estar sempre o mais livre possível.

Iniciemos com uma explicação bem direta: o Android não é Windows Mobile ou Symbian.
O Android é um sistema operacional baseado em Linux, com um gerenciamento de memória nativo muito bom e funcional.

Vejamos agora um pouco mais de detalhamento desta explicação: um grande mito existente é que, quanto mais memória livre, melhor está o sistema. Este conceito é errado pois, quanto mais memória livre, você terá… mais memória livre. Só isso. Ou seja, você não está aproveitando todos os recursos do seu dispositivo.

Ao deixar muita memória livre: você está deixando de utilizar uma parte do seu hardware que está lá para isso. Tendo esses pontos expostos, utilizar a memória é algo que deve ser feito. Se a memória tivesse que ficar livre, não precisaríamos ter memória no aparelho.

Neste momento você pode estar se questionando: claro, mas se cada aplicação usa um pouco de memória, vou deixar a memória ficar toda ocupada quando abro umas 10 aplicações?

Você não vai precisar deixar ou não, quem vai fazer isso é o sistema operacional. Todo usuário do Android deve deixar o próprio Android fazer esse gerenciamento.

O que o Android faz?

Cada aplicação que você executa ocupa um pouco de memória. Quando você aperta Home e abre outra aplicação, a anterior continua executando. Ainda bem, por isso temos um sistema operacional totalmente multi-tarefa, que permite navegar na Internet enquanto a música toca, um SMS chega, um download no Market é feito enquanto aquele seu .doc ainda está aberto pois você não acabou de editá-lo.

Claro que todas elas vão ocupando memória. Mas de tempos em tempos, o próprio Android dá uma olhada em quais aplicações já estão a algum tempo sem uso, e retira elas da memória. Isso também ocorre se uma nova app precisar de muita memória ao abrir e esta memória estiver ocupada. Ou seja, de uma forma ou de outra a memória estará livre para as novas apps que você abrir.

Esse processo é mais complexo que esta explicação resumida. O Android trata a memória de maneira muito precisa e otimizada. Não fica verificando de tempos em tempos e gastando processador atoa para isso. Ele realmente deixa a memória o tanto que ela precisa estar limpa sem afetar o uso de processador. Supomos que não convém falar a fundo como todas as rotinas ocorrem, mas vale lembrar que o Android é open source e quem estiver muito interessado em entender todo o processo pode se aprofundar no assunto usando os próprios fontes do sistema operacional como ferramenta de aprendizado.

O que os Task Killers fazem?

De maneira geral, essas aplicações forçam a retirada da memória das aplicações que não estão mais em execução. Mas não é justamente isso que o Android faz? Sim, mas o Android faz por conta própria com critérios pré-definidos. Já as aplicações que forçam isso costumam ficar continuamente “matando” processos que não estão visíveis ao usuário. Ou seja, você deixou aquele documento aberto no Documents To Go enquanto olhava um site no Navegador. O seu Task Killer vai “matar” o Documents To Go imediatamente, mesmo que o sistema não esteja precisando de mais memória. E a hora que você voltar para o Documents To Go, ele precisará ser aberto totalmente e recarregar na memória tudo que você estava fazendo. Isso vai consumir bastante processador e provavelmente vai até causar um lag enquanto você espera acontecer.

E processador consome bateria, portanto você vai aumentar o uso de bateria, ao invés de diminuir (como muitos pensam). Alias, sobre bateria, convém dizer que apps “guardadas” na memória não consomem mais bateria. Só se estiverem fazendo alguma coisa, mesmo que não visivelmente (quando seu Widget de clima atualiza os dados de meia em meia hora, por exemplo). Mas se eles estão rodando em background, é porque realmente estão fazendo alguma coisa e não deveriam ser encerrados.

Existem alguns Task Killers mais simples que não ficam rodando em background e tentando limpar tudo. Neste caso, eles servem apenas como atalho para que você encerre por conta algum processo. Menos mal, pois não vai ficar disputando com o sistema operacional o que deve sair da memória ou não. Mas mesmo assim você não vai precisar abrir ele e ir manualmente encerrando os apps. Afinal, já vimos que é desnecessário.

O Futuro dos Task Killers

Futuramente toda esta discussão será inútil. A partir do Android 2.2 (conhecido como Froyo), não é mais permitido que uma aplicação encerre outra. Ou seja, os Task Killers não conseguem mais funcionar. E isso é uma ótima notícia para garantir que ninguém mais cometa o erro de achar que está melhorando seu sistema mas no fim está usando algo desnecessário.

Resumo

O Android já faz tudo o que tem que fazer quando realmente precisa. Qualquer aplicação tentando fazer isso ao mesmo tempo vai:

- Entrar em conflito com o Android;
- Talvez causar comportamentos indesejados com isso;
- Gastar mais processador;
- Com isso, consumir mais bateria;
- Limpar a memória além do necessário, subutilizando o hardware;


12 Comments »

  1. Erick Petrucelli 25/09/2010 at 11:58 am - Reply

    Olá Edson, obrigado por ajudar a divulgar nosso texto sobre os males de Task Killers na plataforma Android.

    É incrível como muitas pessoas ainda acreditam que eles são necessário (e até essenciais). Este mito precisa ser quebrado para que as pessoas parem de ter problemas causados por eles e acabem "culpando" o próprio Android.

    • Edson 25/09/2010 at 12:58 pm - Reply

      Sim cara, eu que agradeço por vocês escreverem tão bem e simples. Mas isso realmente é um mito que precisa ser banido. Depois de ler seu texto, acabei deletando o Task Killer, e realmente o celular até melhorou, antes ficava dando problema, atrapalhando tudo, agora o sistema flui normalmente.

      Vlw

      • Erick Petrucelli 27/09/2010 at 1:36 pm - Reply

        O chato é ver uma empresa ajudando a divulgar informações erradas que podem atrapalhar ainda mais os usuários iniciantes:
        http://www.sonyericsson.com/br/preview/geral/tuto

        Alguém da Ericsson precisa ler este artigo aqui pra não escreverem mais besteiras nos deles.

        • Vitor Rubio 28/09/2010 at 6:39 am - Reply

          Task killers servem para fechar programas travados, e não programas que estão rodando normalmente. Por isso nenhum task killer deveria ficar rodando de tempos em tempos, mas apenas quando você, ativamente, precisasse encerrar um aplicativo que não fecha.

          Isso vale pra windows, linux, qualquer SO.

          Se você pagou pela memória não tem sentido ela ficar livre, vc está desperdiçando dinheiro com algo ocioso, porém se um programa consome tanta memória que trava, ou não deixa outras aplicações abrirem, por falta de memória, aí sim você precisará fechar esse programa. Se ele se recusar a fechar use um task killer.

          Escrever na memória consome processador e processador consome bateria, então é mais econômico deixar o processador ocupado para calcular o que realmente importa em vez de ficar escrevendo memória toda hora.

          Porém não descarto os task killers como úteis para fechar programas travados, nem generalizo dizendo que todos são nocivos e que as pessoas não devem usar. Isso causaria muita confusão em quem não é do ramo técnico, ou leigo nesses assuntos. Task killers tem o seu lugar, toda distro linux vem com um, e o Android deveria permiti-los qualquer que seja a versão, afinal, se o sistema é baseado em linux ele tem que ter um task killer assim como todos os sistemas operacionais (no windows vc usa tskill ou o gerenciador de processos para matar processos).

          Além disso um sistema livre deve permitir usar qualquer programa, nocivo ou não.

  2. FAMILIA LINUX 23/05/2012 at 1:26 am - Reply

    E como desabilito a maldita mensagem de pouca memória no Android 2.3.7? Se o Android é tão inteligente assim, porque encher o saco com esta mensagem?

    • _edsonalves 23/05/2012 at 11:40 am - Reply

      Vixe rapaz, a única saída seria trocar o aparelho mesmo, kkkk. Pelo menos não sei como desabilitar essa função

  3. Maria 26/05/2012 at 1:28 pm - Reply

    se eu alterar a palavra passe no meu e-mail (gmail) – num computador – o que acontece nessa conta sincronzada no android ?

    • _edsonalves 28/05/2012 at 4:09 pm - Reply

      Automaticamente o android te avisa quando vc conectar a primeira vez que é necessário informar a nova senha alterada no pc.

  4. Maria 26/05/2012 at 1:30 pm - Reply

    Porque não consigo aceder ao meu e-mail (safe-mail.net) a partir do android?

    • _edsonalves 28/05/2012 at 4:09 pm - Reply

      Veja as configurações do servidor POP

Leave A Response »

Featuring Recent Posts WordPress Widget development by YD