No usen Task Killers en Android, Explicacion!

Debajo de mi humilde explicacion, se encuentran explicaciones tecnicas sobre el tema:

He leído varias explicaciones de programadores y técnicos en el tema, en varios foros de esos que hackean.

El tema es que el hecho de usar task killers hace que la batería dure menos y que en realidad matemos cosas en momentos que no hay que matarlas.

El Android, o por lo menos el sistema linux, corre como un rooter, de modo que no va a quitarle velocidad a aplicaciones que corra si hay otras background. Cuando necesite memoria, éste va a matar a las aplicaciones que a el le parezca que son convenientes y de poco uso, haciendo asi mucho mas efectiva la implementación de las aplicaciones en background e incrementando la batería.

A mi me pasó que el hecho de tener el task killer hacia que se me tilde el phone... lei este tipo de artículos y me dije " voy a probar una semana sin task killer ".

El hecho es que incrementé la duracion de la bateria, no se me tilda mas el phone y las aplicaciones que generalmente quedan en background son las que uso constantemente. Al rato a veces, puedo ver que el android si no la usé, la mató sola.

Es como el dicho ese que es mejor dejar el auto encendido en la parada del tren, que va a gastar mucho menos que si lo apagas y lo volves a prender... bueno, una cosa así es con las aplicaciones que matas y las vuelves a correr.

Otra cosa muy característica ahora es que las aplicaciones están viniendo con EXIT, por lo menos las mas desarrolladas, por lo tanto, en un futuro supongo que esta función tendrá que venir en todas las aplicaciones, dándonos la posibilidad de salir y no dejarla background.

Hagan la prueba, desinstalen su task killer y dejen que su android haga el laburo, van a ver que van a incrementar la duración de la batería y el teléfono funcionará de maravillas.

Explicacion tecnica, no me pidan que lo traduzca!:

We all know that Android uses a different way of handling processes. Instead of killing every process after its Activity ended, processes are kept until the system needs more memory. These processes usually should not harm the overall performance and should give speed improvements if you start an Activity again. That’s the idea.

But when does Android kill a process? And which process? As far as I understood android keeps a LRU (last recently used) list and starts killing the oldest unneeded process. This way it is much smarter than any of the taskkillers we see in the Market.

Android seems to group running processes into 6 different categories:

// This is the process running the current foreground app. We’d really
// rather not kill it! Value set in system/rootdir/init.rc on startup.

// This is a process only hosting activities that are visible to the
// user, so we’d prefer they don’t disappear. Value set in
// system/rootdir/init.rc on startup.

// This is a process holding a secondary server — killing it will not
// have much of an impact as far as the user is concerned. Value set in
// system/rootdir/init.rc on startup.

// This is a process only hosting activities that are not visible,
// so it can be killed without any disruption. Value set in
// system/rootdir/init.rc on startup.

// This is a process with a content provider that does not have any clients
// attached to it. If it did have any clients, its adjustment would be the
// one for the highest-priority of those processes.

// This is a process without anything currently running in it. Definitely
// the first to go! Value set in system/rootdir/init.rc on startup.
// This value is initalized in the constructor, careful when refering to
// this static variable externally.

These 6 categories are reflected by 6 memory limits which are configured for the lowmemorykiller in the kernel.

Otra explicacion un poco mas extensa:


Why You Shouldn’t Be Using a Task Killer with Android:

I see this come up over and over again. People saying that a task is running in the background and they think it is killing their battery or hogging all of their memory. So their natural reaction is to download a program made to kill tasks. Here’s the thing… you are likely doing more harm than good by killing tasks that aren’t ready to end. I was the same way when I first got my CDMA Hero. There were tons of things running that I didn’t want so I just kept killing them. After a few weeks I realized that if I stopped using a task killer (and totally uninstalled it in fact) my phone actually began to run better! The applications would close themselves and things just seemed to be running better. I get that there may be short term benefits from clearing a task, but you should still take the time to read through this.

Here is some information directory from Android’s developer page. I have put the important parts in bold. This is quite a lengthy read but honestly I think it’s important. If you want the full read then you can check out the dev page here. If you just want the quick TL;DNR version then scroll to the bottom.

