Why battery life sucks
Published by David Gilson at 11:22 UTC, September 6th 2010
There is a great rant over on Mobile Fanatics, about battery life in mobile devices. The author makes the case that poor battery life is down to lack of optimisation by developers, citing Android as the worst offender. Furthermore, he blames mobile platforms being based on the Unix/POSIX/Linux family of operating systems, stating that these systems were never planned to have been run on mobile platforms where energy is at a premium. Read on for commentary.
"Blackberry OS and Psion/Symbian were written based on hardware and written to compliment a device. Nowadays, your phone is being mass-manufactured and a pre-cooked OS is being slapped on. Nobody knows what platform your hardware is running before it gets it. HTC can and will swap it randomly during testing. Point is – it’s not optimized for the device."
A great irony given Android's openness. It seems lazy on the part of manufacturers to not get into the Operating System they're using and thus not create a better experience for the user. Of course, there is the question of economy, it would require a significant investment of man-hours to do this. However, are the benefits not worth it? Surely having a reputation for creating a phone with a great user experience and battery life is going to engender a loyal following of evangelistic users who will then go and do your marketing job for you?!
"So when your battery sucks and you can’t make it through the day <SARCASM ALERT> – don’t blame Nokia for shipping a 1320mAh battery. Don’t blame Apple for making their devices with a non-user-replaceable power source and please don’t blame HTC for designing a device so thin that the battery has 4 cells in it. Here’s who you can blame. Developers, developers, developers. The same people who are coding your precious 250,000 apps are the same ones who don’t give a flying frappuccino about power management. The ones who are letting services run idle in the background, the ones who don’t follow specs for protocols, and the ones who aren’t allowing you to dictate when and where you want things to happen."
Having recently tested my first Android device, I have to completely agree with this. Having focused on Symbian devices for a long time, I'm accustomed to having complete control over which applications are running and when. This is crucial for managing both power and data usage. However, my very first impression of Android was that I couldn't close down any programs. This induced a certain geek-like anxiety about my battery life, given that all the applications I had running required a data connection. There are of course third party task-killers, but a basic function like killing a process should not require a third party application!
"Oh, and blame yourself for cranking up a 100mW WiFi radio, routing packets through your 3G connection that juices about 2W, powering up a GPU to process over a MILLION instructions and driving a 300mW-sucking 4” screen just so you can watch an YouTube video of a dancing baby."
Somewhat harsh on the poor unsuspecting users who do just want to watch a dancing baby! However, there is certainly a case to be made that mobile technology is being pushed beyond the limits of current battery technology. Even if a platform did have a fantastically optimised Operating System, the likes of 4" screens and Giga-Hertz processors are incredibly power-hungry things and one could argue that they are unnecessary for what a mobile phone needs to be able to do. In fact, what with the drive to tablets, it's clear that companies are now heavily blurring the line between tablet devices and mobile phone. As a result we are seeing more "Superphones" (see Ewan's editorial), although there is a lot that can be done with the current specification level of devices, rather than trying to push specifications ever higher.
David Gilson for All About Symbian, 6th September 2010.
News Discussion
jApi NL
It's getting time to include a bicycle in the Smartphone packages . Of course with a (nokia) bicycle charger .
It might cause an explosive hype , reduce rants and make geeks happier .
:) Regards jApi NL
juwlz
It's not pretty, but you CAN kill apps on Android without a third party app:
Settings | Applications | Manage Applications | Running Apps | choose the one you want to kill, and choose force close.
Julie
Unregistered
I do not agree with all of what was written. It seemed to be based more on rant than complete facts. One big problem is that battery technology has not kept pace with the newer devices. I have to give a hats off to Apple for pursuing better technology. The fact that they can squeeze almost 10 hours out of a 17 inch MacBook Pro battery as well as over 10 - 12 hours on an iPad are testaments that some companies are serious about battery life.
bbj
From a technical perspective....
Symbian C++ is explictly designed such that apps do not have to execute if they have nothing to do - they are properly event driven. Like them or loathe them, active objects are designed all around only needing to respond to events if there is some work to be done. No polling should ever be occuring.
In contrast Android (or more accurately Java) fails quite miserably on this front. To perform animation on say Android, you have to have a thread of execution that goes round a loop as fast as it can, permenantly, all the time, regardless of processor speed. You poll the timer every loop to determine enough time has passed you then do some work. As bad as you can get for battery life. Want to partion anything, launch another thread + let it burn as many cycles as it can.... etc.
Obviously the above also applies to Java apps running on Symbian so its not immune.
Apple OS fundamentally has the same problem, as does Windows, old PalmOS, any brand of unix/linux etc etc as they are all based on polling for events in their 'getNextEvent()' loop. Sure, some of the burn as many cycles Java approach to life is mitigated by the OS event loops but its still fundamentally the wrong thing to be doing to maximize battery life.
Quite frankly its laughable that '10-12' hours is seen as acceptable. 20 years ago we built real world mobile devices (on early versions of what became Symbian OS) that lasted several MONTHS on 2 std AA batteries. Sure they were not mobile phones with associated signalling but even so...
Unregistered
Quote:
Originally Posted by Unregistered
I do not agree with all of what was written. It seemed to be based more on rant than complete facts. One big problem is that battery technology has not kept pace with the newer devices. I have to give a hats off to Apple for pursuing better technology. The fact that they can squeeze almost 10 hours out of a 17 inch MacBook Pro battery as well as over 10 - 12 hours on an iPad are testaments that some companies are serious about battery life.
|
It would be nice if thoses devices actually offered that kind of life in reality, in normal use. I can tell you from experience that they get nowhere near it.
Sequences shortened, some steps removed.
Unregistered
Quote:
Originally Posted by bbj
In contrast Android (or more accurately Java) fails quite miserably on this front.
|
Dalvik in Android is not Java, no JRE, no J2ME. It's not even a stack machine. It uses some of the language to create classes for compilation to Dalvik, but has its own library.
bbj
"Dalvik in Android is not Java, no JRE, no J2ME"
Correct its a virtual machine.
However Java is the input language. Its pretty irrelevant that its converted to something else e.g. for a dalvik vm or any other format for any other vm. The key point as far as developers are concerned is the restrictions are defined at the input level - i.e. Java.
Sure the Android App model is somewhat different to say a J2ME app model, but both encourage a polling model, as such if you are choosing to differentiate, neither is particularly well designed for battery conservation.
Unregistered
Quote:
Originally Posted by bbj
"Dalvik in Android is not Java, no JRE, no J2ME"
Correct its a virtual machine.
However Java is the input language. Its pretty irrelevant that its converted to something else e.g. for a dalvik vm or any other format for any other vm. The key point as far as developers are concerned is the restrictions are defined at the input level - i.e. Java.
.
|
Seriously?
So the code syntax affects how the SGL, the Surface Manager and 3D libraries work?
LOL! These are C++ libraries with exposed APIs, the "java" style code just calls these APIs and glues things together.
It's true that Android devices are dire for battery life (pound for pound they are even worse than Windows Mobile) but the use of java style code is not the reason.
Unregistered
Quote:
Originally Posted by Unregistered
It would be nice if thoses devices actually offered that kind of life in reality, in normal use. I can tell you from experience that they get nowhere near it.
Sequences shortened, some steps removed.
|
Sorry but I agree with the poster. I have gotten over 12 hours out a wifi only iPad following Apple's testing procedures and similar times with a MBP. Not saying that you are wrong, but you are not correct.
Unregistered
Quote:
Originally Posted by Unregistered
Sorry
|
You are wise to apologise.
Quote:
Originally Posted by Unregistered
but I agree with the poster. I have gotten over 12 hours out a wifi only iPad following Apple's testing procedures and similar times with a MBP. Not saying that you are wrong, but you are not correct.
|
Well I can only go by what happens when I make real world use (not testing procedures - that would be as pointless as 'urban cycle' figures). I can get far more than 12 hours out of an iPad is I don't touch it.
7 hours max.
Unregistered
I was not apologizing to you directly. I guess you're having a narcissistic flare up. Anyway, I guess you are supposed to be the standard by which all Apple devices are measured? Maybe the devices, as simple to operate as they are, are just to difficult for you.
Unregistered
Quote:
Originally Posted by Unregistered
I was not apologizing to you directly. I guess you're having a narcissistic flare up. Anyway, I guess you are supposed to be the standard by which all Apple devices are measured? Maybe the devices, as simple to operate as they are, are just to difficult for you.
|
Obviously. Because when iPad owner use their devices, they always follow the Apple test process precisely.
Duh.
Unregistered
Great response that: "duh". Must have taken hours to get that just the way you wanted it.
Anyway, I've done the same tests that Apple does on their products and for the most part they are usually on the conservative side. The new iPhone 4 is miles ahead of the 3GS and 3G in terms of battery life. Another thing that is worth mentioning is that Android phones as well as iPhones sort of entice the user into doing something with it. Nokia phones are great for making calls, or sending an SMS, but they are boring utilitarian phones that beg to be left laying on the table until a call or SMS is needed. iPhone and Android users actually use/play with their phones more because they are more exciting.
Tsepz_011
Gota agree about using an Android/iPhone more. The fact that my Android has such a large display and is capable of playing pretty much any video from my PC has made me use it a lot more to watch a movie, read eBooks, web browse TONS more as i simply dont have to worry about RAM, do a lot more social networking e.g. facebook chat, twitter etc... just the way its able to handle the above so smoothly, and easily, it makes me want to use it more. People are now even playing a lot of games e.g. PlayStation-1 games on their Androids thanks to PSX4Droid etc... Ive found that using my Android like i did my 5800 for example,i would get similar battery life,maybe even an hour or two extra.
With the above being said, i agree partly about apps eating battery at a ridiculous pace, Gravity did this on my 5800,so did Nimbuzz, and on my X10 Maildroid if set to constantly keep a live connection, so will Go!Chat (facebook chat) and TweetDeck if its set to check tweets and FB statuses every 15mins. Most if not all Android apps allow you to adjust when to connect, what to download in some cases etc... They can all be closed without a 3rd party as Julie pointed out to, like most smartphone OS it takes a bit of time to get used to how Android works, its an interesting learning curve, some may like it,some may not, but once you get it battery life realy depends on how you use it.
JokeyRhyme
If you want excellent battery life (weekly charges), then just don't bother with smartphones. However, if you want powerful, flexible and fun devices then you'll be looking at charging it every one or two days minimum.
I agree 100% that Android currently makes for a very poor low-end experience, but all devices in the high-end category have issues with battery life, regardless of OS or manufacturer.
Also, Android (and now iOS) applications suspend when you leave them, and only occupy memory (which would be powered up anyway). The only reason any application would still be burning CPU cycles in this state is if it was programmed that way. It should be generally unnecessary to manually manage background tasks on Android and iOS. If you don't like applications that do work in the background, then don't install / use them, or turn them off.
viipottaja
@BBJ,
Does/will Meego suffer from the same problems as Android etc?
Unregistered
Quote:
Originally Posted by bbj
In contrast Android (or more accurately Java) fails quite miserably on this front. To perform animation on say Android, you have to have a thread of execution that goes round a loop as fast as it can, permenantly, all the time, regardless of processor speed. You poll the timer every loop to determine enough time has passed you then do some work. As bad as you can get for battery life. Want to partion anything, launch another thread + let it burn as many cycles as it can.... etc.
|
Utter crap.
Most(All?) J2ME midlets can listen for a suspend/backgrounding event. It's up to the programmer to honor these events, otherwise (yes) the code will continue to execute. It's called multitasking.
davidmaxwaterma
we always get the blame.there are many (debatably) good reasons why we don't optimize as much as possible for battery life, many are the result of compromise.
How about blaming battery developers who have promised new advances and delivered next to nothing? Longer lasting batteries would solve the problem once and for all. All we get is small incremental improvements that are eaily eaten up. Where are the fuel cells/etc? An innovation in battery tech is needed...
ving
Quote:
Originally Posted by Unregistered
I do not agree with all of what was written. It seemed to be based more on rant than complete facts. One big problem is that battery technology has not kept pace with the newer devices. I have to give a hats off to Apple for pursuing better technology. The fact that they can squeeze almost 10 hours out of a 17 inch MacBook Pro battery as well as over 10 - 12 hours on an iPad are testaments that some companies are serious about battery life.
|
wow, I barely get one hour from my Acer laptop but I have a problem with my laptop battery and windows 7. :(
Unregistered
I don't get it. How hard can it be. I'm currently running around with a N6220 Classic
Ok, it only has a 2,2" screen, and no Wifi, but I'm using 2 to 3Gb of 3G data each month (a lot of tethering).
The battery isn't large (900 mAh) and I still get around by only charging it every 2-3 days. How is this possible.
Are thos big (touch-)screens really that hungry?
nudger
This is all very well but irrespective of the power requirements of various apps and OS's, doesn't a higher capacity battery mean a longer life?
I mean, why does my N97 Mini have a 1200mAh battery when the slimmer E51 and E71 have 1500mAh? Why couldn't the newer touch screen phones have these batteries in?
I know that they can hammer the battery harder and might still need charging every night but it's surely better to have the larger capacity??
I just don't get why Nokia or any other manufacturer makes a positive decision to put a smaller battery in. I mean, it's not like they haven't got the 1500 mAh on their parts list is it?
Unregistered
The problem with battery technology, is because the inherent danger of explosion.
Newer tech battery must pass through test in order to ensure the safety of it's user.
And because Nokia make slimmer phone, this means the battery power will be reduce in order to make the battery smaller but with the same battery technology.
dun kno
For those that need a phone that will last "in the field" so to speak, just got back from a holiday in rural France where the signal was constantly being lost on my 3G-always-on phone (won't name names as negativity on forums is boring) which despite little use still required a daily charge.
On the other hand, my wife's E72 lasted 8 days without charging!
Truly remarkable, and clearly the result of (1) a good battery and (2) small screen without touch input.
Even my old 6230 could only do a week!
Unregistered
I completely agree to the fact that these devices does not offer better battery life. This is what I detest about the use of devices.
Full thread: 23 Comments / Post New Comment