Task Killers no Android: Por que você não precisa deles?

Will 22 de dezembro, 2010 37
Possivelmente esse é um dos assuntos mais polêmicos que passaram pela lista AndroidBrasil e achamos 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.

Antes de começarmos efetivamente, três coisas devem ser observadas:

  • Task Killers são praticamente irrelevantes a partir do Android 2.2 (Froyo). Em e-mail enviado para lista de discussão AndroidBrasil, Edgard Castro – autor do ShadowMOD-BR – explica que: “Voce não consegue matar outros processos, a não ser que o task killer esteja rodando como root. Cada aplicação instalada recebe um user ID diferente no Android, e como em todo Unix, um userID nao pode intereferir no processo do outro. Por isso que “nao é possivel matar outras aplicações”. (…) Android 2.2, quis dizer. :D Nos anteriores, todas aplicações são instaladas sobre um mesmo ID.”
  • Mesmo que você tenha um dispositivo com Android 2.2 ou superior, não deixe de ler todo o conteúdo do post para difundir este conhecimento entre outro usuários de Android. Só com isto já podemos ajudar a fazer do Android um pouco melhor, na verdade, não vamos deixar que o estraguem.. :)
  • Esse post é totalmente baseado em documento criado por Rodrigo Zaratin (@rzaratin) e Erick Petrucelli (@erickpetru). Eles são duas referências em Android no Brasil, não deixe de seguí-los no Twitter. Para ler o texto original, clique aqui.

Pois bem, 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

