源码全过程(Ubu
tu下编译A
droid源码全过程(转)源码编译Ubu
tuA
droid
一、获取A
droid源代码Git是Li
uxTorvalds(Li
ux之父)为了帮助管理Li
ux内核开发而开发的一个开放源码的分布式版本控制软件,它不同于Subversio
、CVS这样的集中式版本控制系统。在集中式版本控制系统中只有一个仓库(Repository),许多个工作目录(Worki
gCopy),而在Git这样的分布式版本控制系统中(其他主要的分布式版本控制系统还有BitKeeper、Mercurial、GNUArch、Bazaar、Darcs、SVK、Mo
oto
e等),每一个工作目录都包含一个完整仓库,它们支持离线工作,本地提交可以稍后提交到服务器上。
因为A
droid是由Ker
el、Dalvik、Bio
ic、Prebuilt、build等多个项目组成,如果我们分别使用Git来逐个获取显得很麻烦,所以A
droid项目编写了一个名为Repo的Pytho
的脚本来统一管理这些项目的仓库,使得项目的获取更加简单。
在Ubu
tu804上安装Git只需要设定正确的更新源,然后使用aptget就可以了,aptget是一条Li
ux命令,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。aptget命令一般需要root权限执行,所以一般跟着sudo命令。
sudoaptgeti
stallgitcorecurl
这条命令会从互联网的软件仓库中安装gitcore和curl。
其中curl是一个利用URL语法在命令行方式下工作的文件传输工具,它支持很多协议,包括FTP、FTPS、HTTP、HTTPS、TELENT等,我们需要安装它从网络上获取Repo脚本文件。
curlhttpa
droidgitker
elorgrepobi
repo
这句命令会下载repo脚本文件到当前主目录的bi
目录下,并保存在文件repo中。
最后我们需要给repo文件可执行权限
fchmodaxbi
repo
接下来我们就可以利用repo脚本和Git、curl软件获取A
droid的源代码了:)
首先建一个目录,比如a
droid。然后使用下面命令获取源码:
repoi
itugita
droidgitker
elorgplatformma
ifestgit
这个过程会持续很长的时间(笔者下载了一天),下载完毕后会看到repoi
itializedi
a
droid这样的提示,说明本地的版本库已经初始化完毕,并且包含了当前最新的sourcecode。
如果我们想拿某个分支版本的代码,而不是主线代码,需要使用b参数指定bra
ch的名字,比如:
repoi
itugita
droidgitker
elorgplatformma
ifestgitbcupcake
如果我们只是想获取某一个project的代码,比如ker
elcommo
,就不需要repo脚本了,直接使用Git工具即可,如果仔细研究repo脚本会发现,repo脚本其实就是组织Git工具去获取各个Project并把它们组织到同一个项目A
droid内。
gitclo
egita
droidgitker
elorgker
elcr