This is what I've always told folks who ask about my Nexus One's need for a task killer: "Never used one, no need." On the rare occasion that you do find an app that backgrounds incorrectly, uninstall it like any other buggy app. Everything else Just Works.
How do you identify the buggy app? My wife's Nexus One seems to be exhibiting the symptoms but obviously I don't get to observe it in general use to give me some intuition on what's causing the issue.
This gives you an excellent display of what hardware and software components have used the most of your battery power. Take a look at the applications using the most battery, and you can either find apps that have inefficient background processes, or apps that are set to update their data too frequently.
Edit: My current list: Display 41%, Cell Standby 28%, Phone idle 25%, Wi-Fi 8%; Everything else: peanuts.
As an iPhone owner: I have no idea what a "task killer" is or why I would even consider using one...
I'm a supporter of Android (I know many happy Android owners), but this post screams to me "Apple does the things they do for good reasons".
EDIT: Sheesh. I had read the article. I was referring to keeping these sorts of things out of the app store. I'm familiar with the task model of the Android SDK and understand that this isn't a problem with Android, it is a problem with the open ecosystem. Open ecosystems are a good thing sometimes, and they are a bad thing sometimes.
"Now, it’s true that there are task manager apps in the Android Market. But they are not necessary. The Android system doesn’t come with one and doesn’t need one... There are a lot of things I like better about the iPhone than Android. The multitasking architecture, however, has been an Android advantage, and iPhone OS 4, I think, will pretty much put them on equal footing in this regard. There are technical differences, but they’re small differences, not big ones."
The device that you own is irrelevant, a "task killer" kills tasks. If it were any more clear you'd be able to see through the phone.
Additionally, the point of the post is that using the task killer is bad and that "Google does the things they do for good reasons". At no point does Apple even factor into the equation.
I'm a long time iPhone owner (just upgraded to 4 from my 3G two weeks ago) and just received a Droid X on Friday through work (my first Android phone); I'll be carrying both for the foreseeable future. I'm digging various aspects of the Droid, but WOW is it easy to end up with a ton of processes running on the thing - and it is very annoying to have to go over to my task killer frequently to shut them down. According to this article I've been "doing it wrong," so I'll let them all run freely for a while and see what is what.
At the moment I think I prefer iOS 4's version of "almost-multitasking-sometimes", but we'll see how I feel after I get used to the 'droid way of doing things.
Android shuts down the processes at the end of the task queue if it needs more system resources. Running a lot of apps isn't a concern - this isn't Windows.
The reasons I was given for shutting down the tasks wasn't system resources - it was battery life. That reason may be bs as well, but I'm not sure how the Droid would decide when to kill processes at the tail of the queue to conserver battery life. Does it expire them after a certain period of inactivity? Only allow X apps to run at Y% battery?
Think of apps more as asynchronous event handlers rather than processes. When you take an action, some app wakes up and handles the event. They are always memory resident, but that doesn't mean they are doing anything.
If I understand correctly it depends on how well or badly behaving the applications are. I believe the judgment Android makes to close down an application is primarily free memory (not battery life).
This gives a basic overview of how application activities behave (see the diagram a few lines down):
Your app may need (implementation specific) to take explicit action (SurfaceView::surfaceDestroyed) to stop the rendering thread before being backgrounded,
The point of this is that you don't need to shut them down. The android system does that for you.
The idea of processes consuming resources is a mental model people developed on desktop OS's that they need to shed for Android. When each process is assumed to correctly serialize its state and can be killed at any time without consequence, the OS can keep the system perfectly snappy without the user having to worry about it.
This is a user education problem, not a technical problem. This is why android doesn't make it easy to see what processes are actually running.
I'll agree that it is a user education problem if that is the case. The first thing every Android user told me after I told them I was getting the Droid X was "download Advanced Task Killer." Every single one. I'm certainly willing to adjust my use now that I know I'm using the phone improperly, but this is by no means something that I was alone in being mistaken about. (Also not sure why I deserved a downvote for what appears to be a popular mistake.)
My own personal experience agrees with the need for Advanced Task Killer. When I leave my nexus one alone for a few days, it inevitably starts to slow down (sometime pausing for as much as 10 seconds totally locked up). I'll open adk, and see that I have 40M of free memory. I kill everything, and the phone is instantly snappy and quick again.
It doesn't need doing as often as on my old G1, but it needs it. I don't know if that is because I am running cyanogen mod (5.0.8, which is based on 2.1) or what, but you can pry adk out of my cold dead hands. Maybe I have some buggy apps. But adk makes my phone usable.
Android doesn't seem as smart as it supposed to be, but I still like it.
You have a misbehaving app. My N1 goes for weeks with no problems, and that's been the case with stock 2.1, CM5, and the Froyo-based CM6. Find the bad app and nuke it, rather than perpetually treating the symptoms.
To be fair though, this exposes a design flaw in Android. Technologies like protected memory and pre-emptive multi-tasking are supposed to prevent applications from gumming up the works. Along the same vein, we need some way to identify and limit the resource usage of apps on Android. So now I can go do binary search on my applications to see which one the bad one is, but am I supposed to tell my girlfriend to do that on my old g1? It's a BAD (broken as designed) issue with Android.
iOS4 has one. At the home screen double press the home button. Then just hold an wait on an app for the option to kill it. I've used it a few times. Sometimes apps need smacking around.
Sadly, Verizon insists that a task killer is essential to maintain free memory. I've tried to convince them otherwise--watching the ADB logs should be sufficient to conclude that the memory manager is doing its job just fine--but no luck. I do keep white killer around for debugging my own lock-prone services, but I can't say I've ever needed it for a published app.
I think the motivation for this comes from people's personal experience with disk thrashing. On a desktop, getting to 100% memory usage is a big deal, because it means you're already using a lot of swap.
They just haven't relearned their habits for systems without a platter.
Oh of course. It's just that the meaning gets disconnected from the message along the way. Disk thrashing happens when you get close to 100%, but people quickly simplify "don't let my memory get used up to 100%" into "don't let my memory get used up ever."
> On a desktop, getting to 100% memory usage is a big deal, because it means you're already using a lot of swap.
No it doesn't. Linux, OS X and Windows all use memory not used by apps to cache storage (and other things). When an app needs more, dirty stuff (that's changed) is quickly flushed to disk and clean stuff (already on disk) is immediately thrown away.
We saw the exact same thing when Vista came out and people failed to understand Superfetch. All the moaning and groaning that went on about Vista being a memory hog when most of the usage was Superfetch preallocating memory to improve system performance.
> On a desktop, getting to 100% memory usage is a big deal, because it means you're already using a lot of swap.
But that's not even true for any OS more modern than Windows XP. Linux, Vista, 7 and OSX all keep huge amounts of data cached when you don't need the memory, just because they can and it's more efficient to restart stuff pulling half of it from RAM than re-reading everything from disk.
My macbook currently shows 2.27GB Free out of 8GB RAM, but 2.27GB of those are marked as Inactive (they're cache holding old data which might yet be needed again), yielding a total of 5.73GB in active use. The rest can be reclaimed and reused at a moment's notice if need be.
As of the end of June 2010, Windows XP is the most widely used operating system in the world with a 54.6% market share, having peaked at 76.1% in January 2007.
The people who sell phones are idiots. Twice now AT&T employees have tried to tell me that Android phones only have AGPS, which isn't real GPS, and just uses cell towers. There are so many things wrong with that, that when you try to correct them, you just sound like an obnoxious windbag and they tune out.
I have the completely opposite experience on my HTC Eris. If I don't use a task killer I get lag problems (especially with dialer delay) It becomes unbearable after a couple of days. Everything is perfect a few seconds after a trip to ATK. I'm not sure if this is a resource management problem or just a bug in the HTC Sense apps.
My wife's phone (Eris) has the exact same issues. I put a task killer on, and immediately the lag issues were reduced. I've just tried switching from Sense to the stock home app and removing the task killer to see if it would help. Interestingly my own phone (Droid) has never had any issues and works fine without any task killer apps.
Up until Froyo (2.2) I had to kill tasks every now and then (or simply reboot) because it was slowing down to a crawl. All the animations were getting choppy, took a lot longer for applications to start, and so on. I guess they fixed or tweaked something in 2.2 because for the past moth I didn't have to kill anything yet; I have the same apps as before. Unfortunately they also broke some stuff in FRF91 (oddly enough FRF83 was better / more stable for me...)
So true, I only installed one because it was one of the demo apps the CSR installed on my phone to explain how the app store works. I used it occasionally and then realized it was pointless.
I'm not trying to be an Apple fanboy here, but this is sort of an interesting example of what happens when you give your users more information about the system than they need. People see these stats and make incorrect assumptions about what they mean. iPhone on the other hand doesn't give you this information, so people ignore it, which works out fine.
You can kill processes with standard Android, but it is buried under the system settings under applications or something like that. I don't know about memory usage though.
interestingly enough, with the advent of OS4 bugs in various 3rd party applications become much more visible. Skype for example sucks 20% of my 3GS (1 year old) battery per hour if it's running in the background.
Even if it might look really cool, the task manager functionality of the iphone is really badly discoverable (I've had coworkers ask me how to fix their battery drain, not knowing how to kill tasks) and clunky to use if you need to regularly quit application (which you do with skype).
I guess it's my fault though - I wanted multitasking for Skype and now that I have it, I don't want it any more.
I'm sorry, and I don't mean to whine, but I don't think this is really HN material. Pretty much everyone who's used a spinlock instead of a semaphore knows that a context switch can be more expensive than the alternatives. For a nontechnical audience (Reddit, nowadays), this may be original, but I hope it's not so revolutionary for most of us.
This in turn reminds me of an april fools joke in the german c't magazine where they've shown this software of theirs that puts an end to the huge CPU load of the idle process.
Unfortunately, the article doesn't seem to be available online.
I use a task killer as not all apps are that obedient. The gameloft games won't die when running in background. They continue to consume a whole lot of resources.
Ideally we shouldn't need a task killer. Unfortunately, real world has lots of clumsy programmers.
65 comments
[ 3.4 ms ] story [ 161 ms ] threadThis gives you an excellent display of what hardware and software components have used the most of your battery power. Take a look at the applications using the most battery, and you can either find apps that have inefficient background processes, or apps that are set to update their data too frequently.
Edit: My current list: Display 41%, Cell Standby 28%, Phone idle 25%, Wi-Fi 8%; Everything else: peanuts.
I'm a supporter of Android (I know many happy Android owners), but this post screams to me "Apple does the things they do for good reasons".
EDIT: Sheesh. I had read the article. I was referring to keeping these sorts of things out of the app store. I'm familiar with the task model of the Android SDK and understand that this isn't a problem with Android, it is a problem with the open ecosystem. Open ecosystems are a good thing sometimes, and they are a bad thing sometimes.
http://daringfireball.net/2010/04/mobile_multitasking
Additionally, the point of the post is that using the task killer is bad and that "Google does the things they do for good reasons". At no point does Apple even factor into the equation.
At the moment I think I prefer iOS 4's version of "almost-multitasking-sometimes", but we'll see how I feel after I get used to the 'droid way of doing things.
This gives a basic overview of how application activities behave (see the diagram a few lines down):
http://developer.android.com/guide/topics/fundamentals.html#...
It is possible for a badly behaving application to create a thread which would continue to run whilst an activity is not visible.
Take this as a common example for an Android game app framework: http://www.helloandroid.com/tutorials/how-use-canvas-your-an...
Your app may need (implementation specific) to take explicit action (SurfaceView::surfaceDestroyed) to stop the rendering thread before being backgrounded,
The idea of processes consuming resources is a mental model people developed on desktop OS's that they need to shed for Android. When each process is assumed to correctly serialize its state and can be killed at any time without consequence, the OS can keep the system perfectly snappy without the user having to worry about it.
This is a user education problem, not a technical problem. This is why android doesn't make it easy to see what processes are actually running.
It doesn't need doing as often as on my old G1, but it needs it. I don't know if that is because I am running cyanogen mod (5.0.8, which is based on 2.1) or what, but you can pry adk out of my cold dead hands. Maybe I have some buggy apps. But adk makes my phone usable.
Android doesn't seem as smart as it supposed to be, but I still like it.
I mean, we're always after the best memory and the best CPU's only to end up running around feverishly making sure we use as little of it as possible.
They just haven't relearned their habits for systems without a platter.
No it doesn't. Linux, OS X and Windows all use memory not used by apps to cache storage (and other things). When an app needs more, dirty stuff (that's changed) is quickly flushed to disk and clean stuff (already on disk) is immediately thrown away.
That's a very blanket statement for a segment of the market that covers only about 5-10% of desktops.
Wait what?
Wait what?
But that's not even true for any OS more modern than Windows XP. Linux, Vista, 7 and OSX all keep huge amounts of data cached when you don't need the memory, just because they can and it's more efficient to restart stuff pulling half of it from RAM than re-reading everything from disk.
My macbook currently shows 2.27GB Free out of 8GB RAM, but 2.27GB of those are marked as Inactive (they're cache holding old data which might yet be needed again), yielding a total of 5.73GB in active use. The rest can be reclaimed and reused at a moment's notice if need be.
As of the end of June 2010, Windows XP is the most widely used operating system in the world with a 54.6% market share, having peaked at 76.1% in January 2007.
Why are you trying to correct them?
127.0.0.1 reddit.com www.reddit.com
to my /etc/hosts on the machines I use for working.
Go to a Verizon store and look at their Android phones, I bet most of them have a task killer running.
Even if it might look really cool, the task manager functionality of the iphone is really badly discoverable (I've had coworkers ask me how to fix their battery drain, not knowing how to kill tasks) and clunky to use if you need to regularly quit application (which you do with skype).
I guess it's my fault though - I wanted multitasking for Skype and now that I have it, I don't want it any more.
I have a N1 and have never seen the need for a task killer. Quite odd that people would install one.
Unfortunately, the article doesn't seem to be available online.