O Android 2.2 ainda não é tão farto no Brasil, mas 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 como pretendiam. 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;

  • http://twitter.com/erickpetru Erick Petrucelli

    Ae Willen, obrigado por divulgar nosso texto!
    Muito bom vê-lo publicado em um local tão conceituado.
    Espero que muitos usuários de primeira viagem no Android leiam aqui e aprendam bastante.

    • Anônimo

      Texto perfeito caras o/
      Valeu erick petrucelli por ter escrito, e parabéns pelo casamento de novo.
      E falando em task killer, no Fast Shop ontem (onde eu tiive que ouvir
      algumas perolas e ficar quieto pra não bater na atendente) a primeira coisa
      que vi no galaxy s rodando foi o ATK…nem precisa dizer que eu desinstalei
      neh xD

      E graças aos deuses computacionais, o Google adicionou no Gingerbread uma
      opção pra ir direto gerenciar aplicativos. Agora não precisamos mesmo de
      task killers. Fora a diferença da Apple (tira o app da app store) e do
      Google (melhora o sistema e poe a opcao na cara)…

      De qualquer maneira, muito bom post. o/

    • http://www.euandroid.com.br Willen

      Que isso, toda a comunidade que tem que agradecer a vcs. :) Sempre que quiserem publicar algo também, estamos ae :)

  • Alex Araujo

    Para vocês verem, desde que comprei meu primeiro Android, usei esse aplicativo pensando está fazendo a coisa certa, liberando espaço para melhorar o desempenho e consumir menos a bateria, no final das contas estava acontecendo o inverso. Mas agora mesmo vou desisntalá-lo do meu Milestone… obrigado por compartilhar. E já estou seguindo os feras Rodrigo Zaratin (@rzaratin) e Erick Petrucelli (@erickpetru).

  • http://twitter.com/rzaratin Rodrigo Zaratin

    Opa, espero que seja apenas o primeiro texto aqui… quero ver se preparo mais alguns.

    O importante é sempre difundir o conhecimento!

    Abs

    Rodrigo Zaratin

  • Fmrbessa

    O Defy é meu primeiro Android e até agora estou gostando muito do aparelho e do SO.Venho de um Nokia com Symbian…a turma de lá enche o peito pra falar de mult task,mas eu as vezes sofria apenas com o Opera Mobile 10 aberto,lento,pedindo pra fechar aplicativos.
    Numa matéria do Gizmodo já tinha lido que não se devia usar os tais Task Killers,então nunca baixei um,mas a devida explicação pra tal foi super interessante e muito bem vinda.
    Sou novo por aqui,mas estou gostando do blog e procuro acompanhar sempre que possivel…abraço a todos!!

  • Kazu

    Ótimo artigo, me ajudou bastante a entender a “lógica” da coisa! Task killers nunca mais!

    Valeu!

  • Luiz Amorim

    Uma explicação definitiva. Já tinha lido a respeito, mas nunca com uma boa argumentação. Instalei o Task Killer pq meu Galaxy S estava consumindo muita bateria. Vou desinstalar. Só ficou uma dúvida. Realmente, cada vez que passo o TK, vejo que um montão de coisas abriu por si (Tv por exemplo) e achava que era uma boa pra poder fechar essas coisas que abrem asim, sem mais nem menos.

  • rc0utinh0

    Eu tenho a memoria “chei”a, quero abrir um aplicativo pesado, concorda que o tempo de abertura será muito maior do que se a memória estiar “vazia”?

  • Samuel Dias

    Muito bom,excelente post irei comentar com meus amigos que tambem possuem smartphone com android.

  • http://twitter.com/renatohs Renato H Souza

    Na boa eu acho que é um equivoco falar isso dessa maneira, algumas aplicações sim são quase impossíveis de fechar, eu tenho o Milestone 2 (Android 2.2) e uso Task Killer e ele não fecha todos os aplicativos, mas a grande maioria que fica aberto, coisas simples e bobas ele fecha. Mesmo não sendo root ou não dando acesso a root ao Task Killer.

    Aplicativos de sistema não, mas não que ele não consiga, mesmo em linux cada processo tendo seu PID com owner/root é possivel fechar qualquer aplicativo, independente se é do sistema ou não.

    A grosso modo o texto está equivocado, dizer que no Android 2.2 ou mesmo no linux cada aplicação tem seu ID e uma aplicação não fecha a outra, mas voltando ao foco principal.

    Se o Task Killer realmente fica brigando com os aplicativos nativos, vendo quem libera memoria ou quem ocupa irá gastar mais bateria, mas uma vez que você parou de usar o celular e irá bloquea lo é interessante rodar ( via atalho no meu caso) o task killer, ele irá tirar todo e qualquer aplicativo não essencial da RAM, alguns aplicativos quando abertos podem querer trocar dados ou mesmo rodar alguma rotina de atualização de dados fazendo o celular processar algo que não era necessário. Por essa razão que uso o task killer para fechar os aplicativos desnecessários, não essenciais.

    Por exemplo MSN eu abro falo com as pessoas e fecho, ja Gtalk eu deixo ativo direto no 3G, com Task Killer eu coloco Gtalk na lista de ignorados e ele sempre ficará aberto, já MSN, SKYPE e joguinhos, aplicativos ele fecha.

  • http://twitter.com/renatohs Renato H Souza

    Na boa eu acho que é um equivoco falar isso dessa maneira, algumas aplicações sim são quase impossíveis de fechar, eu tenho o Milestone 2 (Android 2.2) e uso Task Killer e ele não fecha todos os aplicativos, mas a grande maioria que fica aberto, coisas simples e bobas ele fecha. Mesmo não sendo root ou não dando acesso a root ao Task Killer.

    Aplicativos de sistema não, mas não que ele não consiga, mesmo em linux cada processo tendo seu PID com owner/root é possivel fechar qualquer aplicativo, independente se é do sistema ou não.

    A grosso modo o texto está equivocado, dizer que no Android 2.2 ou mesmo no linux cada aplicação tem seu ID e uma aplicação não fecha a outra, mas voltando ao foco principal.

    Se o Task Killer realmente fica brigando com os aplicativos nativos, vendo quem libera memoria ou quem ocupa irá gastar mais bateria, mas uma vez que você parou de usar o celular e irá bloquea lo é interessante rodar ( via atalho no meu caso) o task killer, ele irá tirar todo e qualquer aplicativo não essencial da RAM, alguns aplicativos quando abertos podem querer trocar dados ou mesmo rodar alguma rotina de atualização de dados fazendo o celular processar algo que não era necessário. Por essa razão que uso o task killer para fechar os aplicativos desnecessários, não essenciais.

    Por exemplo MSN eu abro falo com as pessoas e fecho, ja Gtalk eu deixo ativo direto no 3G, com Task Killer eu coloco Gtalk na lista de ignorados e ele sempre ficará aberto, já MSN, SKYPE e joguinhos, aplicativos ele fecha.

  • http://twitter.com/renatohs Renato H Souza

    Na boa eu acho que é um equivoco falar isso dessa maneira, algumas aplicações sim são quase impossíveis de fechar, eu tenho o Milestone 2 (Android 2.2) e uso Task Killer e ele não fecha todos os aplicativos, mas a grande maioria que fica aberto, coisas simples e bobas ele fecha. Mesmo não sendo root ou não dando acesso a root ao Task Killer.

    Aplicativos de sistema não, mas não que ele não consiga, mesmo em linux cada processo tendo seu PID com owner/root é possivel fechar qualquer aplicativo, independente se é do sistema ou não.

    A grosso modo o texto está equivocado, dizer que no Android 2.2 ou mesmo no linux cada aplicação tem seu ID e uma aplicação não fecha a outra, mas voltando ao foco principal.

    Se o Task Killer realmente fica brigando com os aplicativos nativos, vendo quem libera memoria ou quem ocupa irá gastar mais bateria, mas uma vez que você parou de usar o celular e irá bloquea lo é interessante rodar ( via atalho no meu caso) o task killer, ele irá tirar todo e qualquer aplicativo não essencial da RAM, alguns aplicativos quando abertos podem querer trocar dados ou mesmo rodar alguma rotina de atualização de dados fazendo o celular processar algo que não era necessário. Por essa razão que uso o task killer para fechar os aplicativos desnecessários, não essenciais.

    Por exemplo MSN eu abro falo com as pessoas e fecho, ja Gtalk eu deixo ativo direto no 3G, com Task Killer eu coloco Gtalk na lista de ignorados e ele sempre ficará aberto, já MSN, SKYPE e joguinhos, aplicativos ele fecha.

  • Pingback: 5 apps que você vai querer no seu Android | Eu, Android

  • Sérgio Muniz

    Realmente, muito didático e esclarecedor. Parabéns!

  • Deia_baldan

    obrigada pelas dicas! acabei de comprar o meu android e não sei o que fazer para economizar bateria

  • Pingback: Nexus S + Root + OEM Unlock usando o Superboot da Modaco | Eu, Android

  • http://twitter.com/Joel_Back Joel Bakcschat

    Muito bom ótima explicação

  • http://twitter.com/Joel_Back Joel Bakcschat

    Muito bom ótima explicação

  • http://twitter.com/educolnago Eduardo C. Gonçalves

    Eu concordo com o “Renato H Souza”, atualizei meu Milestone para Android 2.2, recentemente, e é necessário fechar algumas aplicações. Uso da mesma forma que você, só que para algumas aplicações, fecho para que meu plano de dados não vá para o espaço com Skype e Facebook, por exemplo, que estão sempre enviando informações.

    • Mauro

      Experimente baixar o app “APN on/off”…ele desliga o envio e recebimento de dados do seu celular…

    • Mauro

      Experimente baixar o app “APN on/off”…ele desliga o envio e recebimento de dados do seu celular…

  • Pingback: 14 dicas para prolongar a vida de sua bateria no Android | Eu, Android

  • http://profiles.google.com/serdnanomis Andrés de Andrade Escámez Simó

    Muito bom o artigo.

  • Pingback: 14 dicas para aumentar a vida da bateria do seu Android

  • Pingback: Porque meus aplicativos não fecham? | Eu, Android

  • Pingback: Mate as tarefas do seu Android | PensoTI

  • Pingback: Multitarefa no Android: Quando sofisticação não implica em satisfação | Free Bird

  • Andre biz

    Tenho um samsung I7500 instalei o froyo nele, e esse celular é realmente uma merda, muito lento, só que quando eu fecho todos aplicativos o celular fica razoávelmente bom, mas tenho que fechar de 5 em 5 minutos pois facebook e outros aplicativos abrem automaticamente, tem algum modo de eu fechar eles por definitivo ?

  • Pingback: ZTE Blade - 14 dicas e truques para prolongar a vida de sua bateria no Android

  • Ricardo

    muito bem explicado… eu mesmo vou desinstalar o programa de task killer que tenho
    Mas vale lembrar que é bom deixar memória interna sobrando sim… pois alguns problemas ocorrem no androi qdo a memória está muito baixa (no meu caso abaixo de 35mb) …. por exemplo, o aparelho para de sincronizar emails e calendários, não recebe sms a conexão de dados fia instável ou para de funcionar e etc.
    Samsung Galaxy Ace
    Android 2.3.4

    • Jorge Aguilar

      O problema aí não é exatamente do Android, mas de aplicações mal comportadas ou mal feitas! Quando uma aplicação é “fechada” (entre aspas porque no Android não se fecha uma aplicação, apenas se pausa), o app entra num estado de dormência. Quando o sistema precisa de memória ele vai atrás desses apps em dormência para avisá-los que devem ser fechados. O problema está aí: se um app está mal feito ele pode ignorar esse aviso e dizer ao sistema que não deve ser fechado. Resultado? Um monte de app ocupando memória que não deveria! Em última instância o sistema força o fechamento do programa….mas isso é um último recurso mesmo.

  • Nanzitos

    Entaao, eu tenho um LG ME P350F com o 2.2, baixei o Taskiller, pois tem horas que meu aparelho fica muuuito lerdoooo, nao da nem pra jogar pq fica travando a tela.. Ai qnd eu vo no taskiller e encerro td a “lezeira” some.. E ai, oq podem dizer disso?

  • Jr Dias

    eu so tenho uma pequena pergunta pode ser meio inútil, mas e uma duvida; Supondo que eu tenha 2 programas abertos e que os 2 precise da CAM e o androide esta dando erro pq a cam esta ocupada no outro programa eu n precisaria fechar ja que ele n esta sendo fechado automaticamente? esta dando esse erro aqui e isso esta me deixando meio perdido 

  • Marcelo Almeida

    E quando um aplicativo trava? Deixo ele rodando consumindo minha memória e desisto de abri-lo até que o androi o “mate”, se matar?

    Pergunto isso pois cheguei a esse topico com esse problema… uma aplicação ficou procurando update e parou…

    • http://www.euandroid.com.br Willen

      Neste caso, acho que você pode matá-la em “Forçar Parada” ou algo do gênero na parte de Aplicativos nas Configurações do Android.

  • matheus bonfim100

    Muito legal esse texto aqui – adorei muito!!! Mudou meu conceito de memória ram, de agora em diante não usarei mais task killer no meu defy. Muito obrigado mesmo!!!