The hard-working Michael DeGusta caused a stir in the Twittersphere on Thursday by announcing the results of a study in which he demonstrates that it's very hard to find an Android device that's running an up-to-date version of the OS. The study – Android Orphans: Visualising a Sad History of Support – goes on to say that this is bad for consumers and bad for developers. (It also suggests that things in the iPhone garden are rosy, or at least green – the colour he uses for phones that can run the latest OS.)

But is it? I say that developers who claim Android fragmentation is a huge problem are making a mountain out of a molehill.

Multiple versions

What people call "fragmentation" in relation to Android refers to the fact that any given selection of Android phones in active use may be running one of a number of versions of Android.

Typically, Google refer to these versions with an alphabetically-incrementing dessert-related/cake-related name: E for Eclair (v2.0/v2.1), F for Froyo (v2.2), G for Gingerbread (v2.3.x), H for Honeycomb (v3.x) and now the latest version, I for Ice Cream Sandwich (v4.0).

Michael's survey is helpful in understanding that typically Android devices in the field are running versions of the operating system which are out of date. If you refer to his survey, the line for the HTC Droid Incredible (released at the end of April 2010 in the US) shows that its spent half of its life running an up-to-date version of Android, and half its life running one that's a version behind.

What's not clear in the study is that an "old" version of Android is still a very modern version of Android.

To illustrate: Froyo was released in May 2010, and Gingerbread was released in December 2010 – that's a gap of a mere seven months. It's easy to forget the pace of Android development, and in such an environment of pace, fragmentation ends up being necessary. Without "fragmenting" the platform – in this case without having a stream of new versions hitting the market – you cannot create adequate competitive pressure in the market. As Apple, and to an extent Microsoft, keep innovating, it's essential that Google is moving Android along at breakneck speed.

But it's no wonder that updates are getting behind. Google is moving too fast for its partners in carriers and handset makers. Remember the seven-month window between Froyo and Gingerbread? Google is used to moving that quickly. A company like HTC or Samsung is not. Nor are carriers (which test software updates thoroughly before allowing them to be rolled out over their network). The mobile phone market and its incumbent members are used to moving at much slower pace than this.

Where's the problem

If we look at the other features, I'm not sure there's that much of a problem. Google maintains an up-to-date list of deployed versions built from analytics run against the Android Market. This shows that, at the moment, the biggest single percentage accessing the Market in the past fortnight goes to Froyo (v2.2) with 45.3%.

But this is where the label of "fragmented" is unfair. As well as having a "major.minor" version number like "2.2", each version has an API level. This API level describes the set of features that software developers can address. Eclair has an API level of 7. When building software, the developer will mark the application with a minimum API level. Thus if you take an application with level "7", it will run on that version of the operating system and higher. Ice Cream Sandwich, the latest v4.0 release, has an API level of 14. So a Froyo application will happily run on every version of Android from Froyo through Gingerbread and Honeycomb to Ice Cream Sandwich.

Of course, the problem is that if you target API level "7" you can only access features that were in that version of Android. So what are you missing out on if you go that low?

What Google added

This article on the Android SDK website provides detailed links to all of the changes that happened between versions. The work that they did in the 12 months between Eclair and Ice Cream Sandwich (ICS) is all good stuff related to platform improvements. The major functional API changes relate to things like near-field communications (NFC), VoIP and media improvements.

Because the changes over the last year have been generally incremental, if you target an older version like Eclair (which will cover 98.5% of extant Android devices) or Froyo (86.8% of devices) you can hit most of the features available in the platform. By aiming low you will hit the maximum customer base with the advantage that customers will automatically take advantage of improvements in the platform such as those related to performance and security the higher up the chain they go.

Kindle Fire? Amazon, we have a problem

However, in all this there is a far more sinister problem than just having a lot of versions out there in the field.

Android is a mix of stuff that is open, and stuff that Google retains ownership of in order to keep some control over the platform. When Amazon recently announced the Kindle Fire it didn't mention Google or Android. That's because this isn't an "Android compatible" device. Importantly it's missing a link back into the Google-managed Android back-end services infrastructure, which Android device makers achieve by licensing the Google Android Market app. (This FAQ has more information on this.)

You will be able to download apps for Fire from Amazon's own Amazon Appstore for Android, but because this Amazon Appstore will not link into Google's back-end services, this will limit the features available to the developer and this is the real fragmentation issue.

My view is that Android tablets will probably never gain traction in a market that contains Apple's iPad and which will have Windows 8 on ARM iPad-clones competing for space next year.

But the Kindle Fire will almost certainly be a massive success. Which means that if you want to support in-app payments you're going to have to detect if you're running on an Android-compatible device or a Kindle Fire and run a different operation. Same with your C2DM capability and the same with future capabilities that stream out of Google HQ. That is the real danger of fragmentation on Android. It's not just an issue of a lack of updates hitting the phones that are out there.

Matthew Baxter-Reynolds is an independent software development consultant, trainer and author based in the UK. His favourite way to communicate with like-minded technical people is Twitter: @mbrit.