The main benefit of Android, in my opinion, is the large selection of hardware. I like hardware keyboards, for example, and so I at least have some choice if I want it (unlike Apple).
However, that diversity in hardware is also the biggest problem with the platform. Handset manufacturers seem to look at a device as a "sell and forget" sort of item. They make it, sell it, and then move on to the next project.
It's too expensive, in their minds, to support a handset that they've already sold. They make money by selling more handsets, not by putting large amounts of effort into supporting and updating old hardware from which there is no revenue stream.
Apple, on the other hand, actually has a significant revenue stream from existing hardware through the sales of apps, music, and books. So, by providing updates for older versions of the hardware they are improving their ability to collect additional revenue. For example, when they added in-app payments, those APIs were available to all existing iPhone users, not just the newest users and thus were able to extract more profits from those existing users.
In the Android world, a manufacturer only makes money from the original sale. So, it seems that in order for Google to encourage on-going support, they should:
1. Participate in a revenue sharing program from app sales from the manufacturers phones that are running the most current release of the OS.
2. Improve the situation with drivers the large variety of hardware. If the Google distribution supported a large amount of hardware (CPUs, GPUs, sensors, etc) "out of the box", perhaps it would be easier for manufacturers to get the OS running on their devices and thus take less time to get updates to market. Or perhaps I'm being naive and there's something else that's holding up updates other than technical issues with drivers/hardware compatibility.
"Or perhaps I'm being naive and there's something else that's holding up updates other than technical issues with drivers/hardware compatibility."
In the United States at least, mobile firmware updates are subject to the approval of mobile carriers. Most phones that are released in both the United States and Europe are updated in the latter region before the former. American carriers are also a primary reason why most phones do not run stock Android [1].
Since some revenue sharing is already in place [2], and carriers make money regardless of what Android version their customers are on, I do not think it is the answer. Unless Google can find a way to reduce the control that carriers have (by weaning Americans off of subsidized phones, or by restricting Android software customization similar to iOS or Windows Phone), I am not sure things will change for the better.
I can't find a reference for what firmware covers. Could it be as small as something like the BIOS on a PC that doesn't have to change between OS updates?
I am using firmware to reference the entire mobile operating system, from the kernel and radio interface libraries all the way to the crapware applications installed by mobile carriers.
On Android devices, the best analog to the BIOS would be the bootloader. Since most Android bootloaders are locked to prevent unsigned kernels from running, they are updated during OS updates. See http://www.extremetech.com/computing/120771-what-is-a-bootlo... .
I was thinking that "subject to the approval of the carriers" was a legal requirement, along the lines of anything that could alter the operation of the radio would have to be approved. The hope being that a thin layer that deals directly with the hardware could be subject to approval, but the rest of the stack could be updated without approval.
On further reflection, I suspect it's more of a contractual obligation, and that neither party is all that interested in keeping 6 month old phones up to date. It's a shame, because Android developers can't reasonably expect ICS to be widespread for at least a year or longer.
I'll strongly second point 2. As far as I can tell, the biggest issue with ICS upgrades seems to be the amount and sheer complexity of the low-level changes (new GPU driver framework, move to 3.x kernel, new memory allocator, ...).
I also think Google made this a lot worse by not being more open with ICS development. If Google had been more open with the kernel and drivers along the way, I think ICS upgrades could have been much easier and could be moving much faster as well.
It took almost 12 months between the Gingerbread/2.3 release and my phone actually getting updated. It has a vanilla Google interface, manufactured by HTC and a small amount of crap/carrierware. They can't do the simple 2.2 to 2.3 upgrade in a reasonable amount of time where none of your reasons apply.
Put in perspective - it took about 12 minutes after finding out about a new iOS release and having it on my device, and 12 months for the Android device.
Yes, for some phones it takes a lot longer or some never get an update. But I think the discussion here was about how fast can an ICS update come? Gingerbread updates and Froyo updates started rolling out about 2 months after they were released. It took 4 months for ICS to upgrade from 2.3, but about 2 months for Honeycomb tablets. Plus there's the whole issue that manufacturers wanted to renew their skins as well.
"Apple, on the other hand, actually has a significant revenue stream from existing hardware … "
FWIW, Apple don't exactly have an unblemished record in treating owners of existing iPhones properly, as anyone who suffered through the first few iOS upgrades on iPhone3G's after the 3GS came out. For a while even Apple native apps like Messages (the SMS app) were all but unusable on a fully updated 3G…
Having said that, I'm still overall much happier with the OS upgrade path my original iPhone -> iPhone 3G -> iPhone 4S has had, compared to the long delays in getting _any_ OS upgrades for my Galaxy S II (largely due to the carriers here in .au rather than Google's fault, but that doesn't make the feeling of lack of support any easier to stomach…)
Samsung (and other manufacturers) should really pull the trick it used in the UK with the SGS2 more often: Telling the world when the update was delivered to the carriers and letting them sit on the hot seat instead.
i like hardware keyboards. the ONLY one you can buy today is from motorola locked to verizon... great device option i have.
when i first bought my dreadful nexus one, the only newly launched keyboard option i had was the backflip! a brick was faster. it was already announced to be relegated to 1.5 forever, and 1.6 was launched before it was out. or something like that. older keyboard availables, G1, too slow, no support. droid. slow, no memory, no GSM.
There's also the myTouch 4G Slide (T-Mobile US) and the Samsung Captivate Glide (AT&T). Both work internationally though neither are sold outside the US (and Canada for the Captivate Glide), AFAIK.
The Desire Z is still sold though it is getting harder to find (e.g. retailers like expansys don't seem to have it any more). On the other hand, T-Mobile also recently had a surprise revival sale (now over, I believe) on its twin (the G2).
There are also a fair number of lower-end QWERTY devices (both Blackberry-style and sliders), but there is absolutely room for a high-end QWERTY "hero". Personally, I'm rooting for an HTC One Z (with a T-Mobile G3 twin?), but we'll see.
SE Xperia Pro, Slide, Captivate Glide, Desire Z? It seems like another problem with the diversity of hardware is coming up with names that don't sound like something you would buy from a vending machine in a truck stop restroom.
Apple doesn‘t have a significant revenue stream from existing devices. Why does everyone think they are making lots of money by selling apps and media? They do not.
I think the biggest reason Apple still supports old hardware is they're still selling it (see: iPhone 3GS and now iPad 2).
That being said, it is interesting how Apple's support of old hardware is the dual of Google's.
Google does a bad job of getting OS updates to older hardware, but they do an impressively good job of supporting their applications on older hardware and OSes. Outside of the deliberate exception of the Chrome Beta, I can't think of an official Google app for Android that doesn't support at least Froyo and many go back further. My G1 (running Donut) was still getting Google app updates for a good chunk of last year. I happen to know that because I picked it up for a memorial tweet on the G1's third anniversary and was surprised with all the update notifications I got.
Meanwhile, Apple is very good about getting OS updates to older devices. But when you look at their app support, it doesn't look nearly so good. Everyone talks about Siri, but did you also know that the original iPad doesn't support iPhoto or iMovie (see: http://www.theverge.com/2012/3/9/2856499/iphoto-ios-app-ipad... )? iMovie is particularly damning because the first iOS version (for the iPhone 4) was released less than 3 months after the original iPad.
And note that while older Apple devices nearly all get the new version number, sometimes that's about all they get in the way of features from the upgrade.
I understand why Android geeks are desperate to have the very latest OS version running on their device (as a weird point of OCD-geek pride). I have no idea why Apple fans should care so much about what version number Android phones have when Google is near constantly updating the software that runs of them. Seems to run counter to their stance on the features vs. specs debate on hardware, where user experience is more important than the number attached to something.
"Normal people" on the other hand, clearly don't give a damn, if they are even aware of this "issue", and have no reason to.
I don't think it's the main reason either. The reason is customer loyalty. But I believe that media and app sales are more important than you think, because it's the entire integrated ecosystem that keeps people inside Apple's fold. Secondly, Apple is investing huge amounts into expanding their software/services/media offering, so current sales might not be telling you very much about their motivation.
my bet is that they locked themselves in because of some contract with corporation (trying to beat RIM at some time) or government.
And those contracts are still giving them money, otherwise they wouldn't think twice about breaking it. All apple actions can be directly translated to immediate profit goal.
That must be why Apple is still providing cheap OS upgrades for my four year old Mac. Or maybe they're smart enough to realize that I might not buy their products again if they were obsoleted as soon as possible?
However, that diversity in hardware is also the biggest problem with the platform. Handset manufacturers seem to look at a device as a "sell and forget" sort of item. They make it, sell it, and then move on to the next project.
It's too expensive, in their minds, to support a handset that they've already sold. They make money by selling more handsets, not by putting large amounts of effort into supporting and updating old hardware from which there is no revenue stream.
Apple, on the other hand, actually has a significant revenue stream from existing hardware through the sales of apps, music, and books. So, by providing updates for older versions of the hardware they are improving their ability to collect additional revenue. For example, when they added in-app payments, those APIs were available to all existing iPhone users, not just the newest users and thus were able to extract more profits from those existing users.
In the Android world, a manufacturer only makes money from the original sale. So, it seems that in order for Google to encourage on-going support, they should:
1. Participate in a revenue sharing program from app sales from the manufacturers phones that are running the most current release of the OS.
2. Improve the situation with drivers the large variety of hardware. If the Google distribution supported a large amount of hardware (CPUs, GPUs, sensors, etc) "out of the box", perhaps it would be easier for manufacturers to get the OS running on their devices and thus take less time to get updates to market. Or perhaps I'm being naive and there's something else that's holding up updates other than technical issues with drivers/hardware compatibility.