Google Android平台正式开源

呃……这个算是旧闻了……因为这两天我也在忙着下源代码……还没下好……

转自solidot

Google 推出移动设备软件平台 Android 之时,曾向开发者开放 SDK 包,并许诺将在开源许可模式下开放其全部代码,今天,Google 与其合作伙伴,在 Open Handset Alliance 兑现了其承诺,用户现在可以正式下载 Android 平台的源代码源代码基于 Apache 2.0 许可包含 Android 完整的代码基础,包括所有的库,媒体解码器以及应用程序。 Apache 许可模式允许开发者任意修改,分发源代码。同时,开发的新代码可以不再使用相同的许可模式,甚至可以不再开源,这为开发者带来完全的自由,可以基于 Android 代码开发他们自己的,专有的平台。Google 这一举措将自己和苹果划清界线,后者一直严格地控制着他们的 iPhone 平台。尽管最终用户可能并不关心是否开源,开源之举可以帮助 Android 从 iPhone 那里争夺开发者。相关视频

源代码下载:http://source.android.com/

SDK下载:http://code.google.com/android/

先就源代码下载页面一些重要内容摘取翻译如下:

源代码大约有2.1G大,完成编译需要6G。

编译Android源代码只能在Linux和Mac OS下。在windows下的编译现在还不支持。

只说在linux下的环境配置。

linux的话,指定的是Ubuntu(意思说其他的linux发行版本不被支持?)Android已经在ubuntu 6.06以及以后的版本中编译通过。

  • Git 1.5.4 或更新的版本。如何安装和配置Git的说明在下面。
  • Python 2.4,你可以从python.org下载。
  • JDK 5.0,update 12 或更高,你可以从java.sun.org下载.
  • 需要的包:flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential。可以运行一下命令获得包:$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
  • 你也许会需要Valgrind。这个工具可以帮你找到内存泄漏,堆栈溢出,数组越界之类的问题。可以运行一下命令安装:$ sudo apt-get install valgrind

安装 Git

要搞到这份android源代码你需要Git这个开源的版本控制系统(旁白:google code就用的是这个工具)和几个辅助小工具:

  • Repo是个封装脚本可以帮助你容易的调用Git在android中
  • Gerrit是个可视化的界面,可以用来跟踪,注释并且修改代码

Repo和Gerrit当前需要Git 1.5.4或更新的版本。检查Git版本,输入:git –version

(原文太麻烦了……现只针对ubuntu,有问题再看一下原文吧)

运行:sudo apt-get install git-core gnupg

安装Repo

1、下载Repo脚本

$ curl http://android.git.kernel.org/repo >~/bin/repo

$ chmod a+x ~/bin/repo

(呃我用wget下的……前面需要加sudo)

2、创建一个空文件夹来储存源代码:

$ mkdir mydroid
$ cd mydroid

3、运行repo init下载最新版本的Repo,包含了最近的bug修复。

$ repo init -u git://android.git.kernel.org/platform/manifest.git

4、按提示,输入你的名字和email地址来配置Repo。如果你打算提供代码,建议你使用捆绑google帐户的的email。

如果成功初始化将会有如下信息提示:

repo initialized in /mydroid

 

下载文件

1、从默认地址下载源代码到你工作目录:

$ repo sync

关于repo更多的用法查看Using Repo

andriod源代码以它们各自项目名称存于你工作目录

编译code

在你工作目录下运行make:

$ cd ~/mydroid
$ make

如果你编译失败,并提示missing了“run-java-tool”。尝试在making前设置环境变量ANDROID_JAVA_HOME到$JAVA_HOME

例如:

$ export ANDROID_JAVA_HOME=$JAVA_HOME