Android Fragmentation

If you currently own an Android phone, chances are you are running one of the four major release versions: 1.5, 1.6, 2.0, or 2.1.

Each version has its own set of supported features and a separate SDK (software development kit) which makes developers' lives a living hell - they have to develop and test on 4 different major operating systems or face users' wrath in the cruel world of application reviews.

Furthermore, there is a very high chance your phone manufacturer spent months customizing the OS with its own applications and UI: for example, HTC has Sense and Sony Ericsson's version is called Rachael. With every new Android release, these manufacturers now have to upgrade their custom UIs, port all their applications, test them, and then go through an even more rigorous and time-consuming testing with the carrier. Even Motorola, which hasn't created its own custom Android flavor for the Droid, has been taking months to push 2.1 to the phone owners.

Such OS fragmentation cannot be good for anyone - it confuses Android users, shuns developers, and puts unneeded burdens on manufacturers. It is no wonder that the lack of uniformity has been heavily criticized in both the press and the Android community.

Fragmentation Was A Necessary Side Effect

Let me point out that we might have not been where we are today had Google gone a different route. I am confident that most people experienced in the software development field would agree - Google has done an incredible job with Android.

It is easy to judge Google now, when hindsight is 20/20, but at the time it was impossible to tell just how successful Android would become and how fast it would do it, so Google *had* to try and push as hard as they could. There was no time for addressing fragmentation - releases *needed* to be pushed to market as soon as possible as major features were released. For example, Android 2.0 brought bluetooth APIs without which bluetooth tethering would not have been possible.

Such rigorous schedule is the primary reason why Android is now in many ways superior to other mobile operating systems, such as the iPhone OS and Web OS.

Having shipped 2.1, Google could finally breathe a little easier - the Android team has implemented enough features to allow the OS to stay highly competitive for a good number of months. Android was no longer a pubescent pimply teenager but a mature, stable, functional adult. Take a look at the pace at which Google has been pushing out Android releases:

  • 4/30/09 - 1.5 (Cupcake)
  • 9/15/09 - 1.6 (Donut)
  • 10/26/09 - 2.0 (Eclair)
  • 12/3/09 - 2.0.1 (Eclair)
  • 1/12/10 - 2.1 (Eclair/Flan)
  • ?? - ?? (Froyo - note that the next version will not be called Flan, most likely due to the confusion regarding whether 2.1 was considered Eclair or Flan. Google insisted on Eclair but some places prematurely adopted Flan)
  • ?? -?? (Gingerbread)

Google Plans To Fix The Mess

It is now the end of March, and until today there was no word on what the next version's major features would be. This meant that either Google got lazy (doubtful) or they were carefully thinking of the next steps regarding the fragmentation mess they got themselves into.

And Google has been listening. Engadget in an exclusive post announced that the company is going to make it their top priority to alleviate the problem of current Android fragmentation and make it easier for phone manufacturers and carriers to upgrade and test their custom Android flavors in the future.

Both Froyo and Gingerbread - those are the expected names of the 2 upcoming Android version - are expected to spearhead the issue.

Make The Core Lighter

The first and most important line of attack is moving more core features and applications to the Android market, thus decoupling them from the OS. As these apps, and possibly even core components such as the keyboard, would no longer be part of the operating system and instead maintained separately, the amount of components in need of testing and integration will shrink to a more manageable number.

Less development and less testing means integration with new Android versions will occur much faster.

Code Maturity Means Fewer Frequent Updates

Because Android has finally reached relative maturity, Google will no longer need to release updates as often as it has been (as evident from the bullet points above), thus giving phone makers enough time to upgrade all their devices to the latest and greatest.

Conclusion

Both of the points above sound reasonable, feasible, and promising. I am confident Google will strongly deliver and will do it by the end of 2010.

In fact, having already given 2.1 so much room to breathe, Google has helped most phone manufacturers tie up the loose ends, with upgrades to 2.1 coming out for pretty much all major phones in the next 2 months.

Sources: