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

That's the key one IMO.

Push Notifications simply don't cut it. As you note, I find them too unreliable.

There are many Applications that would benefit from being able to run for longer than 10 minutes in the background - virtually anything that needs to maintain a connection to a server for example.
 
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.

can't they?

youtube videos can, iPod videos can (you only hear the audio though, obviously, but it does 'play')
 
can't they?

youtube videos can, iPod videos can (you only hear the audio though, obviously, but it does 'play')

iPod videos just pause when you go to do something else don't they?
And other apps that play video certainly don't carry on playing. The Sky Mobile TV app for one, and I don't think VLC does either.
 
Krevnik said:
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.
Let me just check that I'm understanding this. It seems pretty clear to me that as more and more apps support state saving then the claim that all these apps are still in RAM but suspended just can't be true. If I use my phone for a month and launch 50 different state-saving apps then the sum of their process address spaces will almost certainly exceed physical RAM.

I was a little unclear from the above as to what happens. It seems clear that for non-state-saving apps then they will exit completely and restart from scratch on the next user launch but what happens when iOS gets to the point where the sum of the address spaces of the suspended plus foreground app exceeds physical RAM? I assume that the app that gets iOS's attention at that point is the LRU app but what is done with it? Is there some sort of swapping system whereby the LRU app's process image is swapped out to flash so that when it is next selected by the user it can be swapped back into RAM before being called so that the app never knows the difference? (I assume this wouldn't need to swap the entire process image, only the writable segments/pages of the image. read-only code pages could simply be discarded since they can be read back in from the app install image.)

- Julian

P.S. I'm an ex Unix kernel developer but I have little knowledge of iOS - I'm not looking to start an argument, I don't know enough about iOS to dare to do that, I'm just trying to learn.
 
I was a little unclear from the above as to what happens. It seems clear that for non-state-saving apps then they will exit completely and restart from scratch on the next user launch..

Good questions. State-saving is a separate issue.

1) Apps not compiled for 4.0 exit on Home key. They always start from scratch (although the developer can of course save state during its normal exit).

2) Apps that were recompiled for 4.0 are kept in memory on Home key. When you "restart" them, they just crank up again in memory (if they're still there). No state-saving needed since the app was just frozen in place. This is the so-called "fast app switching".

3) When iOS needs memory, it removes a LRU app. Before it does, it optionally calls into the app so it can save state at that point. Sort of an emergency exit.

For (2), just recompile old apps under 4.x. For (3), you have to add more code.

Note: A side-effect of adding "fast app switching" was a failure of some just-recompiled apps to update automatically. You see, most apps were written to go check on new info when they started up after you saw the badge appear or something. With the new scheme they simply began running again and did not update.

--- iOS vs ANDROID

And now for the ironic part. Apple implemented "fast app switching" in almost exactly the same way that Android had already been doing.

  • In both cases, apps that aren't visually active are "frozen" in memory to be restarted quicker if asked for again, or killed if their memory is needed.
  • In both cases, the killing is decided by some kind of most recently used algorithm.
  • In both cases, the freezing process first allows the app to save its state if it wishes.
  • In both cases, the app can restore that saved state upon being thawed.
  • In other words, there's no real difference between Android and iOS when most apps are pushed out of visual focus by starting another one.
 
Because Android sucks..

Sorry... I had to bring that up since no one does before (this is an Apple forum after all).

Seriously, I believe that since Apple controls Hardware+software, they optimized multitasking more than others. They actually thinked outside the box about multitasking and it works well.
 
  • In other words, there's no real difference between Android and iOS when most apps are pushed out of visual focus by starting another one.

Except that Apps on Android are allowed to run in the background if they want to. That's a pretty big difference!

Much of what you say about Activities is true, but with an Android App, the user interface is not the only process running on the device. You might have a service that is connected to a server 24/7, that the OS wouldn't kill unless it really ran out of memory. That local service could generate a notification, allowing the user to open up the Activity. It's a much more reliable way of doing something like IM.
 
Last edited:
Having moved from an Android (Nexus One), the iPhones battery does not appear to last any longer. Maybe less.
^This. I have found that I get slightly better battery life on my DX than I did on my iPhones. I do have my background notifications on and such on the Droid.


