When I first started using Android, I had but one complaint. My battery life was woefully short. I watched about 20 minutes of streaming video per day, which I’m sure aided the battery drain, but that shouldn’t necessitate a mid-day charge. This caused some concern. How could I get the most out of my Android if I had to find an outlet to recharge it twice a day? As it turns out, the culprit was not the device itself, but rather software I had running. Twitdroid, to be specific, ran in the background and updated every five minutes. This caused considerably battery drain, and once I set the application to manual updates, my battery lasted for at least a day. Even when I streamed 30, 40 minutes of video I never had to plug in the Nexus One before bedtime. At Google Zeitgeist, Larry Page answered a battery drain question similarly. “If you are not getting a day, there is something wrong,” he said. It would appear he is correct. Again, even watching a decent amount of streaming video did not so substantially drain the battery that I had to charge more frequently than every 24 hours. So what kind of software causes drain? This type of battery drain isn’t simply limited to applications that update at certain intervals. I had a few other apps that used the 3G connection to automatically pull updates, but none of them caused drain like Twitdroid. I recently installed the official Twitter app, and while it did drain my battery a bit with frequent updates, it wasn’t quite as bad. This signals that the problem isn’t with a single type of application, but with specific applications. Does anyone know of applications that are notorious battery eaters?
How long does your Android battery last?
Previous post: Theme Review Wednesday: Groovy, Ambos, Mario
Next post: View and copy web addresses in the BlackBerry browser



4 comments… read them below or add one
I'd love to see a list of resource hogs. My power is depleted way too fast.
Part 1: TuneWiki.
Also ShopSavvy.
As the proud owner of an Android phone for … oh, just a little over 3 days now, let me relate my own findings :)
I'm using a Sony-Ericsson Xperia X10, and my experience is based on the flavour of Android that is available for that device and that device alone. 1.6 nominally, but who the hell knows what they've changed. As I explain later, in my cases I don't know if those apps were actually the source of the problem – they may simply be exposing bugs in the Android image provided by Sony-Ericsson.
So basically under normal circumstances Android will put the phone almost completely to sleep a short period of time after the screen has been turned off. This uses almost no power. Maybe 1-2% of my 1500mAh battery every hour. I fully expect that if I left it "off", it would last at least two or three days.
When the phone is in this almost-powered-down state, a few things will wake it back up. A timer going off is probably the most common event (e.g.: an alarm clock, an app which has set a 5-minute timer so it can download feed updates, etc.). There are in fact many flavours of timers and events which will briefly wake the phone up, but you'll never notice them unless something's really broken. Network traffic will, of course, also wake the phone up (e.g.: an incoming phone call).
However, in order for Android to so aggressively save power – shut down the phone almost completely – applications need to co-operate with the OS. You see, there are too many use cases for applications to do some processing while the screen is off. So there's all sorts of behaviour governing this area. If you noticed that Twitdroid was causing massive battery drain (couldn't get through a day with it on, could easily get through a day with it off), then it was either poorly-written, or exposing a bug in the Android code supplied by your phone manufacturer (which in turn got the code from Google).
Twitdroid _should_ say to the OS "wake me up in 5 minutes" using a standard API (I think Timer is the one that's generally used). This will let the phone sleep almost all the time. If it uses a (Partial) Wake Lock instead, then you're buggered – Android has no idea that Twitdroid doesn't legitimately need a Wake Lock, so Android respects Twitdroid's Wake Lock and won't shut down the phone. And Twitdroid might be doing something even _more_ obscene.
In my case, TuneWiki was my main culprit. It was preventing the phone from sleeping (or exposing a bug in the Android code provided by Sony-Ericsson which prevented the phone from sleeping), and for my Xperia X10, this results in probably 10% of my battery evaporating every hour. That's about 10 hours of battery – WITH NO USE. Truly ridiculous.
The Spare Parts application can help you. If you open it up, and go into the "Battery Information" screen, you'll see how long it's been since the phone was booted. (You might also be able to get this data from *#*#4636#*#*.)
Now, go into the "Battery history" screen and select "Other usage", "Since last unplugged". Click the "Running" bar. If the "Time spent without sleeping" amount matches the length of time since the phone booted, _something_ is preventing the phone from shutting down. It will suck down power like mad.
I use my phone very heavily, and have a number of applications which poll the Internet for data regularly (5 minutes in some cases, 30 minutes for others).
My "Running" percentage is rarely more than 25%. If you see it higher than 85%, I'd say something is seriously wrong. 50% might be okay, depending on what you're doing. But given what I've seen, I'd personally think that even that's very high.
Playing video, I think, uses less power, believe it or not, than the phone being unable to shut parts of itself off. I haven't checked this conclusively, but it'll be interesting to see.
So, how can you tell what application is at fault? In the "Battery history" screen, select "Partial wake usage" instead of "Other usage". You'll see which apps have officially registered with the OS for partial Wake Locks. But not all. In my case, "Android System" was the one which was responsible. Hardly helpful.
What then? I don't yet know of any particularly good way of figuring it out. Hopefully Android 2.2 (FroYo) will provide some additional end-user-accessible tools in this regard. If not, it's theoretically possible to write an app which does all the grunt-work :)
So, I've been carefully monitoring which processes were running using ES Task Manager (also in the Market). I manually kept a log of:
* Time of check
* How long since the phone was rebooted
* How long the phone has been "Running" for
Each time I checked, about once an hour, I added a line. I calculated out how long between checks, and how long in that time the phone was running for. I've come to expect about 6 minutes of "Running" time no matter what. I suspect the phone doesn't power itself down, for the most part, until six minutes after I turn off the screen.
If I saw that the phone had been running continuously since I had turned it off, I looked into the process list (using ES Task Manager) and recorded some likely suspects. Eventually I narrowed it down to TuneWiki and ShoppSavvy.
About my usage:
I'm a heavy user of apps which run in the background. The majority of them are harmless, and don't cause major battery usage. In particular, I _do_ have Email running, GTalk running, GMail running, RemindMe, Beem (an IM client), BBC News, NPR News, Paperdroid, and similar such things. Don't assume that something's causing a problem because you see it in the list every time. Most of them are very well-behaved. And try not to get angry at the application developers if you do find a culprit – it could just be that they're exposing a bug in Android or – worse yet – some manufacturer-provided code. Just be sure of your numbers, be sure of your conclusion, and report the problem to the app developer.
Enjoy, and I sincerely hope you don't have to go to the bother, and that all the apps you use behave well and don't happen to expose any bugs in the Android code you've been provided :)
when i use my htc hero for wifi tethering (3h/day) it will survive 1/2 day :(