Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

rs14smith

macrumors regular
Original poster
Dec 7, 2009
144
2
Question: How Does The iOS 4 Utilize Battery Life Better Than Other OSs' Such As Andriod While Multitasking?

Hey everyone,

I've been searching around the net on the question in the subject title for a while but haven't really found any useful articles that explains it.

I know the iOS 4 introduced multitasking, which of course will eat up more battery life than if you didn't have it, but I was wondering since Apple knows this, what do they implement in their OS to help allow you to get the most out of your battery while multitasking?

Thanks guys!
 
Simple, the Android has many phones by different manufacturers. It is impossible to optimize unless they all had the same battery and configuration. This is where iPhone wins, there is only one real design that has been improved upon over the years.
 
Of course each Android (or iOS) device can be optimized. It's simply a matter of how much effort the manufacturer (be it Apple or HTC or Motorola whoever) has put into it.

Android has a default power management class that takes startup parameters (such as when to power down depending on external power, etc)... in just the same way as the power management plist (tweakable on a jailbroken iPhone) contains parameters for iOS. So each Android or iOS device is customized first in that way, with simpe flags and timeouts.

The manufacturer's developers porting to each new Android or iOS device can then add more power management tweaks via the various display, radio, touch, etc drivers. For example, if a new display chip can stand being totally powered off during idle, then the driver writer might take advantage of that.

In other words, just as Apple probably has optimized their system for each set of hardware changes, so can each Android manufacturer optimize for their own particular hardware.
 
Android allows more things to continue to run in the background, which sucks up battery life by using processor cycles. iOS is very restrictive on the things that can run in the background. Most times, what seems like "multitasking" is actually just the program saving its state in memory and shutting down.

P.S., did any either of the above posters actually read the question?
 
Of course each Android (or iOS) device can be optimized. It's simply a matter of how much effort the manufacturer (be it Apple or HTC or Motorola whoever) has put into it.

Android has a default power management class that takes startup parameters (such as when to power down depending on external power, etc)... in just the same way as the power management plist (tweakable on a jailbroken iPhone) contains parameters for iOS. So each Android or iOS device is customized first in that way, with simpe flags and timeouts.

The manufacturer's developers porting to each new Android or iOS device can then add more power management tweaks via the various display, radio, touch, etc drivers. For example, if a new display chip can stand being totally powered off during idle, then the driver writer might take advantage of that.

In other words, just as Apple probably has optimized their system for each set of hardware changes, so can each Android manufacturer optimize for their own particular hardware.

Just wanna say, I was expecting this to be another pointless thread, until you came in and actually posted some interesting information. Thanks :)
 
Android allows more things to continue to run in the background, which sucks up battery life by using processor cycles. iOS is very restrictive on the things that can run in the background. Most times, what seems like "multitasking" is actually just the program saving its state in memory and shutting down.

Yeah this is exactly what I was trying to find out. As I've read some articles stating that applications on iOS have 2 states, a running state and suspended state, and that some apps like Safari/Photo are suspended, but when you resume them, it appears as if they were running the whole time because of how instantly they resume again.


P.S., did any either of the above posters actually read the question?

haha it's okay :p
 
One answer for you is iOS still does not really do true multi tasking. It sorta does it but still not doing a true multi tasking. I call iOS multi tasking wanna be multi tasking at best.
 
Wirelessly posted (Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7)

Rodimus Prime said:
One answer for you is iOS still does not really do true multi tasking. It sorta does it but still not doing a true multi tasking. I call iOS multi tasking wanna be multi tasking at best.

As long as I can leave an application and come back to it later in the exact same state I left off and not have to wait for it to load Back up that's multitasking. Yes the app is not actually running in the back ground but I'd say that is an improvement. It's not wannabe.
 
Wirelessly posted (Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7)



As long as I can leave an application and come back to it later in the exact same state I left off and not have to wait for it to load Back up that's multitasking. Yes the app is not actually running in the back ground but I'd say that is an improvement. It's not wannabe.