By default, every application runs in its own Linux process. Android starts the process when any of the application’s code needs to be executed, and shuts down the process when it’s no longer needed and system resources are required by other applications.

A content provider is active only while it’s responding to a request from a ContentResolver. And a broadcast receiver is active only while it’s responding to a broadcast message. So there’s no need to explicitly shut down these components.

Activities, on the other hand, provide the user interface. They’re in a long-running conversation with the user and may remain active, even when idle, as long as the conversation continues. Similarly, services may also remain running for a long time. So Android has methods to shut down activities and services in an orderly way:

* An activity can be shut down by calling its finish() method. One activity can shut down another activity (one it started with startActivityForResult()) by calling finishActivity().
* A service can be stopped by calling its stopSelf() method, or by calling Context.stopService().

Components might also be shut down by the system when they are no longer being used or when Android must reclaim memory for more active components.

If the user leaves a task for a long time, the system clears the task of all activities except the root activity. When the user returns to the task again, it’s as the user left it, except that only the initial activity is present. The idea is that, after a time, users will likely have abandoned what they were doing before and are returning to the task to begin something new...."

"... Activity lifecycle

An activity has essentially three states:

* It is active or running when it is in the foreground of the screen (at the top of the activity stack for the current task). This is the activity that is the focus for the user’s actions.
* It is paused if it has lost focus but is still visible to the user. That is, another activity lies on top of it and that activity either is transparent or doesn’t cover the full screen, so some of the paused activity can show through. A paused activity is completely alive (it maintains all state and member information and remains attached to the window manager), but can be killed by the system in extreme low memory situations.
* It is stopped if it is completely obscured by another activity. It still retains all state and member information. However, it is no longer visible to the user so its window is hidden and it will often be killed by the system when memory is needed elsewhere.

If an activity is paused or stopped, the system can drop it from memory either by asking it to finish (calling its finish() method), or simply killing its process. When it is displayed again to the user, it must be completely restarted and restored to its previous state.

The foreground lifetime of an activity happens between a call to onResume() until a corresponding call to onPause(). During this time, the activity is in front of all other activities on screen and is interacting with the user. An activity can frequently transition between the resumed and paused states — for example, onPause() is called when the device goes to sleep or when a new activity is started, onResume() is called when an activity result or a new intent is delivered. Therefore, the code in these two methods should be fairly lightweight..."

The following diagram illustrates these loops and the paths an activity may take between states. The colored ovals are major states the activity can be in. The square rectangles represent the callback methods you can implement to perform operations when the activity transitions between states.

No usen Task Killers en Android, Explicacion!

So… the TL;DNR Version:

* Android is hard coded to automatically kill a task when more memory is needed.
* Android is hard coded to automatically kill a task when it’s done doing what it needs to do.
* Android is hard coded to automatically kill a task when you haven’t returned to it in a long time.
* Most services (while possibly running in the background) use very little memory when not actively doing something.
* A content provider is only doing something when there is a notification for it to give. Otherwise it uses very little memory.
* Killing a process when it isn’t ready only causes it to have to reload itself and start from scratch when it’s needed again.
* Because a task is likely running in the background for a reason, killing it will only cause it to re-spawn as soon as the activity that was using it looks for it again. And it will just have to start over again.
* Killing certain processes can have undesirable side effects. Not receiving text messages, alarms not going off, and force closes just to name a few.
* The only true way to prevent something from running at all on your phone would be to uninstall the .apk.
* Most applications will exit themselves if you get out of it by hitting “back” until it closes rather than hitting the “home” button. But even with hitting home, Android will eventually kill it once it’s been in the background for a while.

Espero que les sirva.
Si les sirvió, y mucho, entonces no me voy a molestar si me dejan unos puntitos a este novato que necesita para ser miembro vip:



Comentarios Destacados

guruchaga +26
joya yo usaba el task a full
nachobkcc +11
uuuuu... maldito windows puto que nos malacostumbra!!! ya vuelo el task, pero notar mejoras saludos gente!

