Android Task Killers are Dead—Here’s What You Should Be Doing ;).
As a general rule, people have a hard time dealing with change. Android, being perhaps the fastest changing mobile OS in history, can leave people in the dust as the platform evolves. Things don’t work the same from release to release. Some of this is user-facing, and people can adapt. But some changes are deeper system level alterations that people might not notice at first, and then might not understand why they’ve changed. The functionality and usefulness of task killers is one such advance. A lot has changed in the underlying Android OS regarding how background processes are managed.
Read on to find out why task killers are obsolete, and why that’s actually a good development.
How task killing became dogma
In older versions of Android, memory management was an issue. These phones, like the G1, had too little internal memory for the heavy background processes that many apps chose to run. An app could spawn background services, but never kill them. Even if the app wasn’t doing anything, these services would remain in memory. Over time this led to poor performance and overall system sluggishness.The solution, at the time, was to use task killer apps.
Task killers like Advanced Task Manager and Advanced Task Killer became extremely popular in the Android Market because people saw performance and battery life benefits from ending background services. It was the snowball effect from here on out. Every new Android user was told to go get a task killer first thing when buying a new phone. Some carriers even included them on on phones and recommended them to customers. It became Android dogma that you had to kill tasks.
But starting in Android 2.0, memory management got much, much better. Apps couldn’t spawn processes only to leave them forever. The OS would gauge the level of system RAM, and close unneeded background services. Users on phones like the Droid could clearly tell that this was happening. With only 256MB of RAM, some memory-heavy apps would reliably cause the OS to close other apps running in the background. This is why many apps now use persistent notifications. Having that notification running will keep a background process it is connected to from being ended.
What Froyo changed
When Android 2.2 Froyo was released, users and developers alike noticed something had changed again. Task killers didn’t work properly anymore. If a user closed a particular app, it would just show up again. That’s because the API for closing other tasks was removed. Now the “end” command has basically become “restart”. Only the immediate background app can be closed. Associated services will stay put.
In modern versions of Android, you don’t need to worry about clearing out memory, but this new tweak changed things in a bigger way. This change to the app shutdown API completely alters the risk/reward ratio. If you’re not ending tasks, but rather restarting them, you actually use up more battery trying to free this memory. The apps will just restart, putting additional strain on the system. The only way to completely end a process now is to find it in the Manage Applications area of the Settings app, then tap the Force Stop button. It’s just as destructive as task killing was, but it is more hidden and not accessible via an API.
Google likely changed the API because ending tasks at random can cause system glitches in the worst case. At best, you’ll likely notice worse performance from your apps as they try to reconcile their assigned tasks with the fact that you are constantly interrupting them by ending them.
What you should be doing
We’ve said in the past that the only legitimate use for a task killer is to get rid of processes that go rogue and eat up CPU. A better way to manage that is to actually monitor what’s happening in the background. The app you’ll want for this is called Watchdog. We told you all about it a few weeks ago in a Market Roundup. Check that out for the full rundown.
What Watchdog basically does is poll the CPU to watch for apps that are getting greedy. This is really the holy grail of Android process management. It’s quiet, sits in the background, and solves most of your task management needs. You’ll be alerted if something goes wrong, and then Watchdog will allow you to restart the offending task. While doing this with an app that isn’t misbehaving is a bad idea, you have little choice in cases when an app is legitimately out of control.
Users with root on their device are able to undertake some additional steps to control tasks on Android. An app we really can’t live without on our rooted handsets is called Autostarts. We introduced you to thislast month, but we keep finding reasons to recommend it. Killing processes is a bad thing for system stability and battery life (especially under Froyo), but Autostarts lets you keep unneeded apps from starting up in the first place.
Apps register with the Android OS when they need to start up based on a set of conditions. Autostarts lists all those conditions, so you can tell apps not to start up when they otherwise would. You can still launch them, but they won’t launch themselves. This is perfect for those bundled apps that you use rarely, or simply don’t need. If there’s a lot of crapware on your handset, root users can also remove it completely with an app like Titanium Backup.
Also for root users, is an app called AutoKiller. Don’t let the name fool you; it isn’t an aggressive task killer that’s going to make your apps go all wonky. All it does is tweak the Android process manager to be more aggressive in ending background services. This won’t end tasks midstream, it just ends unneeded apps a little sooner. You mileage may vary, some users find this helps quite a bit, others not so much.
Most users that adopt a more modern way of managing (or not managing) their tasks see a big upside. A phone can feel faster, and the battery may last longer. When it comes down to it, killing tasks is just a hassle you don’t need to deal with anymore. Everyone on Android 2.0 and higher should rely on Watchdog, or an app like it, to monitor for runaway background processes.
As more Android users are bumped up to Froyo, or just buy new devices, they will find their task killers inoperable. It’s important they are steered away from this obsolete method of task management. Tell us about your task killing experiences in the comments.
Who said? Ryan Whitwam said ;).