There’s a recent article at Localytics that tries to prove that Android isn’t as fragmented as many think. Unfortunately, the article only considers OS builds and screen sizes and this isn’t the whole story.
My personal experience is that different screen sizes are actually less of an issue when solely developing for just smartphone or just tablet. If the app is designed and written well, screen controls can automatically re-size to fit the available space. Graphics neatly fit (get automatically fetched from) the hdpi, ldpi, mdpi and xhdpi categories. However, here are just a few fragmentation issues that have impacted projects I have worked on…
- Differing hardware - with/without keyboards and different hardware keys
- Non Google Experience devices with different APIs
- Differing APIs within an Android version, particularly with Contacts and Multimedia/codecs
- Differing external storage with some having none and others even having more than one
- Newer features (C2DM) not available on older phones or when Android Market isn’t installed
- Features (Licensing service, in-app billing) only available via Android Market
More recently, complications also have come about due to the need to support smartphones AND tablet, adherence to the new Android design guidelines and supporting Android ICS. Although Honeycomb and ICS seem similar, I have come across some differences in the call order of commonly overridden functions that took some effort to resolve.
Also remember, as previously mentioned, Google’s platform version web page is only a snapshot of people who have happened to use the Android Market over a 14 day period (probably those with new phones) and isn’t necessary representative of devices currently being used.