71 comentarios - No usen Task Killers en Android, Explicacion!

rorrogi12 +2
ayer lo desinstale, se nota diferecia..
crow0300 +1
Interesante... la verdad es que nunca usé el task killer porque de antes de tener mi magic leí que no era muy bueno, en su lugar yo ocupo el advance task manager, que además de mostrarme las aplicaciones abiertas (permitiéndome cerrarlas, excluirlas de los cierres y abrirlas) también me gestiona todas las aplicaciones instaladas (para actualizarlas o desinstalarlas)...

pero eso de que el propio sistema es el que cierra las aplicaciones a medida que no se usan no lo sabía... Igual suena logico, como bien dices Android al ser un OS como linux no funciona igual a windows (a como estamos acostumbrados a cerrar aplicaciones para liberar memoria)
yo igual utilizo el advance task manager
gbi_92 -18
Pues yo utilizo uno y sin el mi hero no tira. Si controlo el uso de internet la bateriame dura hasta una semana.
exelente!! ya lo esoty desinstalando... luego paso a comentar como me fue. muchas gracias
es verdad, tengo un android 2.1 en un galaxy spica y es asi.. instale varios task manager y ahora lo saque, me vivia tildando el telefono y demoraba mucho cuando iniciaba, lo unico que estoy viendo es por q aveces el procesador se va al 100% cuando desbloqueo el celular.. alguno le paso?
oye men, mil gracias por la informacion tan valiosa, justo estaba diciendo que la bateria de mi milestone no dura como al principio, y eso que la duracion original no es buena, yo la tenia por los suelos... los desintale ayer... y note la mejora al apenas encenderlo
AraG0rN +1
Gracias por el dato campeón, voy a desistalarlo YA! XD Un abrazo.
lucaseiriz +4
yo noto mejoras con el task killer instalado.. aunque no uo ese.. uso uno parecido
Yo tengo un Milestone de Motorola y tenía, a falta de una, dos aplicaciones que tenía como objetivo "salvar la batería" pero aparentemente, según estos ingenieros, estaría ambigüo el resultado.
He borrado la aplicación puesto que no duraba más de 24 hs. Veremos en las próximas 24 cómo se comporta.

Un genio si era eso, eh!

