Latest in Android

Image credit:

Dissecting Android's openness


Oh, Steve Jobs, you certainly do know how to get tongues wagging. During last quarter's earnings call he attacked Google's stance that Android is the superior mobile OS because it is "open," restating the debate into terms of "integrated versus fragmented" instead -- with iOS on the integrated side, of course. He went so far as to cite Tweetdeck's analysis that it had to deal with "more than one hundred" flavors of Android when developing its Twitter client -- something that seems to have ruffled its feathers.

Google's Andy Rubin responded with a rather elegant tweet (shown at the top of this article) that claims to demonstrate just how open Android really is, although our own Victor Agreda Jr wasn't convinced of the relevance. However the real story of how open Android is and isn't -- and of what that means -- is far more complex than can be captured in a tweet.

Firstly, an explanation of what Rubin's tweet actually means for the non-nerds amongst us: it's a set of build instructions for the Android OS. If you have the correct (free) development tools installed, these steps will download and compile the operating system, just like that. Google contends this is the true power of "open" -- open for people to use freely.

It goes further than that, though. The core Android operating system has been released under the Apache Open Source Licence. This gives anyone who cares to do so the legal right to download the code, modify it, compile their new versions, and give away or sell that altered version. That's certainly pretty open, right? I could write and distribute my own OS using pieces of Android.

Things aren't quite that simple though.

Open, closed, and ajar

if you cast your mind back, you may recall that famous Android modder "Cyanogen" was served a cease-and-desist order by Google to stop him from distributing his modified images for Android handsets. If Android is open source, and people are allowed to modify it at will, then what grounds did it use to do that? It turns out that the important part of the phrase above is "the core is open source." Some of the stuff you actually see when you turn an Android phone on is not open source at all. Well, I say "some"...

The Open Android Alliance is trying to build a centralized collection of open source replacements for all the not-open pieces of the Android picture, and it is currently targeting the following components: the Market (app store), instant messenger client, email client, mapping application, YouTube client, calendar application, setup wizard, and contacts syncing framework.

Many of these pieces can be substituted from other vendors, though. As you might expect, there are numerous IM clients, mapping and navigation tools, and so forth available for Android. However, if you follow Rubin's instructions to the letter, the operating system that comes out the other end will lack all of these pieces. It's Android, Jim -- but not as we know it. Ever wondered why the early wave of cheap and nasty Android tablets we are currently, uh, "enjoying" lack the Market app? It's not because the companies couldn't be bothered to add it. It's because Google controls who does and doesn't get access to these closed source components and has chosen not to let the tablet companies get them (with the notable exception of the Samsung Tab).

There's yet another wrinkle too: unlike most open source projects, like Firefox or HandBrake, Google doesn't expose the up-to-the-second version to the public eye. Rather, it releases the entire tree of source code for each version of Android, as the release also goes to users via the handset manufacturers. This means competitors cannot get sneak peeks at what's coming in new Android releases, but it also means that people outside of Google find it harder to meaningfully contribute any improvements they have written. Some industry figures such as Leslie Grande (former Apple and T-Mobile executive), Andreas Constantinou (industry analyst for Vision Mobile), and Joe Hewitt (developer of Firebug and Facebook for iPhone, amongst other things) have questioned whether Android is meaningfully open source at all, describing Google's control of the platform as "oligarchical" and the definition of "open" at work here as "watered down."

Still, though, the core parts of Android are open source. That's more than Apple can boast, right? Well, not so fast. iOS, like OS X before it, uses the Darwin kernel, and that's open source. Safari on both of Apple's platforms uses the WebKit rendering engine, and that's open source too (and indeed, is used in Android). If I had the sufficient skills for kernel debugging, I could, in theory, find and fix a problem in the kernel, submit the change, and that change would appear in a later version of iOS.

So, the bottom line: it's not entirely accurate to say that Android is entirely open or that iOS is entirely closed, although it is fair to say that the former is far more open than the latter. Geeks like me love to obsess over fine details like this, but what does all this mean to end users?

What difference does open make?

