Adventures in iPhone 4S Battery Life
No doubt much to the annoyance of the handful of people who read my updates on Twitter I've been having nothing but terrible problems with the battery life on my iPhone 4S. I previously had an iPhone 3GS, and while hardly stellar, the battery life was at least acceptable. Normally by the end of a working day I had about 40% life left in the beast. I'd charge it overnight, and start again the following day. I upgraded my 3GS to iOS5 when it was officially released, and this battery usage didn't really change.
A few months ago I got a new iPhone 4S. The first thing I did was set it up from a backup of my old phone. So exactly the same settings as my 3GS on iOS5, but right from the start the battery life was atrocious. I did a few experiments, including taking the phone off charge at 8am exactly in the morning, leaving it on standby, not using it at all for 4 hours, and then at midday turning it on. At that point it at only 68% charge left, and in the usage section (under Settings > General) it had been "in use" for about 3 hours 30 minutes of the 4 hours since it had been plugged into the mains.
That's right. I hadn't used it at all, but it had been "in use". That's where the battery life had been going.
I did all the obvious stuff. Turn off notifications, disabled location services, stopped all background apps, all to no effect.
Now at this point I should say I have two friends, including my wife, who got iPhone 4S phones at exactly the same time. They had none of these problems. They could run their phone for two days without charging, and in a similar test to my 4 hour one above, their phones would have used about 5% charge, rather than over 30%.
After a bit of research I decided it might be to do with the fact I set my phone up from a backup, so I did a full restore (a DFU restore) and set my phone up again from scratch. Same behaviour. Argh. I realised that I was going to have to remove everything from the phone, and approach this in a more methodical way. Since I use my phone for work, this was somewhat tricky to do, but the Christmas holidays have proved the ideal time.
First thing I did was a DFU restore again. This is basically a full wipe and re-install of the firmware. I charged it up, and then examined the battery life over a few hours. Configured only my iCloud account, sync'd up music, but added no more. No apps, no nothing, and waited. A 2% drop in two hours. It looked fixed... My four-hour time limit expired... 5% usage. Sorted. Now to add back on my email accounts. These are 4 Gmail accounts, all set-up as Exchange accounts. These were my main candidates for battery drainers. I set these up, and changed the notifications settings to be "banner" and "appear in lock screen". This time I left it overnight...
13 hours and 18 minutes since the full charge, the phone was now at 79%. It had been "in use" for 1 hour 26 minutes. Plotting the date in a graph in Excel show a steady, but much reduced, battery drain since full charge. Adding the email accounts had no discernable effect.
I now enabled location services for the weather widget, installed Facebook and Echofon with notifications. Left for a few hours. Again, no real change to the battery drain rate. It was now at 15 hours and 44 minutes since full charge, and 72% left. The only dip in the graph from the steady rate was at the 10-minute period when I download and installed the two new apps.
The next step is to add all my old apps back on, this time I'm not going to add any to the notification centre, and only enable location services on a handful of apps, but like I said at the start, I'd already tried disabling these before.
All in all, it looks like the battery life issues have gone. But it's wholly unsatisfying! I'm still not sure what causes the problems. And my "fix", isn't really a fix. I feel like I just got lucky this time. It seems to me that there is no obvious change the end-user can do to sort out the battery life problems on the iPhone 4S on iOS5. The issue appears to be in the firmware. All I can suggest is do what I did, wipe the phone and set it up fresh. Like I say, I did this once before already. So it's not a 100% guaranteed fix. And obviously I've been running this less than a day, and I have yet to put all my apps back on. So we shall see.

