Sunday, November 21, 2010

Commentary: On Android Fragmentation

Question: Is Android fragmented?

Short Answer: Yeah.

Long Answer: Yeah, kinda, but who cares?  Shut up.

Longer Answer: Well, let's first talk about what fragmentation means and why Android is fragmented.

Operating system fragmentation is the phenomenon when multiple versions of an operating system are available to consumers at the same time and the differences between OS versions cause difficulties for developers.  For example, Rovio Mobile, the makers of the popular app "Angry Birds" recently blogged about their difficulty making the game work smoothly on older versions of Android.  The game works fine on phones with better hardware and the latest versions of Android.  However, if you are the unlucky owner of, say, a T-Mobile myTouch 3G, then your phone officially does not support Angry Birds (for now).

There are several versions of Android available—1.5, 1.6, 2.1, and, the current version, 2.2—and each OS is often customized with manufacturer's special user interfaces, such as Motorola's Motoblur and Samsung's TouchWiz.  Additionally, there are hundreds of different Android phones running these different, possibly customized OSes, each with different hardware specs.  Granted not all phones are currently for sale; some have been discontinued.  But not every consumer can afford to upgrade every time a new Android phone is released and most consumers are locked into a two-year contract anyway.

It seems like the simple solution would be for carriers and manufacturers to allow users to download the latest version of Android on their Android phones, but they don't always allow this.  One reason is that manufacturers need time to update their custom UI to work with the new version of the OS.  I don't know why they wouldn't just let users forgo the custom UI and download the uncustomized ("stock") Android OS until the custom UI is updated.  Another reason might be that the new OS requires too many resources for old phones with old hardware to handle.  I honestly don't know the answer and whether the manufacturers or the carriers are more to blame.

Other smartphones (i.e. the iPhone) don't have to worry about this.  There are only four iPhones in existence (original, 3G, 3GS, and 4) and the software is tightly controlled by Apple (and okayed by AT&T).  Apple has made sure that the last three phones can run iOS 4, the latest version of their OS, and even if it's a bit slow on the 3G, Apple's getting better results than Google (case in point: several users state that Angry Birds works fine on the original iPhone).  Apple only has one carrier to consult about visual voicemail and whether FaceTime should be allowed to run over 3G.  Hardware and software decisions about the iPhone are simplified by the lack of diversity.

This is why Android is fragmented.  Android is a free and open source OS and any phone manufacturer can put any version of Android on whatever phone they want, and the carrier can choose to let users update it or not.  That's why you can still buy a Motorola Devour from Verizon today with Android 1.6 on it (with Motoblur), which Motorola refuses to update 2.2 or even 2.1.

Because of this fragmentation, developers who write apps for Android either have to test their software on a plethora of different custom Android builds using a bunch of different hardware, or they can take the easy route and test on a few phones running 2.1 and 2.2.  Most developers seem to do the latter, leading to buggy apps on older hardware and older Android versions.

So, yes, Android is definitely fragmented, but is it Google's fault?  I'd say no.  It's manufacturers who release crappy hardware and put custom UIs on Android, preventing simple updates.  It's carriers (I think) who act as the gatekeepers to OS updates, preventing and allowing updates when it suits them.  What can Google do about it?

I suppose Google could better coordinate with manufacturers about minimum hardware specs for each OS, but this wouldn't necessarily prevent Android phone makers from releasing cheap phones.  They could prevent access to Android Market (the premier place to find Android apps) for older versions of Android or overly customized OSes, but locking down the platform goes against the spirit of free, open source Android.  I don't think there's much Google can do about Android fragmentation.

Additionally, we have to take into consideration that Android is a newer, faster moving OS.  It came over a year after the first version of iPhone's OS and is arguably being updated faster as well.  Andy Rubin, the "father" of Android, made the point:
"Older Android devices that can't be upgraded to newer versions of the OS or run newer apps are no different than an iPhone from 2007 not being updated to OS 4. It's not fragmentation -- it's legacy. If so, legacy systems are now aging faster than ever before, due to a rate of innovation that has never been seen before in history."

- Michael Gartenberg, "Is Android fragmented or is this the new rate of innovation?"
Because it's such a new, rapidly changing OS, some hiccups are expected.  Android will eventually mature and hit its stride, reaching a point where OS updates are less significant and farther apart.  App compatibility won't be much of an issue then.

Furthermore, one can make the case that, at least software-wise, fragmentation is not an issue.  As of November 1st, 77% of Android devices are running 2.1 or 2.2, the most current versions of the OS.

Lastly, since the main culprits in fragmenting Android are the manufacturer and the carrier, consumers won't have any problems if they simply buy an Android phone from a good manufacturer-carrier combo.  If you're buying a $50 Android phone or any Android phone from AT&T (who are infamous for locking down Android phones), then don't be surprised when you can't run the latest and greatest Android app.

So, yeah, Android phones are kinda fragmented, but who cares? Shut up.

Dadaist Answer: The beans left yodel for what it's worth when.


Update: A post on why iOS is fragmented, too, and why some fragmentation is expected; by Matt Maroon, a real, live app developer.

No comments:

Post a Comment