Moore's Law doesn't apply to batteries
It just doesn't.
Creating a multitasking mobile isn't so easy after all, Google's top execs are discovering. Co-founder Larry Page was pressed with concerns about Android's iffy power management yesterday, and according to reports, all he could offer was a bigger battery. Eric Schmidt blamed third party software developers for using the phone's …
I just upgraded from a T-Mobile G1 to a Verizon Droid Eris, and I can honestly say the battery life appears to be almost double that of the G1, with even a few more apps running on it. The Eris has v2.1 of Android, I believe the G1 had v1.6.
Android is a good mobile OS (from a users perspective anyway, don't know about developing for it) although the Market could be made a bit slicker.
Err, yep - a prediction involving transistors isn't going to quite work on batteries, now is it?
I get what you're driving at, though - you can't quite double mAh per cubic millimetre every 18 months. That said, battery tech does improve, albeit on a longer time scale. Also as electronics get more minaturised, it leaves more room for battery (assuming that the freed-up space doesn't get shunted off into more electronics for new features, etc).
Paris, because packing more into her per cubic mm would make for an interesting experiment, eh?
For my tuppence, I think it is pretty impressive that my Zen, which is like a really fat credit card, will run for around 20+ hours off a single charge. Think of that a decade ago. Part of it is the technology, the ultra-efficient ARM core and chips running lots lower than the 'traditional' 5V, but part of that is also increases in battery technology. Who remembers the "long life" batteries for video cameras? Things almost as big as a small beer can, or chunky belts you wore, only to add a few extra hours of service time? Batteries get smaller and smaller, power output keeps going up. My first AA rechargeable cells were 450mAh, my current ones 2200mAh.
Though, it will take work from the OS to rationalise how it operates. I'm not certain that devices based upon Linux/Windows backgrounds will necessarily scale to the domain of a mobile phone. This is where the Psion angle comes in. The multitasking isn't true multitasking, however I have two word processor documents, a database, and a spreadsheet loaded on my 3a, all can be switched between at will, along with pasting data between applications. There are background operations (clock, etc) as well. The machine is by no means fast, it won't ever play an MP3, but for early '90s tech, it is extremely well designed in that two AAs offer me a lifetime measured in *MONTHS*. Optimising for minimum power draw is a skill that will require a lot of thought in the design of the OS, no to mention difficulties inherent in having radio transmission devices (walking power drains).
...which is why I've never understood this complaint. I just charge my phone when I'm asleep. Even if I'm away from home there's bound to be a USB cable handy and if I'm going to be away for more than 48 hours I just remember to take a cable and/or charger myself.
I understand that we've become more reliant on technology but if remembering to charge a phone is too much for somebody maybe they should set a reminder on their phone?
I moved from many years as a Nokia user (N series for personal and E series for business) to the HTC Desire and the first two days I had the Desire I was horrified that the battery JUST lasted a whole day of normal use.
However I now have a task killer to close offending apps, and best of all I've put 4 widgets on one of the home screens. Each widget controls either Bluetooth, Mobile data, Wifi and GPS. Tap the relevant icon to disable/enable the radio for each one.
By default I had the handset set to use mobile data thinking that 3G was less of a drain than wifi... how wrong was I.
Most of the time I'm at home or at work - both of which have wifi. Now I just leave wifi on all the time and mobile data I switch to when I'm out and about and want some data.
Now FriendStream is always up to date, my GMail messages are always in sync and I know my RSS feeds are up to the minute - yet I get a good 2 days worth of battery from my handset... which is about the same / slightly more than my old Nokia N82.
It's worth pointing out that most of Nokia's popular handset which Android is targeting (teens, 20's and 30's) only had a day or twos worth of battery anyway... and the last I heard the iPhone battery is a joke anyway. (Again, only a day or two and that's without multitasking)
True the E series is pretty hardcore, but then again the E series doesn't have the same large touchscreens or social / "always-on" apps constantly polling data. (Other than MfE which is very, very lightweight on data and slower than GoogleMail on my Desire)
Non-rooted, no terminal - just using the awsome HTC Sense UI to add some in-built widgets I get pleanty of battery from the Desire. No worse that other handset I've used anyway - plus I also ensure I have FriendStream, Googlemail and Facebook to hand without 2 minute long refreshes when I want it.
I have been saying this for a long time now.
Android/iPhone are still in the relatively early stages, it will take a while for them to catch up to Symbian in terms of functionality and efficiency. Hopefully Nokia will take full advantage of the breathing room.
On the other hand Symbian really needs to get itself a nice UI.
Power efficiency is only going to become more important as screen sizes increase.
Saw a 50% life increase after switching down to 2G+WiFi on my G1. Even more impressive when you consider how broken WiFi is on Android, not using the real power saving sleep modes. Given the piss poor quality of 3G in most of the UK its no loss.
Pretty easy to spot the power sucking apps as well and tame them. Netcounter in accurate mode is one of the worst. Right now I'd be getting 2-3 days between charges if I didn't browse the morning away in bed ;)
Were the iPhone any better, then yes. But it isn't. So no.
I would like to see a third figure quoted for mobile phones alongside standby and talk-time: screen drain. Most of the time I use my phone it's not for talking but the big ol' screen is drawing power nonetheless. These days that's fairly critical.
The iphone needs quite a bit of improving when it comes to battery life -- or the batteries at any rate.
If the rumors are correct and the next generation is slimmer on the inside -- thus allowing for a bigger battery -- it might happen.
Then again, there's the potential weight issue to contend with.
I understand people wanting the GUI to look flashy and all, but I find it madness when a phone insists on going through artsy-fartsy animated transitions (which rapidly become pointless after you've seen them a couple of times) just to do something as prosaic as navigating a menu. Maybe this is a pretty small brick in the wall, but it just boggles my mind especially when it can't be turned off.
is still rubbish *despite* not having true multi-tasking. And what about the symbian comparable; the nokia n97? Doesn't that have rubbish battery life as well?
The thing sucking up the battery is the 3g and wireless, and it's the same with all smart phones.
Differences in phone OS arn't really going to make a difference. And if they do, Orlownski certainly didn't bother to put any numbers up to support his argument.
Andrew Orlowski write, "Apple has taken a different approach, basically disallowing all third party multitasking. The first iPhone only permitted multitasking for its own music player and in a very limited way, its email package. After two years, it added server-side push notifications, giving background applications the minimal information needed to respond. Still some way short of full multitasking."
Apple also allowed the application to save it's state when switching, so when you return to your application during a switch, you can return to where you left off... giving the user very similar results as if the application was still running in the background.
Basically, multi-tasking on the iPhone performs a similar operation that a modern OS does to an application, but at the O.S. operates at a lower layer in the operating system by saving the state of the CPU registers used by an application on the stack, during switching. Apple provides the user community multi-tasking while maximizing battery life.
The underlying iPhone is written on a fully multi-tasking kernel, but they push the battery saving techniques, up the stack to the application layer, to ensure they get maximum battery life possible.
Does the iPhone allow third party applications to run and drain CPU power when the user is not using it actively on the screen? I guess the question is: is this a bug or a feature?
- Forcing applications to restart and resume state cleans up the iPhone OS when a badly written application has a memory leak... I have seen one app which will cause the iPhone to get really sluggish if you let it run un-interrupted too long, so they are definitely out there!
- You can run a music player in the foreground and listen to it (i.e. Pandora) but it does fail to continue if you start a telephone conversation with someone... which is not so bad.
- In some ways, it is a benefit (do you want to have Pandora drown out the person who you are paying minute to talk to?), while in other ways it is a drawback (no playing romantic music in the background while talking to your wife on Saint Valentine's Day!)
Suggesting the phone does not multi-task is inaccurate, it clearly does. The badges, pop-up messages, new email, new phone calls, etc. are all examples of pre-emptive behavior. Switching between well written applications and returning to where you left off is an example of multi-tasking behavior. The gained battery life to enhance user experience by making the sandbox developers use more rigid is a calculated trade-off.
What's the IT Angle? Apple is all about Business. Make good user experience, make more money.
It does commonly amuse me when people compare different technical things when they blatantly don't know what they're talking about.
Android and iPhone's *default* app behaviour is quite similar, which means that this assumption that every app is multitasking and can cause memory leaks is highly overstated. Normally, when you switch away from an Android app, it is paused (pending removal), it's state is saved and it does no more work. The *difference* is that Android also has the ability to start a long-running fully-fledged service which can do everything a frontend app can do. Most apps don't do this, so would never be able to affect the battery. You have to specifically write your app to be multitasking to have that functionality.
And no, iPhone (<4.0) *doesn't* do multitasking, no matter how you try and redefine it. It's just marginally clever with it's state-restore ability. Try playing music in Spotify and then writing a text message. The music stops.
between multitasking and an interrupt service routine but whether or not either of these affects the battery life really depends on the interaction between hardware and the OS.
Given that Apple control both H/W and O/S you'd expect them to have a much better battery life than most Android phones ... the odd thing really is not that the iPhone battery life is so much better - it's why it's so poor given Apples control over the entire phone.
...if the only application for simultaneously playing music whilst using the phone for something else that you can think of is "playing romantic music in the background while talking to your wife on Saint Valentine's Day!"
I enjoy being able to surf the internet, respond to text messages and read my email whilst I'm listening to music, just a shame apple won't let me use spotify (yet).
You seem to suggest that the iPhone with it's non-multitasking OS would be more efficient, however I can get 2 days out of my Android which I never got with an iPhone.
And what Google stated was true, if an application leaves the screen on for extended periods, polls the internet every 30 secs or runs GPS continuously in the background then of course it is going to eat through battery - it would on any phone. What the point of the presentations seemed to be getting at was that there are many ways to run an application or service which work effectively without needing so much battery power and it is generally poorly written apps that are responsible.
There are many applications for a PC that leak memory or have high CPU utilisation. These are also badly written applications that affect the use of the PC.
The gist of the talk was to say that the main reason for very poor battery life is that certain apps consume a much higher level of battery than they should for doing the task that they do. If you still want to use those apps and the developer won't change it then there is no magic solution, you will need a bigger battery.
Finally the comment "In the long run, Page and Schmidt are right - you can't really improve power management easily if it isn't great to begin with, except by adding hardware."...
Surely if the power management isn't great to begin with, then you can improve it a lot, if it was fantastic to begin with then it would be hard to improve it.
Overall though, now that phones are fairly standard mini-usb (or compatible) for charging, holding 2 days power is enough for me. I have a charger by the bed so it gets plugged in each night, a charger in the car and, for heavy GPS work, an external 3000mAh battery that I rarely use.
I get better battery life with a Motorola Droid than I ever did with an iPhone 3G, for my normal mixture of all-day streaming audio, web browsing, and email usage. Perhaps this is simply due to better 3G coverage from Verizon than AT&T (i.e. lower radio power), but I have no trouble using 3G all day long on a single battery charge.
... but aggressively killing apps when I would logically close them were there such a button seems to lead to no substantial battery savings on my Nexus One. That said, I'm not much of a user of the Market, I imagine things could be worse if you downloaded some poorly behaved software.
... doesn't mean they use any power. Android just keeps them floating around in a suspended or low priority state to save launching them again. The APIs are perfectly clear on the matter - once your app is hidden and after its given a chance to save it's state, it can be killed at any moment at all.
Task managers exist for people who absolutely want to kill apps, but the biggest power hogs by far in a smart phone are the 3G & wifi. Apps are not the biggest concern by any measure.
Generally speaking, phones do not really have backing storage (a filesystem to most people), but the objects that you drop onto the phone reside in the same memory as running programs. This makes the way that apps use memory different from, say, a PC, that has RAM for programs that are running and a disk for those that aren't.
On a PC, programs are copied into RAM from the disk, and then executed. When they stop, they are unloaded from RAM, freeing up the memory.
On a Phone, when you have a program (or app) loaded into the phone, it resides in the same memory space as it does when it is running. This means that when it runs, it runs in-situ, and does not need to be copied anywhere. The effect of this is that *EVERY* app that you load on your phone occupies memory, regardless of whether it is using CPU or not. (for evidence, see what memory is detailed in the specs of, say, an HTC Desire which lists ROM (which cannot be changed) and RAM, but does not differentiate between dynamic and flash RAM, because it's all the same).
Of course, an active app may also have a working data set for information that is it using, and this can be dropped if an app becomes inactive, but I don't think that this is the way that phones work (at least, my Palm Treo doesn't (although the memory model for this could be considered archaic), it keeps all the data even if I have not used an app for months, and even through a soft reset.
You may have a file-system like interface to the available memory, for convenience when using the phone as a storage device on a computer via USB, but in reality, this is just a presentation layer to the way that the device actually manages it's memory. The only memory that is really a filesystem is probably the SD card that is plugged into the memory card slot.
BYW. This is just me extrapolating what I know from Palm devices, and it may be that it is different on the iPhone OS and Android, but I do not believe this is the case. I'm prepared to be corrected by someone with internal knowledge of either OS, however. I look forward to hearing.
Things have moved on since then. Android & iPhone are basically miniature Unix operating systems so they have a filesystem, users, groups, executables and so on. Android makes heavy use of this and virtually every app (consisting of one or more activities) is given its own user id, storage space etc. to keep it separate from other apps. Apps that need special permissions (e.g. to dial phone numbers, to access the internet, to use the camera etc.) must say so in their manifest.
The basic life cycle for an activity is that it will be created, told to show itself, told when its being hidden, told it should save state etc. Once an app's executable has no visible activities it can be killed at any time but Android only does this when memory is getting low. So more often than not apps just sit there in the background doing nothing to save the phone having to launch them from scratch each time. Android can kill errant apps too and the dev documentation suggests that if android keeps telling the user your app is unresponsive that it's going to get deleted. So better to be a good citizen for your app's sake.
There are other kinds of apps that provide services and so forth that can live for as long as they run. An example of this might be something such as an instant messaging client which could be listening messages even when the user was doing something else.
All of this has been designed into the OS and it works extremely well. My HTC Desire actually keeps a log how much power is being consumed and by what and only 3% of it is attributed to running apps. The vast majority is given over to wifi and cell signals.
iPhone OS has a similar Unix foundation, however 3rd party apps are killed immediately rather than left floating around. I believe this was seen as a quick way of ensuring apps didn't interfere with phone functionality (consume CPU, race conditions etc.). I expect when iPhone eventually does implement proper multitasking that legacy apps will still fallback on the old behaviour. I believe only apps that are updated to support whatever mechanism & conformance tests Apple require will be allowed to run in the background.
Right, first off, I need to make it 100% clear I am biased towards the iPhone. I've got one and love it. Call me a fanboi if you must.
Apple's decision on multi-tasking makes absolute sense. Lets not burn battery for no reason. Remember there are a lot of sloppy apps out there that will make your phone look bad.
So there said my piece..... well almost......
The iPhone battery life is actually not very good. Really need to charge every 48h and do a charge daily now in case I forget. So if the iPhone did multitask, it probably wouldnt last the day....
In spite of the toilet incident, I'd just say your battery is reaching end-of-life and should be swapped out with a new one. I do this with my phone (not an iPhone) on a yearly (or there-abouts) basis...unless you're using an iPhone with which you can not remove/replace the battery....oh wait. :P
Any modern kernel can suspend a process or reduce its priority so low it barely gets a look in. That's all Android does, and if memory gets tight it starts killing suspended apps. The behaviour is well defined and documented.
More likely Apple prevented multitasking as a quick and dirty workaround for the various asynchronous / race conditions that are prevalent in a phone. Android did it properly from the get go and now iPhone is going to have to implement some retrofit to make it do similar.
My experience with battery & power-saving features on Android is admittedly limited, as my wife has the only Android phone in the house (mine's backordered) and we've only had it a few days. However, I've had years of experience (some bad, mostly good) on Windows Mobile - the biggest power drains there were the radios and the screen. You could get a lot more life out of the battery on a WM device if you were willing to shutdown the radios when not in use, dim the screen, and actually terminate applications when not in use (there was a cool little free app that gave you a task list and converted the "X" from "minimize" to "close", great for making sure the browser was really gone and not animating in the background, etc.).
Maybe these are available natively or as an app on Android that I haven't found yet (note limited experience above) - what I'd really like to see is:
- A control that lets me automatically manage the radios, esp. GPS and WiFi. How about something time-based - let me set the time I usually settle in at home, and automatically turn off the GPS then - maybe come back up once a minute (or better yet, let me set the interval) and if I haven't moved, turn it back off. That way if I do up and leave, it can "autowake" without user action. Same with wifi - if within defined time windows (e.g. my morning commute, middle of the night, etc) I'm not associated to an access point, shutdown and come back up a few minutes later to see if I'm somewhere I want to connect.
- A real task manager, integrated - the app I've found now lets me open the app, select what I want to kill, and that's nice - but how about a real "close" button right on all the apps so I can clearly say "I'm done with this, now cleanup and go away".
- Options for deeper sleep - right now, the power button turns off the screen but the apps & network keep cranking (evidenced by Pandora playing right along). Give me an option to say "shut down all activity unless I wake you or you get a phone call/MMS/SMS".
- Give us screen brightness/timeout options that are a) user-selectable and b) sensitive to charge status. Frankly, if it's on the charger I don't care if ANYTHING turns off and I want max brightness. If it's on battery I want stuff off unless I need it, in time windows I define.
I don't know where you got that notion. Neither Android or iPhone development is especially easy.
In Android's case, it requires quite extensive knowledge of Java, Eclipse and then of their own classes on top.
In the iPhone's case you have to learn the Objective-C, XCode and the iPhone APIs.
Neither environment is especially easy to develop in, and IMO Android especially could benefit from far better development tools than it provides, especially for visual work.
"A control that lets me automatically manage the radios" - Setting Profiles, Locale, Tasker, Timerrific - pick an app...
"A real task manager, integrated" - you really, really, really don't need a task manager on Android. There are some very good articles, & engineer blogs about this.
"Give us screen brightness/timeout options that are a) user-selectable and b) sensitive to charge status" - see the apps above for b, and check your settings for A..
I must just be really unlucky, it never lasts a work day for me, and if i actually used it in a way apple suggest on its TV ad's ( ha ha ) it wouldn't last more than a few hours.
I have two mophies that i keep one on charge all the time.
For some reason people seem to think the current iphone os isn't multitasking, it is. they just don't switch it on for 3rd party apps. Granted it gets a lot worse when you do, try using one of the gps trackers with a 3g connection and see how short it'll run and well as how hot it'll get. But even without it the battery life is terrible. But that happens in background or foreground mode.
I get the iphone, the apps are great, but seriously it sucks as an actual phone, you see everyone blaming at&t& in the usa for the bad reception, but it was never this bad on other phones, my little candybar 6820 nokia outperforms it in every way as just a phone. The only thing that stops me switching out is the usefulness of the applications.
Biting the hand that feeds IT © 1998–2019