Less than a year after announcing Android, the open-source phone operating system intended to jump-start the mobile Internet, Google began sharing the project's underlying source code.
The Android Open Source Project site includes a project list, a feature description, guides to the roles people can have in the project and how to contribute, and of course the Android source code itself.
Google has one team of programmers building the software and another professional services group to help support phone makers building Android phones. Now, though, as T-Mobile's G1 arrives on the market, Google hopes to multiply that by drawing upon the collective energy of outside contributors to the project.
"Our plan is a launching point for a much more vibrant open-source community," said Rich Miner, manager of Google's mobile platforms group. "For the past almost four years, this has been a large effort between Google and our partners. There have been a lot of people working on the code, but that's going to be multiplied by several orders of magnitude."
Open-source software can be freely used, modified, and redistributed by anyone, freedoms that make it a daunting competitor to proprietary software companies that charge for the code. Although open-source software rarely has been the sole basis for a thriving company, it can be a powerful tool to aid a broader agenda. Sophisticated technology companies such as IBM, Oracle, and even Apple often subsidize open-source projects for that reason, and Android fits into that category.
Android beyond the T-Mobile G1
Four members of the Open Handset Alliance, which co-developed the Android software, build mobile phones: HTC, which build the T-Mobile G1, as well as Motorola, LG Electronics, and Samsung. And another alliance member, Wind River Systems, believes Android will power consumer electronics devices including set-top boxes and in-car computing systems.
Now that Android is open-source software, though, other manufacturers may use it, and Miner said they will. Indeed, Wind River said Kyocera is building an Android phone.
"Think what happed to PC clones in the 1980s and 1990s timeframe. We're starting to see coming out of Taiwan the equivalent of a Micron motherboard," inexpensive mobile phone hardware that now can be made useful with Android, Miner said.
This time, though, Microsoft Windows isn't going to be the operating system that spreads like wildfire, if Google has anything to do with it. "There are a billion mobile phones sold every year that don't have a good, highly connected mobile operating system," Miner said. Android is intended as an answer to that issue, and one that sidesteps the controls over software by rival operating systems such as Windows Mobile and Nokia's Symbian, he said.
"We feel fairly strongly, and it's resonating loudly through the industry, that innovation is maximized when no one entity controls a platform," Miner said.
Adding open to open source
It's a maxim among open-source fans that projects that begin as open source fare better as such than those that begin as proprietary projects and are retrofitted with an open-source governance. For example, the Linux kernel project has thrived as an open-source project since its earliest days, with various different ways people or companies can involve themselves, but it took several painful years before the Mozilla open-source Netscape project finally became relevant in the form of Firefox.
And some open-source fans have criticized Google for being too closed with Android in its early stages. But Miner insists that Android, while initially developed in-house, is indeed a true open-source project.
"It was built with intention of open-sourcing it," Miner said, pointing specifically to project details such as its architecture, comments in the code, and the code's structure. "We decided we didn't need to build release 1.0 as open source...We engineered 1.0 as a best-in-class, fully staffed, engineered product. Having delivered that, we think it's time to start leveraging the benefits of what open source can bring.
The code is managed by the Android Open Source Project, and anyone contributing code to the project must sign a Contributor's License Agreement, Google said. The project is separate from Google, the company said, but it's not immediately clear just how independent.
Android is big--with 11 million lines of code, about 8.6 million of them open-source according to an earlier interview with project leader Andy Rubin. But what's in Android exactly?
At the foundation is a stripped-down Linux kernel that communicates with a phone's hardware, and Android supports multiple phone processors. Much of the Android work, though, takes place one level above that.
Daily Debrief: G1 soon to hit stores
On conventional computers, software runs directly on that operating system kernel. Android, though, includes a "virtual machine" software layer called Dalvik that runs applications written in the Java programming language. Dalvik isn't a part of the mainstream Java community built by Sun Microsystems, but it's very close from a programming perspective.
A host of built-in applications are available to run on Dalvik, including software for dialing the phone, using online maps, browsing the Web, using e-mail and Gmail, and managing contacts. In addition, Open Handset Alliance partners contributed software, including a speech-recognition engine from Nuance and audio and video decoder software from Packet Video.
With this flexibility, though, can comes chaos. Google said it will offer a compatibility test suite to ensure various versions of Android remain compatible.
One advantage of using this virtual machine technology is that Android programmers don't have to worry about what underlying hardware a phone uses. That's an important factor when it comes to sharing software, most notably through Google's Android Market download service, because programmers won't have build different versions of software for one phone processor or another, and people won't have to know this obscure information either.
However, Dalvik doesn't get around all the complexities of the computing world. For example, a game might require a touch screen, but not all Android phones necessarily will have that higher-end feature. For that reason, Google plans to build a profiling feature into the Android Market so users will be able to download only software appropriate for their model. With only one Android phone on the market until 2009, that complication is a moot point for now.
Updated 4 p.m. PDT to correct Miner's title.