Because Android sucks..

Sorry... I had to bring that up since no one does before (this is an Apple forum after all).

Seriously, I believe that since Apple controls Hardware+software, they optimized multitasking more than others. They actually thinked outside the box about multitasking and it works well.

You know why no one brought it up in this thread before? Because for once, the thread started and continued to show some signs of maturity and forward thinking. You actually came in here with an inane comment that you likely can't believe in yourself because you've never had an Android phone and pretty much helped derail the thread.

You are wrong on all counts.
 
They aren't comparable. Different battery sizes, hardware and the apps/services running aren't identical. You could never flat out say one uses battery better than others. They use it differently.

Without knowing how much gas (how big his tanks is) in my neighbor's car versus mine - how could I determine why my car can go farther?

Perhaps not the best analogy - but point is - it's not easily dismissed as a simple question of iOS usage equating to better or worse battery life.
 
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.

As if that's a bad thing. The way Apple implements it ought to be how other phones do it too: in a fashion that doesn't completely rape the battery life. "no that is wanna be." What a pretentious statement. If it doesn't kill my battery and offers all user-noticeable features outside of the app then I'd choose it over a method in which an app that is needlessly fully rendered in the background, chewing at the battery life. People say "not real multitasking" as if it's their life mission to be as daft as possible.
 
As if that's a bad thing. The way Apple implements it ought to be how other phones do it too: in a fashion that doesn't completely rape the battery life.

Thing is, Android OS doesn't 'rape the battery life.' In all cases, its not an Android issue, but manufacturer issue with regards to what type of screen was used. For example, AMOLED eats up battery life, as well as the type of radio hardware that is used.

Its really the implementation of how handset manufacturers utilize Android OS and the hardware used.
 
Thing is, Android OS doesn't 'rape the battery life.' In all cases, its not an Android issue, but manufacturer issue with regards to what type of screen was used. For example, AMOLED eats up battery life, as well as the type of radio hardware that is used.

Its really the implementation of how handset manufacturers utilize Android OS and the hardware used.
That's not really a good argument given that that's how Android is meant to be used: with many manufacturers implementing it into their devices. So far, it seems most Android phones have horrible battery lives. Look at the Evo, for example.
 
no that is wanna be. True multi tasking means the app keeps running.

If I tell Photogene to save a photo, that takes about 5-8 seconds to process and save. I can choose exit the app after 1 second and that photo will still be processed and appear in my camera role 6 seconds later. That's "working in the background."

So you're not explaining it right.

You say: The iPhone can't multitask.
The truth is: Only certain apps can multitask in certain ways.

Yes, it's true that neither of those statements are what Android does. But just because they're not like Android doesn't mean they're the same thing. You need to be more specific.
 
If I tell Photogene to save a photo, that takes about 5-8 seconds to process and save. I can choose exit the app after 1 second and that photo will still be processed and appear in my camera role 6 seconds later. That's "working in the background."

So you're not explaining it right.

If the process took 10+ minutes instead of 5 seconds, it wouldn't finish correctly due to iOS's restrictions.
 
That's not really a good argument given that that's how Android is meant to be used: with many manufacturers implementing it into their devices. So far, it seems most Android phones have horrible battery lives. Look at the Evo, for example.

last i checked Google (Android OS) is a software company, not hardware. Carriers/handset manufacturers do what they want with Android OS. If one doesn't like how Android is being implemented, sign up for a different handset maker.

I wouldn't consider the iP4 to have phenomenal battery life. I think a lot of EVO users would disagree with you that EVO has bad battery life, considering it now has Froyo 2.2, which definitely improves upon battery life. Additionally, there a slew of Android phones that do give good battery life, especially phones made by Motorola. Let's not forget that all Android phones have replaceable batteries.
 
last i checked Google (Android OS) is a software company, not hardware. Carriers/handset manufacturers do what they want with Android OS. If one doesn't like how Android is being implemented, sign up for a different handset maker.

