rss
twitter
    Find out what I'm doing, Follow Me :)

Task Managers on Android..... and why we don't need them

If you do a Google search on Android Task Killers, chances are you’ll find just as many links in support of them as you will against them. Let me start off this post by saying I understand some users want a certain level of control over there devices, that's great. If you want that much control, to a point where you know what you are doing then using a Task Manager. My issue with them stems from the fact that everyone and their mother is recommending them to people who are new to the platform. People who will go in and hit the dreaded KILL ALL switch because they do not understand how they work or what the possible consequences are. Task Killers have been around since Android became available, mainly because it was a new operating system and many former windows users were used to having to open up a task manager and stopping programs from running. Before I switched over to the G1 I was using a T-Mobile Dash and frequently went into my task manager to clear out whatever was making my phone run slow. Android did not have a way to do this natively, so developers came to the rescue creating apps that allowed you to see what was running in the background and “kill” it; only applications don’t run in the background, at least the way we are used to. "read more"Android was designed from the ground up with multitasking in mind. Dianne Hackborn, a Framework Engineer on the Android development team at Google, wrote a blog article on the subject of Android Multitasking abilities that goes into detail about how Android works.

“We don't want users to worry about closing their apps, but rather make it appear that all of the applications are always running. At the same time, mobile devices have hard limits on memory use, so that a system will degrade or even start failing very quickly as it needs more RAM than is available; a desktop computer, with swap, in contrast will simply start slowing down as it needs to page RAM to its swap space. These competing constraints were a key motivation for Android's design.”

So, Google intended to allow applications to appear that they were always running, when in fact they aren’t so your system doesn’t start to have issues. Blackberry users are all too familiar with these issues as many are used to daily battery pulls to keep the device functioning normal. Every time a user launches an application, a process is started which allows the application to run, some applications may use the same process or one application may use several processes. When a task manager is used, you might see a process “running” but that does not mean an application is actually doing anything. When the user leaves an application, its process is kept around in the background, allowing it to continue working (for example downloading web pages) if needed, and come immediately to the foreground if the user returns to it.

When Android was first introduced, there was not a way to go in and stop an application, and so if a poorly coded app was not working correctly, there was no UI element to stop the application. Google implemented a “Force Stop” option in Android 1.5 under the manage applications section of the settings menu, but this option was intended to be used if an application became unresponsive. Developers soon realized a way to abuse the api that was responsible for the “Force Stop” action in order to provide a one click way to stop applications. The problem with this is that it makes EVERYTHING about the app stop working: processes, services, notifications, alarms, everything. This can cause issues if the customer has an alarm set and they “kill” the alarm from their task manager list, or the mail application will no longer check for new messages.

The section in Dianne’s article titled “When does an application “Stop”, dives pretty deep into what happens to applications when the user stops using them.

“The fact that you can see an application’s process “running” does not mean the application is running nor doing anything. It may simply be there because Android needed it at some point, and has decided that it would be best to keep it around in case it needs it again. Likewise, you may leave an application for a little bit and return to it from where you left off, and during that time Android may have needed to get rid of the process for other things."

In reference to battery life, “killing” an application that is in the background will not necessarily save any battery life and is usually just a placebo effect. Android smart phones generally take a few charging cycles for the batteries to start to last more than a few hours after heavy usage. By the time most users install a task management application on the phone, it has already gone through several cycles and the battery life would show improvement, in these cases the task manager is not improving the battery life. DRAM cells in smart phones use power regardless of if they are being used to store anything, Android is designed to keep applications that were recently used in a dormant state in the ram so they can be brought back to front when called upon again. These dormant apps, processes, and services don’t cause the DRAM cell to use any more battery life than if it was empty.

As for the perceived speed increase, I won’t argue that users of task killers don’t appear to see a speed increase immediately after using a task manager, but in the long run you are requiring your phone to restart an application from the beginning instead of the paused state when you need it. When an application has to start from scratch, it takes a little longer to start up and one can also argue it possibly draws a little more power from the cpu.
»»  read more