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.

Of course, you're right. I was thinking of the Droid which, even without a custom Android, is still not updated to 2.1.

I'll make a correction.

Duv

From my perspective, this seems something of a side effect of being based on linux. The pace of development that I see in Android seems to be the same that I see in Linux.

As much as Google can try, I don't think that slowing down the pace of development is going to help this big perception of fragmentation. Since simply put, this is a market that equally moves at a blistering pace.

I think that the CORE of the problem lay in the releases, we have had a swamp of phone released... but the timing of this could not be worse. There has been phones that have not seen a word since the 1.5 release, only to release themselves now when the pace of development has pretty much leap froged by that point.
It does show something of a disconnect that some Manufactures and Carriers have with android and it's development. If anything, they should really get more involve with the core of development in android and set-up some type of governance to keep this bullet train from derailing itself.

No amount of software magic will solve an issue where, at its core, is more of a human communication problem.
It may help through.

http://www.AndroidPolice.com Artem Russakovskii

Duv,

I agree that what Google is going for may not solve the problem but will help it tremendously. It will help manufacturers get a breather and catch up. They, in turn, would love to have as many happy customers as they can get, so they will try hard to keep up simply because if they don't, someone else will steal their customers - free market competition should play nicely.

Finally, it's my hope that each of them would figure out a way to make their phones in such a manner that they all could use the same or very similar code base internally when an upgrade is needed. That way, they would only need to figure out the upgrade to latest version one time. Hopefully HTC is doing just that.

Duv

The best way for that, is to see there mods in the android git tree. I am not so sure that Motorola (thought it seems pretty light) or Sony could manage to do that with so much in-house customization work (and that is not even getting into the issue of licencing) but HTC could benefit and capitalize from doing so seeing how much of a following HTC Sense UI or TouchFLO happens to have with people intested with Android (and Windows Mobile, respectively).

To be honest, and the thing that I am trying to itterate is, the ball is in the manufacturers court to keep on top of development and continue to do so. If they fall behind (or keep being involved at an arms lengh), it will be noticeable with a market like mobile moving at about the same pace as Android is.
This will also be important as Android itself moves to more form factors....
Where the problems might magnify itself.