I wouldn't consider the iP4 to have phenomenal battery life. I think a lot of EVO users would disagree with you that EVO has bad battery life, considering it now has Froyo 2.2, which definitely improves upon battery life. Additionally, there a slew of Android phones that do give good battery life, especially phones made by Motorola. Let's not forget that all Android phones have replaceable batteries.

It's an entirely moot point. Basically nobody buys an extra battery to replace it. People fling that 'feature' around as if they use it.

The iP4's battery life is night and day compared to the EVO's undeniably crappy battery life.
 
It's an entirely moot point. Basically nobody buys an extra battery to replace it. People fling that 'feature' around as if they use it.

The iP4's battery life is night and day compared to the EVO's undeniably crappy battery life.

I have 4 batteries for mine. The one that came with the phone...got a free OEM in the mail from TMobile because i told them it wasnt very good so when i told the rep how long it lasted, they sent me a new one (which was better) and i got two on eBay for $3.27. Those arent as good as the OEM's but if i need an extra for any reason, they work great.

Bought a new OEM battery for my Wifes Blackberry for $10 on eBay when it started to not hold a good charge.
 
Basically nobody buys an extra battery to replace it. People fling that 'feature' around as if they use it.

And you're entirely wrong. The fact you make an open blanket statement assuming nobody buys replaceable batteries for their Android phones makes a lot of your statements questionable. Do you have any solid valid sources stating that 'nobody buys an extra battery?' No.

The iP4's battery life is night and day compared to the EVO's undeniably crappy battery life.

So... you're talking about one Android phone out of dozens? I know for a fact that the Droid line of phones made from Motorola has really good battery life, running stock battery, with stock Android OS (with Carrier overlay or not). Not to mention that the EVO runs at 4G? and its a 4.3 inch screen? Compared to that of Apple's 3.5 inch screen? Ok buddy.
 
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.

Not as much as you think.

On a single CPU core system, only one task at a time can be executing instructions, the rest are all frozen in some form of saved state. The only real difference on a single CPU core system is whether the state save/reload is done by low level OS code or high level application code, and the speed and granularity of the save state. Nothing really executes in the background, because there isn't another processor core to do it.

Even on a multi-core system is mostly that way. My MacBook Pro shows 74 processes "running", but with only 2 cores in a Core2Duo, only 2 of these tasks are actually live in a core execution pipeline at any one time.
 
And you're entirely wrong. The fact you make an open blanket statement assuming nobody buys replaceable batteries for their Android phones makes a lot of your statements questionable. Do you have any solid valid sources stating that 'nobody buys an extra battery?' No.



So... you're talking about one Android phone out of dozens? I know for a fact that the Droid line of phones made from Motorola has really good battery life, running stock battery, with stock Android OS (with Carrier overlay or not). Not to mention that the EVO runs at 4G? and its a 4.3 inch screen? Compared to that of Apple's 3.5 inch screen? Ok buddy.

