The Mess That Is Android: A Google-Powered Object Lesson, April 09, 2012 Google's Android is a great OS, but it has significant problems that must be addressed before it becomes irrelevant. Here are 10 of them.
Android is not fragmented. Android has a version problem but that more accurate statement doesn't sound as cool nor as dramatic. There is a big difference between fragmentation and versions. If you are stuck on an older version of Android, you have no shortage of places to point your finger like the OEM that made the device, the carrier that blesses updates, or even Google that issues them.
What Google did between versions, however, was pretty bad. Going from 2.x to 3.x and then 4.x, they made some significant changes to Android and notably the UI components. Many apps from earlier versions would run on later versions, but wouldn't look right. Apps written today for ICS require special handling to support previous versions. I haven't dove into multiple version support yet, but it's a pretty nasty mess. Google did create a compatibility API/SDK components which abstracts some of the messiness of supporting many different versions, but it isn't without its quirks, and few developers have re-written their code to support it.
In general, developing for Android is harder than it should be and supporting all of those versions it difficult. If you are developing an app, do you write to the 2.x train which is old or the 3.x or 4.x? Wait, 5.x is coming.