Home / Blogs / Matt's blog
Android "Fragmentation" - what's it all about?
Anyone keeping track of Android will no doubt have read about the apparent fragmentation issues with the Android platform. But what does this really mean?
As of writing, there are three versions of Android in common use - 1.5, 1.6 and 2.1 (several other versions are also in use but in such a small minority they're not worth discussing here).
So, what does this mean? Here I've highlighted my thoughts on how it affects various user groups.
App Developers
As long as the older versions of Android are being used, developers will have to make sure they target those older versions to get the maximum market reach for their apps. To do this, developers won't be able to use the new features of later versions without creating version-specific installations which is far from ideal. However, to the app developer there's not a huge amount of new API functionality that they could take advantage of. I would imagine that 90% or more of all market apps run fine in 1.5 and would show no benefit being targeted directly for 2.1. To the majority of app developers, this fragmentation problem isn't really a problem at all.
Consumers
Anyone who buys any new piece of technology these days should be well aware that it'll be out of date within 12 months, possibly even sooner. Google have confirmed that they will NOT be upgrading their first Android phone (the T-mobile G1) to 2.2 as it doesn't have enough memory or power to cope. Seeing as this phone is now 18 months or more old, this is no surprise.
What is frustrating, however, is that even some brand new phones on the market today are still running very old versions of Android, such as the HTC Hero which is still running 1.5 in Europe. This means that users are buying a piece of kit that is instantly out of date. Whilst the manufacturer (HTC) is working on rolling out upgrades, it has taken them many months to get these upgrades ready to roll.
Manufacturers/Carriers
The stock Google experience is not a bad one, but in true Google style it leaves much to be desired in terms of eye candy. HTC is one manufacturer who realised that their users want more than the standard Google offering. As Android is an open source system (meaning you can download the source and modify it freely), HTC decided to spend a lot of time making their own customisations right down at the core Android level.
What this means is that when Google release a new version, much of the core Android code will have changed, leaving a huge amount of work for HTC developers to bring their customisations up to date with the latest versions of Android. Google have been releasing new versions of Android rapidly over the last 18-24 months which means that manufacturers and carriers have had a hard time keeping up.
Make no mistake - the smartphone war is raging right now with the big players (Apple, Microsoft, RIM, Nokia, Palm/HP and Google) all competing for first place. Releasing new and innovative features before the rest is one of the key weapons in winning the race, and Google have definitely been good at this. Each release of Android has provided lots of new features that everyone wants and not all the competitors have, however as explained above, the time delay from Google releasing a new version to the consumer having it in their hand is quite long.
Google have secured their place towards the top of the leaderboard at the risk of alienating their partner carriers/manufacturers with rapid releases. It's easy for Google to wash their hands after each release and blame the carriers/manufacturers for not keeping up, but as they have found out with their attempt at selling the Nexus One directly, those partners are key to their success.
How it's being fixed now
Google have announced a few ways that they're trying to beat this fragmentation problem.
Firstly, they're going to start pulling the core apps out of the core Android system and into installable apps from the Market. This means that someone running 1.5 can still have the latest version of the Email app without having to wait for a full upgrade. Wise move.
Secondly, Google have announced that they're slowing down their releases to twice or once a year, meaning their partners can plan better and keep up with new releases. Another wise move.
My thoughts on a solution
In my opinion, app developers are for the most part not affected by fragmentation. Most users are also not bothered except for the small number who are frustrated that they're running an 18 month old OS on a 1 month old device.
The biggest groups hit are the carriers/manufacturers who have to put a lot of work into implementing their customisations for each release, and Google who are getting bad press for allowing this to happen.
I think Google need to talk to their partners and find out exactly WHY they had to make deep customisations. If Google could then modify the Android codebase accordingly to allow their partners to add their custom bits on top without having to touch the core, that would leave a minimal amount of work to be done for each release. Effectively, each manufacturer would just need to install some apps for their customisations on top of any core release of Android.
For example, the HTC Sense lock screen shows calendar notifications, new text messages etc. The Android API does not allow for custom lock screen development, so HTC had to modify the Android core codebase. If Google would open up APIs to let people create their own lockscreens, HTC could create a simple app without having to modify the core code.
Everybody wins.