Being apologetic towards features the phone may have over the iPhone like 4G connectivity (which has a subjective level of usefulness, but generally, it's not so widespread yet) and a bigger screen doesn't help your case. Most of these Android phones have rubbish battery life. If you say, "Well just pick something else," when you're basically stating that only 10% of the Android phones out there are worth picking through and thus the whole "Open is better" argument flies out the window.

And no, the Droid phones have subpar battery life.
 
Except that Apps on Android are allowed to run in the background if they want to. That's a pretty big difference!

The actual problem with Windows Mobile type backgrounding is that apps are allowed to run in the background, even in situations where most users do not expect anything to be draining the battery.

There are just a few uses where most users (non-techies) expect the battery to be draining, even if they can't see the app in the foreground, streaming music, for instance. Apple is probably hoping that waiting for VIOP calls and GPS logging/navigation also fall into that category, and not cause more problems from the type of users who turn on push email, receive a lot of email at night, and then return the phone because their battery didn't last as long as before.
 
Being apologetic towards features the phone may have over the iPhone like 4G connectivity (which has a subjective level of usefulness, but generally, it's not so widespread yet) and a bigger screen doesn't help your case. Most of these Android phones have rubbish battery life. If you say, "Well just pick something else," when you're basically stating that only 10% of the Android phones out there are worth picking through and thus the whole "Open is better" argument flies out the window.

And no, the Droid phones have subpar battery life.

Again, you're wrong, some droid phones have terrific battery life. Droid X and Droid 2 have strong battery performance.

Additionally, I'm not being 'apologetic.' I'm stating facts. You on the other hand are making blanket statements where you assume that what you say is correct, with no sources whatsoever to back up any of your claims.

A bigger screen means more battery life is being used to power the bigger display, its simple. A 4G radio takes more battery life as its consuming data at faster rate. You're comparing battery life between a 4.3 inch screen to a 3.5 inch screen. That itself should demonstrate that its not a direct 1:1 comparison with regards to battery life.

I don't think you understand what 'open' means. The fact that Android OS is across dozens of phones clearly demonstrates that the OS itself is open, and not restricted to one carrier, or one handset in particular.

Its quite clear that you have no experience whatsoever with Android OS. And no, going to your competitor's carrier kiosk to check out the Android phone for a few minutes doesn't make one an 'expert' user.
 
Not as much as you think.

On a single CPU core system, only one task at a time can be executing instructions, the rest are all frozen in some form of saved state. The only real difference on a single CPU core system is whether the state save/reload is done by low level OS code or high level application code, and the speed and granularity of the save state. Nothing really executes in the background, because there isn't another processor core to do it.

Even on a multi-core system is mostly that way. My MacBook Pro shows 74 processes "running", but with only 2 cores in a Core2Duo, only 2 of these tasks are actually live in a core execution pipeline at any one time.

This is a crazy way to look at things.
 
Again, you're wrong, some droid phones have terrific battery life. Droid X and Droid 2 have strong battery performance.
Maybe by your standards. Doesn't fare too well with me.

Additionally, I'm not being 'apologetic.' I'm stating facts. You on the other hand are making blanket statements where you assume that what you say is correct, with no sources whatsoever to back up any of your claims.
Being apologetic isn't the opposite of stating facts. It's stating facts in a manner that is beside the point and that is stated in a fashion in which area you may feel strongly but other users may not. From owning a few Android phones and from general consensus between me and many friends that own Android phones, the battery life of Android phones in general is piss-poor. Yes, even your precious Droid.

A bigger screen means more battery life is being used to power the bigger display, its simple. A 4G radio takes more battery life as its consuming data at faster rate. You're comparing battery life between a 4.3 inch screen to a 3.5 inch screen. That itself should demonstrate that its not a direct 1:1 comparison with regards to battery life.
Doesn't matter. Both phones perform the same in terms of speed and are of the same class. You shouldn't keep needing to justify horrid battery life by a slightly bigger screen and a 4G radio that's connected to a 3G network for the vast majority of the time. Instead of endlessly apologizing for the horrid short battery life, why not compensate by putting in a larger battery? Not to mention the vast majority of Android phones don't have a 4G radio anyway.

I don't think you understand what 'open' means. The fact that Android OS is across dozens of phones clearly demonstrates that the OS itself is open, and not restricted to one carrier, or one handset in particular.
Hah, this is usually where I'd stop and talk about all the problems with the openness that users have to put up with, such as fragmentation, poor security, and year-late-or-never updates, but I think that summary should be enough.

Its quite clear that you have no experience whatsoever with Android OS. And no, going to your competitor's carrier kiosk to check out the Android phone for a few minutes doesn't make one an 'expert' user.
I owned:
X10
Original Droid
HTC EVO 4G for a few days
G1

"No experience" my ass.


Just a little summary to set the mood: I'm not a Mac fanboy, not an Apple fanboy, etc. I've tried all phone platforms and the iPhone is just the best overall. There's a reason why it won JD awards 4 years in a row. The only thing I've still yet to try is WP7. My money is actually on WP7, too. Currently it's a wasteland but eventually as developer interest ramps up, I do believe it will be dominant. I've even tried WebOS. I've tried the Pre but only for a few hours if anything when I was staying over at a friend's house. I stayed up all night playing with the Pre, and sadly it was a little sluggish. May have to give the second generation a try whenever I get the chance.
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.