Fragmentation. You’ll often hear people say this is a major problem with Google’s Android platform; there are many devices running multiple different versions of the mobile operating system, leading to fragmentation. Dan Morrill, Android’s open source and compatibility program manager, addresses this issue in a blog post, and details what Google is doing to fight it. The gist: it’s a non-issue – according to Google, that is.
The first problem with the concept of fragmentation noted by Morrill is that there really isn’t an acceptable definition, and thus, everybody uses their own. “Because it means everything, it actually means nothing, so the term is useless,” Morrill argues, “Stories on ‘fragmentation’ are dramatic and they drive traffic to pundits’ blogs, but they have little to do with reality. ‘Fragmentation’ is a bogeyman, a red herring, a story you tell to frighten junior developers. Yawn.”
Of course, there are still issues that might cause an application to not run properly. Three issues can cause programs to run sub-optimally: missing hardware components (e.g., an application expects a camera, but none is found), added or altered APIs (by the manufacturer), or plain old bugs. It’s Morrill’s job to minimise the problems that might arise from these.
Thee are two things things Google is doing here. First, they restrict access to the Android Market as well as the Android name to compatible devices only. Second, there’s the Android Compatibility Program, which in turn consists of three core elements: the Android source code, the Compatibility Definition Document, and the Compatibility Test Suite.
The first core element is pretty much a given: all Android devices run the same core source code, which “goes a long way toward making sure those devices all work the same way”. Obviously, this doesn’t mean jack if devices lack certain hardware components or have altered APIs. That’s where the Compatibility Definition Document comes into play.
“The CDD defines in gory detail exactly what is expected of Android devices,” Morrill explains, “It clearly states, for example, that devices may not omit most components, and that the official Android APIs may not be altered. In a nutshell, the CDD exists to remove ambiguities around what’s required of an Android device.”
To address bugs that may cause applications to behave oddly, the Compatibility Test Suite was created. “The CTS is a collection of more than 20.000 test cases that check Android device implementations for known issues,” Morrill details, “Device makers run the CTS on their devices throughout the development process, and use it to identify and fix bugs early. This helps ensure that the builds they finally ship are as bug-free as possible.” Of course, both the CDD as well as the CTS are continuously tweaked to address newly discovered problems.
Of course, this is all nice and dandy, but it doesn’t do anything to address the problem I think most of us think about when we talk about fragmentation: the multiple different versions of Android currently being shipped. Device makers and carriers are remarkably incapable, and this total lack of competence is only highlighted by Android. Every Android device – including the G1 – can run Froyo, Android 2.2, the latest version. Sadly, device makers and carriers block the upgrade process with their immense incompetence.
Here’s where Morrill gets a little short on words. While he does make the case that Android is fully 100% forward compatible (i.e., applications written for older versions work on newer versions too), it doesn’t solve the problem of application developers targeting the latest and greatest releases, leaving users locked into older versions frustrated.
Sadly, this is an issue Google can’t really address. I can’t highlight enough just how incompetent many device makers and carriers are, leading to devices shipped today that still run Android 1.5 or 1.6. I hope Google manages to force device makers and carriers to be more responsive when it comes to updates, but since especially carriers bear a remarkable resemblance to other utterly incompetent industries like big content, I’m afraid we still have a long way to go.
Luckily though, it seems as though the rapid release cycle will settle down soon. “Our product cycle is now, basically twice a year, and it will probably end up being once a year when things start settling down, because a platform that’s moving – it’s hard for developers to keep up,” says Android boss Andy Rubin.
In any case, I still haven’t ever used an Android device. I’ve seen all the desktop has to offer when it comes to operating systems and software – I want to use Android, webOS, BlackBerry OS! Hey Google, here’s a suggestion: why don’t you sponsor the guys and girls who are porting Android to the iPhone? I wouldn’t hesitate for one second to dual-boot my 3GS between iPhone OS and Android.
And webOS. And Windows Phone 7. And Haiku.
No matter how much Google tries to downplay the fragmentation issue, its still going to be a thorn in their side for a long time and they know it. Carriers just don’t like having to move fast. Unfortunately I don’t think Google really had any choice. They don’t make their own hardware and didn’t have any clout in the industry when they started the Android project. They couldn’t just walk in and tell the phone makers and carriers how to run their business. And the open source nature of the project means that google can’t force its partners to do anything.
I think things are getting better though, Google has done a good job creating demand for its os, and for newer versions of its os. If enough people demand faster updates we may very well see them, they also must realize that the only way to compete with Apple is to offer a better product, which they can’t do by dragging their feet with updates, for the moment Android has an advantage with Froyo, but for how long? If they wait 6 months to a year to get it out there, Apple may have taken back the crown. The reality of the market is going to force them to get their act together or lose to Apple. I hope they can get their act together but who knows.
Edited 2010-06-01 23:11 UTC
They could have designed the OS to auto-update.
They could have specified multiple hardware classes for developer to target.
They have options, fragmentation was never necessary.
And by fragmentation I mean fragmented as in not a single platform. What a lame defense Morrill gave, as if fragmentation is a completely subjective issue. The fragmentation problems that android developers have had are clearly stated in the android forums. Or you can just read some recent headlines to see the problem.
New Twitter Client Highlights Android’s Fragmentation
http://www.pcmag.com/article2/0,2817,2363326,00.asp
I didn’t say that fragmentation wasn’t a problem, quite the opposite. But I really doubt that the handset manufacturers were willing to cede enough control of the os on their phones to google for google to eliminate the fragmentation issue. Look at what the handset makers are saying about Android right now, “we want more differentiation for the software on our phones” so they slap all kinds of skins on top of it. If you think they would willing hand over all control of the os running on their phones you are mistaken.
Google does need to do a better job working around the handset makers for sure though.
I actually doubt that is what happened. My guess is that Google went into this with a lax attitude regarding consistency. It was a huge mistake to not define hardware classes, developers can’t be expected to make games for a device that may or may not have a touchscreen. They should have defined a standard resolution as well.
Yea but they could have this along with a common OS underneath if the system was designed properly.
I suspect Google would be all for getting their OS on your iPhone. I’m sure they would support it too, if Apple wasn’t among the most litigious companies out there at the moment. Jobs has stated that jailbreaking the iPhone should be a criminal offense. If Google gave its official blessing to any project planning a breach of the iPhone TOS, I’m convinced he’d let the lawsuits fly.
I bought a house from the Steve Jobs Apple’s store. I didn’t like the way kitchen is placed, the bedroom is placed. There is only one power socket for everything in the house. There is no refrigerator since Steve Jobs says that I don’t need it. For opening the door I need to “slide to open”.
I don’t like this way the house is created. I want to change the design and way it is built. Since I bought it, I own it and I don’t need any warranty from Steve Jobs. Then why should it be illegal?
Edited 2010-06-02 08:22 UTC
Then don’t buy a house in a gated community, for example.
It’s always Haiku with you Thom
I believe Google’s anti-fragmentation contract also specifies that agreeing companies wont create alternative SDKs to the official SDK. Makes good sense, fragmentation in developer tools could also create quite a mess (look at Symbian).
Edited 2010-06-01 23:55 UTC
It should become mandatory to release full source for all drivers and related firmware. Perhaps not while the device is still getting decent support from the manufacturer (although is any manufacturer living up to our expectations here?) but most definitely when the device reaches it’s end-of-life. I’m appalled by Samsung in this regard for breaking their promise about Behold upgrades, and will not buy a Samsung Android phone because of this.
The community has shown tremendous enthusiasm for this platform, and it’s frustrating to see it mishandled by Google and manufacturers. The community should not be hindered in their efforts to support devices, they should be empowered.
yeah… especially since Samsung seems to EOL its phones after they’re about 6 months old (see I7500 Galaxy updates)
As much as it’s the manufacturer’s fault for not being able to push out new releases (one would wish that the impending Samsung Galaxy S with Android 2.1 would mean Samsung’s devs were sufficiently skilled with Android 2.1 to port it to the Behold II, but apparently not), it’s also Google’s fault for releasing so many versions. And unless, as Rubin says, development actually slows down, I don’t see the problem getting any better.
If Google merely releases less often, I forsee a situation where Android N+1 will be so different from Android N that you’ll genuinely need new hardware for it.
On the other hand, if memory serves, the only phone that ever ran anything lower than Android 1.5 was the HTC Magic/T-Mobile G1. That would imply that all the current devices with Android 1.5 and 1.6 were put in the pipeline during the first big push, and their manufacturers may simply have been caught off-guard, not used to updating system software (HTC has no excuse for the Hero or the Droid Eris, though). We’ll need to watch and see how many of the ones on the way with 2.1 will actually get upgraded to 2.2 or 2.3.
It could be a matter of “only buy from these manufacturers”, “only buy a high-end phone/phone that’s selling well”, or “you’re screwed unless you update it yourself.”
http://developer.android.com/resources/dashboard/platform-versions….
According to the latest chart, 45% of all Android devices that can access the market are running 2.1. How many of those have upgraded, and how many are simply new devices crowding out the older ones… well, that remains to be seen. Google hasn’t published actual numbers to go with that pie chart.
The cell phone providers see what is coming in the future: Commoditization – when a product becomes indistinguishable from others like it and consumers buy on price alone.
If most of the new phones run Android, and most of the new phones have almost identical hardware, how willing are customers there to pay the extra money for the extra features?
Letting Android fragment sells more phone hardware since Android is free.
Windows Mobile, anyone? Or pretty much all other non iPhoneOS phone OS that’s been released?
Granted, there is some amount of fragmentation for the iPhoneOS, but (at least until we get to iPhoneOS 4.0 released officially) it has been minimal, as up until now, all past iPhones and iPod Touch models could be easily updated to the latest and greatest version, and Apple made it as close to painless as they could, for the most part. Apple wants to sell hardware, and also long-term they want to have better adoption for the purpose of selling apps via iTunes, which… helps sell more hardware, whereas Google is in it for the ad views, and doesn’t give a flip about selling apps and hardware itself: Google is quite content on relying on hardware manufacturers and cell phone companies doing most of the grunt work and financial risk in creating all the various models, which, once things reach a certain point, are going to have to very competitively go for the lowest price, and therefore lowest profit margins: this doesn’t harm Google in the least, on the surface, as Google, once again, is more concerned about ad views than hardware margins, since they have none.
However, Google wanting to go that way is in direct conflict with long-term plans of adoption of apps that are ideally targeted to any given hardware/OS feature set: this is largely because they’ve ceded too much control to the telecoms in terms of OS updates, and it seems (like this is a surprise) that since all the hardware is supposed to be nearly the same for the sake of reference platform compatibility (well, sort of!), they want to differentiate based on software, as there’s simply not an awful lot of margin for hardware differentiation. The other things they may differentiate on, of course, is phone service plans. Well, if they insist on doing their own customized customer-facing base software, that has to be developed and kept updated to match the OS to show the phone at its best customer-facing ability, and such things tend to cause schedule slips, and… the phone companies will often go with the cheapest thing they think they can get away with that’s different, even if not better.
Well, let’s face it: Apple is also largely differentiating based on their software, in the goal of selling more hardware: their big advantage is that they’ve secured deals to keep their native apps as-is, and have full control over the updating of the OS and built-in software, combined with their biggest advantage, really: iTunes and the AppStore being the sole Apple-approved place to buy all iPhoneOS software. In addition, since Apple isn’t going for the commodity space, and they keep upgrading the capabilities over time via software updates, they don’t have a deep need to do the hyper rabbit-reproducing low-end commodity cell phone generational upgrades, and can release them just once a year.
Now, which business model will work out best long-term for overall adoption? Well, look where Windows Mobile has gone as an example, or why Android has taken off: sufficiently set standards that have pushed models of smartphones to overcome all the old ones in volume for new sales (note I didn’t state that all the old phones are dead and buried, as I simply don’t know the answer to that question). But, didn’t Windows Mobile start out fairly well, too, until everyone and their dog came out with something similar, but different enough to have things fragment too far? Ultimately, I think there will be 2 companies that are profitable at this whole thing for cell phones: Apple and Google, Apple because they make and sell hardware, and Google because they give barely any care about the hardware end, as they only want ad views, and the hardware makers be damned beyond providing that. Apple has a different sort of long tail from Google: long-term iTunes app purchase, etc. while Google makes nothing on the start, and everything on the long tail: ad views. Well, at least that’s the theory What will the ultimate reality be?
The answer to this question depends very much on the context of the market to which it is applied.
In Australia, for example, the Linux/Android OS looks set to take off, but not in any open source model. Many Australians will be running 3 or four copies of Android (router, mobiles and entertainment devices), versus only one copy of Windows (desktop or laptop), and not even realise that they are running any Linux at all.
http://delimiter.com.au/2010/06/01/telstra%E2%80%99s-li…
http://delimiter.com.au/2010/06/01/linux-to-dominate-australia-thro…
http://ausdroid.net/
The Telstra T-box reportedly has a nice UI.
http://www.youtube.com/watch?v=ZDEFPATQNN8&feature=player_embedded
Edited 2010-06-02 13:45 UTC
I have a Droid Incredible; I tried several of the desktop brightness widgets, but none of them worked. I am told this is because of the SenseUI on the Incredible. I’ve also read that the LED ‘flashlight’ apps that were designed for the Droid don’t work on the Incredible either. Same for some of the apps that are supposed to disable/change the lock screen.
When I got the Incredible, I knew it would take longer to get updates, but had no idea that some of the apps on the marketplace wouldn’t work on my phone.
Sounds like my life with Windows Mobile. Okey they had even bigger problem with much wider range of screen sizes. But it still sucks since not all programs work. Hell even Apple is having problems since they are starting to cut out features on older phones. I think Google people are living in some fantasy world where they think that just by saying OEMs to update OS they would do it. King for a day, fool for a livetime.
How do you really develop applications using a moving target? How do you do it for several moving targets?
Remembering how lean Java was in the early days, I can’t help but wonder how you should develop one application for all versions of Android. Maybe, obviously, they still have to add features and they will likely radically change things along the way.
Sure, it’s not bad for the end user, but the developer always has more to enjoy with multiple versions. Stay? Go? Multiple projects for each operating system version?
The phone manufacturers need to guarantee updates for a certain amount of time instead of treating these phones like disposable items. If you sell a phone with the intention of people using it on a 2 year contract, operating system updates should be done for that length of time.
Certain customers are getting stung badly. I bought a HTC Hero, paid £400 at the time. I don’t expect updates for it forever – but if I was relying on HTC for the official update then I’d still be waiting for it sometime this month. I’d be unable to use the official Twitter client, Google Navigation, and probably various other applications if it was left on 1.5.
If my £400 was spent on the Nexus One then I’d be pretty much guaranteed updates for as long as Google is able to update it. I’m pretty bitter that I’ve paid for an expensive smart phone which HTC has treated as a dumb phone which so far has received just a single update.
My conclusion is fairly simple – if you want to avoid fragmentation then go for an officially supported Google device. Anything else is a risk, even the most popular phones of today will be old news tomorrow and an inconvenience to the manufacturer when they’re trying to sell their latest and greatest phone.
“Of course, this is all nice and dandy, but it doesn’t do anything to address the problem I think most of us think about when we talk about fragmentation: the multiple different versions of Android currently being shipped. Device makers and carriers are remarkably incapable, and this total lack of competence is only highlighted by Android. Every Android device – including the G1 – can run Froyo, Android 2.2, the latest version. Sadly, device makers and carriers block the upgrade process with their immense incompetence.”
It may not be incompetence. Handset makers are in the business of selling handsets. If your old handset can be upgraded and you don’t have to buy a phone to upgrade that’s a loss for the handset manufacturer.
It will be interesting to see how this tension plays out. On the one hand Google wants maximum numbers of the latest version of Android in use, on the other hand the phone makers want to sell new phones and a new operating system can encourage people to upgrade to new phone if that is the only way to get it.
The ability to run older apps on newer OSes is backwards compatibility (ie, an Android 1.6 app on an Android 2.2 device).
Forward compatibility allows newer apps on older OSes (ie, an Android 2.2 app being able to run on an Android 1.6 device).
It’s not entirely correct to say that the G1 can run FroYo, for one simple reason: its flash ROM is too small to hold the OS image unless you rip out a bunch of components and thus lose functionality (which is precisely what the versions of it that are out for jailbroken G1s do). That holds true for Eclair as well.
Edited 2010-06-05 02:29 UTC