The gooey center of Google's pitch to developers to make apps and services for Android is a series of terms easily misunderstood, but central to Android's flexibility and success.
Every once in a while, Android terminology discussions flare up like a stomach ulcer for Google. They center on Android's nature as a development platform, which in turn affects the variety and breadth of Android apps -- from Minecraft to Pandora to the latest Flappy Bird copycats -- that you can download, and how up-to-date they are. Is Android truly open-source? Can you "fork" Android? What does Google mean when it talks about Android's "openness"?
The latest debate was sparked by recently discovered documents that reveal stringent restrictions on device makers that want access to Google's search engine, the video service YouTube, and more than a million apps found in the Google Play app store. European antitrust authorities are looking at whether Google has unfairly taken advantage of Android's position to push its own services and apps, according to The Wall Street Journal.
"The question of how you define 'openness' depends on what you want 'openness' to mean." <br>--Avi Greengart, analyst
The source, if you will, of Android's problems is its "open source" nature and a fundamental misunderstanding of what Google is doing with Android. So let's take a look at what we're really talking about when we talk about "open source" and "openness."
Openness is both a lure for developers, who want to create freely, and a trap that Google has built for itself. It's a term that the company uses to describe its approach to Android, but because it's a fairly common term it's come to mean different things to different people. As such, it's highly dependent on their interests.
"The question of how you define 'openness' depends on what you want 'openness' to mean," said Avi Greengart, an analyst at Current Analysis. "Do you want to be part of the process to define the software from the outset? Do you want to create a phone that exemplifies the best of Android and Google services together?"
Google's approach to Android development and the Android ecosystem promotes an atypical definition of the terms. The easier one to explain is how Android relates to open source.
Historically, open source coding projects large and small have been developed and managed by communities open to all. Firefox and Linux are prime examples of that. The Android Open Source Project, or AOSP, is the Android code made available to all.
Linux is the basis for Android, but Android has a key difference. It's developed behind closed doors at Google, and then once new versions are ready, they're made available to the public. It's the biggest and possibly the only open-source project developed this way. There's often a short delay between a new Android version being completed and when the code is made public, and there's rarely any public input on Android code before release.
Open and openness in the Android world are a bit more nebulous. Google's argument is that Android is open because the code is opened to all, because Google doesn't charge for the platform, and because developers have access to it all. The only restriction is on Google services, for which the company demands that phone makers conform to certain specifications.
Google's take on Android is that they make it as open as possible. Dianne Hackborn, a tech lead on Android at Google who has worked on Android since its early days, recently commented at length on Android development, openness, and how AOSP relates to Android with Google services integrated.
"One of the things that is interesting about platforms today versus the traditional desktop is that these cloud services are becoming increasingly central to the core platform experience," she said. "This presents a special challenge to an open-source platform, which can't really provide such cloud services as part of the standard platform implementation."
The tension between the quasi-open-source operating system and access to proprietary cloud services, including programming hooks called Application Programming Interfaces (APIs), and encompassing Google apps such as the Play Store, Google Music, and Google Maps, fuels much of the debate over Android's openness. This didn't matter so much five years ago, when few people used Android and cloud services weren't as popular or necessary, but modern Android is explosively popular and heavily reliant on the cloud. You can look no further than the appeal of the Nexus 5 and its Google Now integration for evidence of that.
Hackborn argues that AOSP is able to power any phone out of the box.
"AOSP is far more than the basic bones of a smartphone operating system. It is a complete smartphone operating system," she said. "The fact is, if you build AOSP today and put it on a phone, you will have a pretty fully functioning platform." She noted that AOSP includes smartphone essentials like a home screen launcher, contacts directory, dialer and phone app, camera and gallery.
Phone manufacturers and carriers that want to use Google's services must conform to Google's device standards, a stricter requirement than what basic AOSP requires. For some, this is a catch. For others, it's merely the cost of doing business.
The other component to Android's claim of openness is the Google Play Store ecosystem, said Abhisek Devkota, community manager at CyanogenMod, arguably the most successful of the custom-compiled versions of Android.
"The ecosystem creates a level playing field," he said. "As an app developer, I can take my app to any store and get the distribution I need. I still have flexibility."
To get access to Google's Play Store apps, all you have to do is install the Play Store. By running the app, you're agreeing to Google's terms of service, but at no point are you or the developer of your favorite app compelled to use or install Google's preferred marketplace.
Forks and fragmentation Devkota pointed out that several Android forks, such as the version that runs on Amazon's Kindle Fire and ones used by Chinese phone makers, do not use Google services. But what are they?
A source fork occurs when a developer takes the source code in a new or different direction. There are dozens of publicly available Android forks, built each time that a developer publishes newly recompiled code. Each time that new AOSP code gets published by Google, it's up to the developer to integrate it into a new build.
Android fragmentation occurs when a phone ceases to receive Android operating system updates, often because operating system updates encounter compatibility problems with older hardware. Most often, this comes at the hands of the carriers, although Google does cease to develop new code as well. Currently, the biggest fragmentation split is between Android 4.0 Ice Cream Sandwich and above, and Android 2.3 Gingerbread.
Last year, Google introduced a new framework to the Play Store so that more apps could be backward-compatible with older versions of Android. However, only about a quarter of top-tier apps use it, said Ben Bajarin, of the analysis firm Creative Solutions.
"My mom and dad use Android phones. One of them is on my software, the other is on stock Nexus software. If I asked them to tell me the differences, they wouldn't be able to." <br>--Abhisek Devkota, CyanogenMod
"Most app stores are curated," he said, including Amazon's store and the most popular of the Chinese app markets. Nevertheless, he said, "most Android developers won't adopt the framework because they don't even adopt Google's best practices to begin with."
Hackborn defends Google's right to include proprietary services, and to keep them proprietary, saying that its no different than any other proprietary app on Android. That's not entirely true, since Google does keep some API development to itself, but to its credit the company does open-source most of the new APIs introduced to Android.
Google may push its suite of services, including Maps, Gmail, Search including Google Now, Calendar, and Drive, but it's hardly forcing AOSP developers to use them. If you buy the Oppo N1 smartphone that comes with Devkota's CyanogenMod, it does have Google services on it, but most people come to CyanogenMod by installing it by hand. From there, if you want Google services, you have to install them yourself.
"My mom and dad use Android phones. One of them is on my software, the other is on stock Nexus software. If I asked them to tell me the differences, they wouldn't be able to," Devkota said.
It's certainly possible that Google will pull more default Android apps into the new Play Store framework, even core apps like the Dialer and Contact List. It could build features into those services that make them the best in class, and it could even give them an unfair advantage over similar apps made by competing developers.
However, Android runs on more kinds of hardware than just about any other operating system out there. Not just phones and tablets, but refrigerators and ovens and cameras, just to get started. Google may not make money on them, but to suddenly undercut years of talk of "openness" to drive people to Google services would be a massive shift for the company.
Is it possible? Sure. But it's as likely as Apple shipping an iPhone running Android.
Update, 9:15 a.m. PT Added more details on AOSP.