Wow gracias, hice la prueba, funciona de maravillas (:
ebono +1
A mi la bateria con 50% a la noche cuando me acuesto q ni lo uso al celu, le aplico el task para dejarlo limpio, y a la mañana siguiente 5% de bateria. SIN USARLO!. Hace poco tengo el Quench. Voy a probar de desinstalar el Advanced Killer como dice el amigo, despues les cuento. Espero tener suerte. Celular de mierda! Me tendria q haber quedado con mi Samsung 5600 y no cambiarlo!
Gracias por la info!
Gracias por el dato, yo tengo dos aplicaciones para "mejorar el rendimiento": el advanced task manager y el setCPU (root) y la verdad uno se termina haciendo maniatico de ver cada minuto si cerró tal o cual aplicación y si todavia esta en memoria, matar el proceso... Me paso todo el dia haciendo eso y la batería solo me dura 18 horas aprox.
Voy a probar a ver que pasa, aunque solo voy a desinstalar el advanced task manager porque el setCPU me parece que si ayuda con la vida de la batería. Vos que me decis???
gracias... voy a probar
Suena logico tu analisis, PERO desde que instale muchisimos juegos en mi Android ya va super lento, cabe mencionar que tengo varios juegos pesados y la mayoria en HD (de la talla del Pro Evolution 2011HD, AVATAR 3D (HD), REAL FOOTBALL 2011 HD, HAWX HD) etc... y siempre se q
y siempre se quedan abiertos en segundo plano, pues lo puedes ver cuando mantienes presionado el boton de menu. Ademas algunos otros juegos mas atrasados ni siquiera tienen boton de *exit o quitar el juego* con lo que yo veo que sin utilizar el telefono se tragan la bateria muy rapido. No he probado ningun Task Killer ni nada parecido pero yo creo que si esto sigue asi en mi Telefono sera necesario que instale alguno que minimo cierre mis juegos cuando no los ocupo. Salu2
Habra que probar, yo uso el advanced task manager en mi galaxy 5 y la verdad que cuando le doy a que mate todo y se pone medio lento por unos segundos.
Tambien me di cuenta que por ej estoy jugandi angry birds y agarro apreto el boton para ir al home abro el explorer y despues abro otra ves angry birds y se abre desde cero.
Asi que voy a probar.
Muy buena voy a probar, alguien me puede dar una mano poque tengo el quench y lo quiero llevar a 2.1 y no tengo ni idea y tengo miedo de echarme un mocaso manden MP desde ya gracias!
raulmcgyver -1
muy buena info yo lo instale en mi milestone hace un rato y cuando lei esto lo saque a la mierda al killer de phones ni tube tiempo de probarlo, grasias looco.
+10 a ver si alguno puede dar puntos..
Probare desinstalarlo, la verdad antes de ponerme a investigar esto ya habia observado que aunq mates los procesos el android los vuelve a iniciar, es un esfuerzo en vano estar usando el task killer segun lo que he leido hasta ahora.
bueno.. justo estaba por instalarme uno y cundo leí esto decidí q mejor dejo a mi android hacer su trabajo. gracias x la info acá van +10
Y cual puedo usar sin que afecte mi bateria, te agradeceria respondieras por mensaje a mi @ es beto22250 en yahoo.es, saludos amigo muy buen material
ocombita -1
Tenes que poner mas prolijo el post y traducirlo y te daran mas puntos... +3
gracias por la info justo me iba a descargar el task killer que me habia dicho en la movilnet que fue dodne compre el telefono me dijero que alluda con la bateria, menos mal que investigue antes de bajar la aplicacion
hay te ban mis 10 te lo mereces para q sea nfu bienbenido
Desinstalado! pero prueben con el administrador de tareas q viene por defecto en android 2.2 froyo, pones que aplicaciones queres que se cierren sólas después de que se bloquee el cel y se apague la pantalla! hay q agregarlas a "Finalizar automáticamente"
Voy a probar una semana a ver que onda, total no cuesta nada.. luego les cuento la experiencia..
buen dato! Probablemente lo desinstale
Mickey66 dijo:Voy a probar una semana a ver que onda, total no cuesta nada.. luego les cuento la experiencia..

----// Ya hace una semana que estoy sin ningun task killer, es verdad que Android "mata " por si mismo las aplicaciones que no usa, aunque no veo mejora en el rendimiento, porque estoy todo el día en la web y con juegos pesados.. Lo que me di cuenta que no era imprescindible tener uno. Igual tengo uno instalado para "matar" algunos juegos que se cuelgan, solo para eso.-
Avantis -1
Che, te jode si pongo un link de este post en uno mio? muy buena info, voy a probar lo que decís
ya estaba por bajarlo gracielas men
todo bien, pero el andorid constantemente me conecta a internet aplicaciones, como maps, skipe y otros, lo que relamente me traeria aparejado el consumo de mi credito de conexion!!!!
ok desinstalando... creo ke si te acostumbras al windows te dejo +10
Estuve apunto de descargarlo creyendo ke me ayudaria a no alentar mi Android! gracias amigo 5+
pues no lo uso y con mi galaxy la bateria buela por que se me acaba en menos de 12 horas y eso que tengo siempre desactibado todo y lo unico que ago con el es escuchar musica y hablar con el pero de ahi en fuera nada en especial y si ocupo el internet solo es como 2 horas al dia
ami me da mas rendimiento y duracion de bateria con los tast killer pero es la opinion de cada uno
Elnicagallardo +1
Burna explicacion, pero prefiero usar el advanced task manager, sobretodo en juegos, sino finalizo las apps antes de jugar el phono se me pega, no se es mi opinion
Elnicagallardo dijo:Burna explicacion, pero prefiero usar el advanced task manager, sobretodo en juegos, sino finalizo las apps antes de jugar el phono se me pega, no se es mi opinion

Es verdad compa,se traba todo los juegos
yo tengo el task killers pero no recuerdo haberlo usado x las dudas lo saco ja