We almost hate to approach the topic of Task Killers on Android after all this time, but with so many new faces here at Droid Life and in Android in general, it’s something that needs to be done. In fact, after seeing the Amazon app of the day and reading through the Twitter conversations we just had with many of you, this thing needs to be posted immediately. Let’s see if we can’t get you all some better battery life!
First off, please ignore the image up at the top of the post. If this was 2009 and we were all running something less than Android 2.2, that statement plastered on that red banner might be somewhat correct. But since it is 2011 and the majority of people on the planet are running Android 2.2, we need to get you away from the mindset that killing off tasks on your phone is a good thing.
So rather than me blabbering about the inner-workings of Android and how it manages RAM for the 10,000th time, I’m going to just pull from some posts that friends of ours have done that explain this in the plainest of ways.
First up is our boy @cvpcs who you may know from CM and his Sapphire ROM days. He knows Android inside-and-out, so when he goes into memory management which is done by the OS itself, you should listen up:
…What people don’t seem to realize is that android is designed to have a large number of tasks stored in memory at all times. Why? Well basically we are talking about a mobile device. On a mobile device things tend to be slower. The hardware isn’t as robust as say a desktop or a laptop, so in order to get that same “snappy” feeling, there have to be workarounds.
One of these is how android deals with memory. Android will load up your apps and then keep them running until they absolutely HAVE to kill them. This is because that way, if you want to re-open an app, the system already has it loaded and can then just resume it instead of reloading it. This provides a significant performance increase.
What a lot of people don’t realize as well is that android kernels have their own task manager. This means that:
it will be more efficient than any app-based task manager as it is run at the kernel level, and
it should be left up to that task killer to decide when to free up memory
There is only one case where having a task killer is a good idea, and that is when you want to kill ONE SPECIFIC APP. Killing all apps is never a good idea. You don’t know what operations they are performing or if they are necessary.
Whitson Gordon of Lifehacker suggests that you should be more worried about CPU usage than what’s going on with your RAM. We agree:
This set-up implies that the goal of killing these apps is to free up memory. Nowhere on the list does it mention the number of CPU cycles each app is consuming, only the memory you’ll free by killing it. As we’ve learned, full memory is not a bad thing—we want to watch out for the CPU, the resource that actually slows down your phone and drains your battery life.
Thus, killing all but the essential apps (or telling Android to kill apps more aggressively with the “autokill” feature) is generally unnecessary. Furthermore, it’s actually possible that this will worsen your phone’s performance and battery life. Whether you’re manually killing apps all the time or telling the task killer to aggressively remove apps from your memory, you’re actually using CPU cycles when you otherwise wouldn’t—killing apps that aren’t doing anything in the first place.
In fact, some of the processes related to those apps will actually start right back up, further draining your CPU. If they don’t, killing those processes can cause other sorts of problems—alarms don’t go off, you don’t receive text messages, or other related apps may force close without warning. All in all, you’re usually better off letting your phone work as intended—especially if you’re more of a casual user. In these instances, a task killer causes more problems than it solves.
More on how Android has a built-in memory-management system, but also on how killing all tasks is not a good thing (via: NextApp):
Android was designed from the ground up as an operating system (OS) for mobile devices. Its built-in application and memory-management systems were engineered with battery life as one of the most critical concerns.
The Android OS does not work like a desktop operating system. On a desktop OS, like Windows, Mac OS X, or Ubuntu Linux, the user is responsible for closing programs in order to keep a reasonable amount of memory available. On Android, this is not the case. The OS itself automatically removes programs from memory as memory is needed. The OS may also preload applications into memory which it thinks might soon be needed.
Having lots of available empty memory is not a good thing. It takes the same amount of power to hold “nothing” in memory as it does to hold actual data. So, like every other operating system in use today, Android does its best to keep as much important/likely-to-be-used information in memory as possible.
As such, using the task manager feature of SystemPanel to constantly clear memory by killing all apps is strongly NOT RECOMMENDED. This also applies to any other task killer / management program. Generally speaking, you should only “End” applications if you see one which is not working correctly. The “End All” feature can be used if your phone/device is performing poorly and you are uncertain of the cause.
And we could go on for hours with source after source on why task killers do nothing but work against Android, but you probably get the point now don’t you? Ready for a quick recap? OK.
Basically, Android keeps tasks handy because it thinks you’ll want to perform them again in a very short amount of time. If you don’t, it will clear them out for you. It also likes to keep as many things handy as possible so that the overall performance of your device is top notch. If Android were to completely kill off everything that your phone is doing, then it would require more resources to restart all of them and you would likely run into slowness and battery drains. By keeping certain things available to you, your phone is actually running better than it would without. So please, stop killing off tasks and let Android do the work for you.
Your goal for the week is wash your brain of the idea that having little RAM available is a bad thing. The more RAM available, the more Android will find ways to use it up which means your battery will be dead in hours. Instead, let it manage itself, so that you can spend more time playing Angry Birds or reading Droid Life.
All good now?