The most obvious advantage Android's openness can bring to the user experience is allowing developers more flexibility in the apps they can ship. There are a number of innovative Android applications, such as Locale and Swype, which are not allowed under the rules of the iOS App Store. It is possible that some startup out there right now is working on a truly game-changing Android app that turns the current mobile market on its head, in the same way that companies such as ICQ, Skype, Facebook, and Google itself were able to establish themselves on the Web.

The second advantage is that a more open platform leads to more interest and confidence from developers. Not only can they write apps that interact with the OS in deeper ways, but they can also write those apps with confidence that, once they get to the end, an arbitrary decision by a content gatekeeper won't stop them from selling their apps. Sadly, the same is not true of the App Store, where if Apple doesn't like you, you're out of luck -- and you don't find out that's happened until after you've written the program. Apple has relaxed and explained its rules lately, but it's still a far cry from Android where even malware can make it in. And of course, if all else fails, Android developers can distribute apps to users directly (called "sideloading") without going through the central Market at all; the iPhone has nothing similar to that unless you jailbreak.

Google's argument that "open leads to better quality" is entirely correct, of course, which is why Linux is the dominant desktop operating system. Wait, what? The cold reality is that whilst I, as a geek, get warm and fuzzy feelings from using open source software (Linux was my primary desktop platform for over five years), people don't care about openness -- except when it means they get better stuff. And whilst it seems obvious that open can lead to better stuff, it's far from a guarantee.

Open... but for who?

Android's open nature is a two-edged sword, because it also leads to fragmentation -- the stick that Jobs was using to beat it with during the conference call. Up until the iPhone's release, the carriers had been accustomed to the ability to fiddle with the software on the handsets they supply to their customers in any number of weird and "wonderful" ways. Most of the modifications were not good. They were generally paper-thin efforts to make the customer spend more money with the carrier in some way, often had UIs that conflicted with the phone's base software, frequently slowed it down, and in some cases, outright crashed it.

Apple's cast iron grip on the iOS platform utterly locked the carriers out of this. Pick up an iPhone anywhere in the world, on any carrier, and the only differences in the user experience will be the network name displayed at the top left and carrier support for tethering and visual voicemail. Psychologically speaking, the user of the phone isn't really a customer of the carrier -- he or she is a customer of Apple. The carriers become commoditized, interchangeable, replaceable. That's not good business.

With Android, the carriers can wrest some control back. Android's built-in openness means carriers can make all sorts of modifications. Consider the first release of Skype for Android: it was exclusive to Verizon devices and engineered in such a way as to use up your voice minute allowance when used for calls to non-Skype numbers over 3G (and with Wi-Fi calling disabled!). These restrictions were later lifted with an all-carriers release that supports Wi-Fi -- but meanwhile, Garmin navigation software will be exclusive to Asus Android handsets. AT&T even closed off the ability to sideload apps on some of their Android handsets, although clever hackers soon figured out a way around that.

Which brings us from carrier modifications to OEM modifications. Android handsets are made by a wide range of companies who buy their components from the same suppliers, are constrained by the same laws of physics, and operate with the same design parameters. It can be difficult to make products stand out. To counter this, HTC gives its handsets the Sense UI, and Samsung created TouchWiz. This spurs innovation (the OEMs might think of something Google didn't) at the price of unification (if I have a phone that uses Sense, I might not feel comfortable getting one that uses TouchWiz; or if I'm locked into my contract and I see some great feature on a TouchWiz phone, well, tough. I can't have it).

Google is attempting to discourage this behavior in future releases of Android, but it remains to be seen how much hostility the company will generate in the attempt, or how successful it will be.

The bottom line

Apple would have you believe that Android is a hopelessly fragmented user experience. Google would have you believe the iPhone is patrolled by ruthless gatekeepers that are strangling the innovation out of the platform.

Both companies are trying to sell you things. Both companies are a little right and a little wrong.

The real winner here, though, is the consumer. The fierce competition has led to two vibrant platforms characterized by breakneck invention, and it seems likely that the sort of decades-long software monoculture we've seen on desktop computers in the form of Microsoft's 90+ percent market share is unlikely to happen in the smartphone world.

From around the web

ear iconeye icontext filevr