no that is wanna be. True multi tasking means the app keeps running. You have a save stat which is wanna be multi tasking. Huge difference.

Try to defend it no matter how you want it still a wanna be multi tasking.
 
True multi tasking means the app keeps running. You have a save stat which is wanna be multi tasking.
Except for the applications that continue to run in the background, of course.

Although many Android users claim that multitasking is a major benefit, the downsides are not insignificant. In exchange for a potentially quicker OS, unless you have too many applications running concurrently, you will drain your limited battery significantly. In most circumstances, the user will not be able to actually make beneficial use of multitasking on a mobile phone. There are multiple reasons for this, such as a finite battery life, a single core processor, low memory availability, and a 3-4" screen. Due to these limitations, Apple chose to not allow full multitasking in order to increase the user experience of iOS.
 
I will tell you how.
1. Bigger battery
2. Smaller, more dim screen
3. Weak radio (which is why you drop every 4th call)
 
I will tell you how.
1. Bigger battery
2. Smaller, more dim screen
3. Weak radio (which is why you drop every 4th call)

Gotta love made up facts/stats

-How is the screen dim...because you deemed it to be so
-How do you know i drop every 4th call, do you have logs on every iPhone user on the planet. Also how do you know the phone uses a weak radio...did you manufacture said radio and/or test it or are you gonna be another drone who mentions 'antennagate'

PS- I've come across your posts in other threads and know how you love to proselytize Android based on questionable 'facts'.
 
Last edited:
Having moved from an Android (Nexus One), the iPhones battery does not appear to last any longer. Maybe less.
 
battery life is not necessarily better but different execution based on what one considers 'multitasking' as definition....
 
Gotta love made up facts/stats

-How is the screen dim...because you deemed it to be so
The screen isn't more dim than all android phones, but it is definitely more dim than the Vibrant/Captivate/Fascinate/Epic, Incredible, and Droid X. How do I know? My roommate has an iPhone4 and most of our friends have the Android phones I just mentioned.

-How do you know i drop every 4th call, do you have logs on every iPhone user on the planet. Also how do you know the phone uses a weak radio...did you manufacture said radio and/or test it or are you gonna be another drone who mentions 'antennagate'
The "drops every 4th call" was a sardonic remark, but the iPhone4 definitely drops calls more often than average phones. This is pretty much common knowledge. Antennae-gate aside, iPhones have always had relatively weak radios inside them.

PS- I've come across your posts in other threads and know how you love to proselytize Android based on questionable 'facts'.
Sorry if your butt hurts?
 
no that is wanna be. True multi tasking means the app keeps running. You have a save stat which is wanna be multi tasking. Huge difference.

Try to defend it no matter how you want it still a wanna be multi tasking.

It doesn't actually use save states unless the developer supports saving their state (just like with iOS3 and earlier). Fast switching allows apps to remain in RAM, but suspended. You don't get CPU cycles unless you sign up for one of the handful of APIs that allow it (task completion, background audio, VOIP, or GPS).

You will notice that when an app is cleared from RAM, it has to relaunch from scratch. If it is still in RAM, then it doesn't. TomTom is one app that shows this pretty clearly because it has a long load time, so does Angry Birds.

It's not using save states in these cases, because if it did, it would work no matter if the process was purged from RAM or not. Really, it all depends on your definition of running. The process exists, it is in RAM, but the app's threads are all paused preventing it from consuming battery.
 
It doesn't actually use save states unless the developer supports saving their state (just like with iOS3 and earlier). Fast switching allows apps to remain in RAM, but suspended. You don't get CPU cycles unless you sign up for one of the handful of APIs that allow it (task completion, background audio, VOIP, or GPS).

You will notice that when an app is cleared from RAM, it has to relaunch from scratch. If it is still in RAM, then it doesn't. TomTom is one app that shows this pretty clearly because it has a long load time, so does Angry Birds.

