Chinaunix首页 | 论坛 | 博客
  • 博客访问: 438118
  • 博文数量: 133
  • 博客积分: 3259
  • 博客等级: 中校
  • 技术积分: 1255
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-14 13:49
文章存档

2012年(6)

2011年(112)

2010年(16)

分类: LINUX

2011-06-09 22:15:06

获取Android 源代码

本文档将描述如何设置你本地的工作环境,如何使用repo获取Android源代码,以及如何在你本地的机子上编译Android源代码。

相关阅读:

关于完整的代码评审和代码更新流程概述的相关内容见“补丁的生命周期”一节。

关于repo的相关细节内容见“repogit的使用”一节。

源代码中包含了哪些内容?

通过访问 网页接口可以看到源代码的快照和历史记录都在该Android的公共仓库中。

源代码的大小大概在2.1G左右。同时,要完成整个编译工作必须保证留有6G左右的剩余空间。

配置你的机子

为了编译Android源代码,必须使用Linux或者Mac Os操作系统。目前尚不支持Windows下的编译工作。

Linux

Android的编译工作通常是在Ubuntu的最近版本(6.06或更新版本)下进行测试的。同时,欢迎提交其他发行版下编译的相关测试报告,无论是成功还是失败的。

Ubuntu Linux 32 x86

为了成功安装Linux下的开发环境,请确信你已安装以下内容:

相关的必需包

Git 1.5.4 或者 更新以及GNU Privacy Guard

JDK 5.0update 12 或者 更新。由于不兼容@Override,所以java 6 并不支持。

flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl等相关包。


$ sudo aptitude install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev


你也可以安装Valgrind,该工具可以帮助你查找内存泄漏,堆栈的非法访问以及数组越界等问题。


$ sudo aptitude install valgrind


Intrepid8.10)版本的用户必须安装更新版本的libreadline


$ sudo aptitude install lib32readline5-dev


Ubuntu Linux 64 x86

64位下并没有完全很好的测试。请发送相关的成功或失败的报告到android-porting@googlegroups.com

64位下Android的编译工作需要32位的编译环境,同时还需要另外的一些工具:

相关的必需包

Git, JDK, flex 等其他上面所列的在32位机子上所需的包。

JDK 5.0update 12 或者 更新。由于不兼容@Override,所以java 6 并不支持。

32位交叉编译环境

x11开发包


$ sudo aptitude install git-core gnupg flex bison gperf build-essential zip curl sun-java5-jdk zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev


设置系统中默认的java版本


$ sudo update-java-alternatives -s java-1.5.0-sun


x11Ubuntu中没有x11库的相关包,但是通过以下的命令链接同样也可以工作:


$ sudo ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so


安装repo

repo是一种能够在Android环境中更加容易的使用git的版本控制管理工具,更多关于repo的信息请参见“repogit的使用”一节。

为完成repo的安装,初始化以及配置工作,请遵循以下步骤:

1、在新建一目录用来存放下载的repo工具,并添加该路径到path环境变量中

$ cd ~

$ mkdir android/bin

$ vim .bashrc

.bashrc文件的末尾加入如下内容:

HOME_BIN=~/android/bin/


export PATH=${PATH}:${HOME_BIN}

$ source .bashrc (使环境变量的设置立即生效,即同步变化)

$ cd android/


2、下载安装repo并更改权限

$ curl repo > ./bin/repo

$ chmod a+x ./bin/repo


初始化repo客户端

1、创建一个空目录用来存放下载的Android文件

$ cd ~/android/

$ mkdir androidplatform

$ cd androidplatform/


2、运行repo init 命令 来修正最近的bug,必须跟上URL

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

如果想获取某个分支而不是主线上的代码,需要使用 -b参数并指定分支名即可,比如:$ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake


3当出现提示时,输入你的真实姓名和email地址。如果你打算提交(贡献)代码的话,请使用与谷歌帐号相关的email地址。

完成后会看到 repo initialized in /android/androidplatform类似的提示。

这时在你的工作目录下即可看到.repo隐藏目录,里面包含了诸如manifest之类的文件以及子目录。


姓名和email地址是用来干什么的?

为了使用Gerrit工具(是一个基于 Web 的代码评审和项目管理的工具,面向基于 Git 版本控制系统的项目。【1】),你需要使用email地址来进行联系。并不一定要Gmail地址,只要确保使用该email地址你能收到信息即可。在你贡献代码的时候,将用到你的真实姓名。

什么是manifest文件?

Android源代码被放在很多不同的仓库中。而manifest文件包含了仓库中文件的映射关系,当同步文件的时候,该文件可以决定仓库中的哪些文件将被同步(下载)下来到你的工作目录中。


同步版本库(下载文件)

使用repo sync命令,可以将Android的整个代码树同步到本地

$ repo sync


这个下载过程比较久,请慢慢等吧……
更多关于repo命令的使用细节请参见repogit的使用”一节。



1


阅读(763) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~