Martin Heller
Contributing Writer

The myth of Android fragmentation

analysis
Oct 19, 20104 mins

The plethora of Android devices may point to market fragmentation, but Google's SDK transcends most differences

Every month or so, we hear someone bleat about how fragmented the Android market has become, how Google has ceded control of Android to the device manufacturers, and how writing and testing Android software is a nightmare. This is complete nonsense.

To see how this perception might have come about, look at the first pie chart on TweetDeck’s Android beta test blog posting. It lists hundreds of distinct kinds of devices, but note the vast majority of testers favored the top 15 phones.

Now look at the second pie chart: There are more than 100 distinct ROMs, but fully half of the testers used stock Android 2.2, and another 48 percent of the testers went with the four next most popular stock Android versions.

Now look at the conclusion above the first chart: “From our perspective it’s pretty cool to have our app work on such a wide variety of devices and Android OS variations.” This is despite “the massive variety of phones and Android OS versions everyone is running.”

Friends, Android market fragmentation is a nonproblem for software developers. From a programming viewpoint, if you are using the Android SDK, you basically stick to the Android and Google APIs for 99.7 percent of what you do, pick a minimum API level you want to target, and don’t worry at all about the UI skinning that HTC, Samsung, and Motorola add. The manufacturers are responsible for making sure their devices support the standard APIs, and in fact they do, as TweetDeck’s 36,427 active beta testers proved.

In a rare case, you might want to write an app that requires nonstandard hardware lacking an Android or Google API, such as using the dual flash LEDs on the HTC Incredible for a flashlight. Generally, the manufacturers eventually provide those apps for the largest use cases, if not on the day the phone ships. For the Incredible, HTC Flashlight came with the Android 2.2 update.

In terms of QA, you’ll want to test on every device that supports your minimum API specification, but you don’t need to have every candidate phone in-house. If you’re shipping using the Android Market, you can test on all the hardware that matters by releasing free beta versions, just as TweetDeck did. Believe me, users are not shy about reporting problems when an app doesn’t work perfectly on their phones, even when the app is free.

If you have a private application, you might want to let your users know what you’ve tested and currently support, but allow them to test for you on hardware and ROMs you don’t have. If they report all is OK (especially if they’ve gone through your own complete test sequence), then you can add the tested configurations to the list. Yet another, somewhat more expensive but better-controlled approach is to do paid crowdsourced QA — for example, with uTest.

It’s not that hard, folks. Start with the biggest target, currently Android 2.2, and write your application. Test internally on three phones running 2.2: one each from HTC, Samsung, and Motorola. Release for 2.2 only and see what your testers say. When Android pads begin to come out, start testing on those, and modify your application by adding alternate screen layouts if necessary.

Now go backward in Android versions, and add work-arounds to make the application function as well as possible on 2.1. There are some good techniques for this on the official Android blog. Again test on three phones, and release with a lowered minimum version level. Keep doing this until you reach the point of diminishing returns.

How is this fragmentation? It’s nothing more complicated than we’ve had to do for different OS versions, browser versions, and screen resolutions for 50-odd years. Well, maybe not browsers, but you get the picture.

Any questions?

This article, “The myth of Android fragmentation,” was originally published at InfoWorld.com. Get the first word on what the important tech news really means with the InfoWorld Tech Watch blog.

Martin Heller

Martin Heller is a contributing writer at InfoWorld. Formerly a web and Windows programming consultant, he developed databases, software, and websites from his office in Andover, Massachusetts, from 1986 to 2010. From 2010 to August of 2012, Martin was vice president of technology and education at Alpha Software. From March 2013 to January 2014, he was chairman of Tubifi, maker of a cloud-based video editor, having previously served as CEO.

Martin is the author or co-author of nearly a dozen PC software packages and half a dozen Web applications. He is also the author of several books on Windows programming. As a consultant, Martin has worked with companies of all sizes to design, develop, improve, and/or debug Windows, web, and database applications, and has performed strategic business consulting for high-tech corporations ranging from tiny to Fortune 100 and from local to multinational.

Martin’s specialties include programming languages C++, Python, C#, JavaScript, and SQL, and databases PostgreSQL, MySQL, Microsoft SQL Server, Oracle Database, Google Cloud Spanner, CockroachDB, MongoDB, Cassandra, and Couchbase. He writes about software development, data management, analytics, AI, and machine learning, contributing technology analyses, explainers, how-to articles, and hands-on reviews of software development tools, data platforms, AI models, machine learning libraries, and much more.

More from this author