It's not using save states in these cases, because if it did, it would work no matter if the process was purged from RAM or not. Really, it all depends on your definition of running. The process exists, it is in RAM, but the app's threads are all paused preventing it from consuming battery.


I define something that just is using a pause thread nothing more than a fancy saved stated. That all Apple is doing is a fancy wanna be Multi tasking. Hence why I call it a wanna be multi tasking.
 
I define something that just is using a pause thread nothing more than a fancy saved stated. That all Apple is doing is a fancy wanna be Multi tasking. Hence why I call it a wanna be multi tasking.

Saved state isn't multitasking. All the different APIs an app can call to perform tasks in the background is multitasking. The beauty of Apple's system is that only apps and tasks that actually *need* to run in the background do. Everything else that has no purpose or function to run in the background can have it's state saved so that when you switch back to it, it continues from where you left off.
 
I define something that just is using a pause thread nothing more than a fancy saved stated. That all Apple is doing is a fancy wanna be Multi tasking. Hence why I call it a wanna be multi tasking.

Out of interest, which of the following would you prefer:
1) when you leave an app, it keeps running through a loop checking for any user activity, redrawing the canvas (which of course would then be ignored because it isn't visible), and forever ploughing through that loop doing nothing.
2) when you leave an app, it realises it doesn't need to do anything, and so stops doing thing.

The only disadvantage i can see is that with Apple's multi-tasking, the developers have to explicitly support it - if everything was allowed to keep running in the background then of course that wouldn't be necessary. But that's probabky a good thing, as it stops lazy developers leaving everything running unnecessarily. From a user perspective, it works great.

And if you're going to start trying to define multitasking at the code-level, then it'd be worth understanding hoe an OS works. Even on the desktop, the OS will not allow apps to do things that they don't need to. Nothing is drawn, for example, because the OS won't ask an app to draw anything if it isn't visible. And, conversely, if you define multitasking as an app being allowed to continue to do things in the background, then that's what iOS does - the only difference, as i've already said, is that the developer has to explicitly enable multi-tasking.

David
 
Saved state isn't multitasking. All the different APIs an app can call to perform tasks in the background is multitasking. The beauty of Apple's system is that only apps and tasks that actually *need* to run in the background do. Everything else that has no purpose or function to run in the background can have it's state saved so that when you switch back to it, it continues from where you left off.

But again it isn't really a save state any more than putting say, TextMate into the background on your laptop is.

The reality is that this is more like an extension of thread/process priorities. You can have high, normal, or low priority. If you have a new priority that prevents the kernel from scheduling any cycles for that process, then you can keep the process in RAM. Without the kernel giving it any cycles, it's effectively frozen. Apps using the background APIs would be running in a variation of a low priority process that limits the events passed into the application.
 
The only disadvantage i can see is that with Apple's multi-tasking, the developers have to explicitly support it - if everything was allowed to keep running in the background then of course that wouldn't be necessary. But that's probabky a good thing, as it stops lazy developers leaving everything running unnecessarily. From a user perspective, it works great.

You're missing the whopping disadvantage - iOS only supports a few limited features running in the background.
 
You're missing the whopping disadvantage - iOS only supports a few limited features running in the background.

Out of interest, what is it missing that you'd like to be able to do in the background (serious question because I can't think of anything myself!).
 
You're missing the whopping disadvantage - iOS only supports a few limited features running in the background.

Out of interest, what is it missing that you'd like to be able to do in the background (serious question because I can't think of anything myself!).
 
Out of interest, what is it missing that you'd like to be able to do in the background (serious question because I can't think of anything myself!).

There isn't that much really. I can only think of two examples:

1 - Instant messenger applications.
2 - Video in the background.

The first is already somewhat support by iOS with task completion and push notifcations. Although personally I find it can be a bit unreliable.

The second is quite a niche area. Most people aren't going to care if a video can't play on the phone when they do something else. Personally, I would like it to though.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.