Wednesday, October 22, 2008

Android source code available

Google finally published today the source code of its Linux-based Android mobile platform. This long-awaited release arrives at the same time that T-Mobile is officially launching its new G1 handset, the first mobile device that will ship with Android.

The lack of inclusiveness in the Android development process has also been controversial. The openness of the platform has been called into question as a result of Google's failure to communicate and by a general lack of transparency around the project. These issues have soured some third-party developers and could hinder Google's ability to build a community around the platform. The past friction will likely be forgiven if Google works hard now to ensure that ongoing Android development is participatory and truly open. The signs so far seem promising: the documentation published today alongside the source code includes instructions on how to contribute to the project and seems to to reflect a willingness to collaborate with the open source software community.

The source code is housed in the kernel.org git version control repository. The code can be obtained by installing git and running Repo, a wrapper script written in Python that automates some git interaction. The build instructions indicate that the source code can be compiled on either Linux or Mac OS X. The Android developers specifically recommend Ubuntu and say that it Android is frequently tested on that distribution.

The build dependencies are pretty much what you would expect. You need Python, the JDK, a standard compilation toolchain, and a small number of other easily available open source libraries. The build instructions tell you exactly what Ubuntu packages you need to install to get all of these. Mac OS X users will need XCode, MacPorts, and a few other standard components. OS X users will have to use an Intel Mac because PPC isn't supported.

To contribute patches, third-party developers will need to use Gerrit, a code review tool. A visual overview of the patch submission workflow is available on the project's web site. Google has defined several levels of participation and has documented how third-party developers can gain higher access privileges, including the ability to approve inclusion of changes and new code into the Android code base. If Google adheres to the guidelines that it has defined, then anyone who has demonstrated sufficient technical expertise and has made significant code contributions will be permitted to participate at the highest levels and help guide the future of the project.

This is a very good start and it goes a long way towards addressing the concerns of critics, including myself, who have voiced suspicions of Google's motives and commitment. The contributor documentation paints a pretty clear picture of how Google intends to integrate the broader open source software community into the development process. There is still room for greater clarity, however, and it seems likely that the project would benefit from a more structured articulation of its governance model.