Android源码下载详解(ubuntu11.04)
1初始化安装环境
1.1安装JDK
1.2安装所需的包
2下载源码
2.1安装repo
2.2初始化repo客户端
2.3使用repo获取源码
1初始化安装环境
(参考网页http://source.android.com/source/initializing.html)
1.1安装JDK
$sudo add-apt-repository "debhttp://us.archive.ubuntu.com/ubuntu/ hardy multiverse"
$sudo apt-get update
$sudo apt-get install sun-java6-jdk
如果所更新的源用的是另外一个地址http://archive.canonical.com/lucid partner
则会出现这样的情况:
正在读取软件包列表...完成
正在分析软件包的依赖关系树
正在读取状态信息...完成
现在没有可用的软件包sun-java6-jre,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,或者只能在其他发布源中找到
E:软件包sun-java6-jre没有可供安装的候选者
1.2安装所需的包
(注意不同ubuntu版本安装的包不同,这里以ubuntu11.04为例)
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
2.下载源码
2.1安装repo
(参考网页http://source.android.com/source/downloading.html)
$ mkdir ~/bin $ PATH=~/bin:$PATH $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x ~/bin/repo
在这里,几个月前
http://android.git.kernel.org/
已经无法访问了,很多朋友如果用的是这个源下载站点,
在之后的代码初始化时就会出现如下错误:
./bin/repo: 行1:未预期的符号`newline'附近有语法错误
./bin/repo: 行1:`<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">'
2.2
初始化
repo
客户端
(
1
)在~
/bin
下创建一个空目录作为工作目录
$
mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
(
2
)初始化代码仓库
$ repo init -u https://android.googlesource.com/platform/manifest
注:通过浏览器输入
http://android.git.kernel.org/
,发现该网站已经被重定向为
http://source.android.com/source/downloading.html
,如果是使用之前的网址,则会连接失败。
初始化完成后,将出现可以输入用户名和
E-mail
账户。
repo init
之后,在执行的目录中,将生成隐藏目录
.repo
。可以通过”
ls-a“
查看。也可以通过以下命令查看其树结构:
$tree -L 1 .repo/
.repo/
|--manifest.xml→ manifests/default.xml
|--manifests
|--manifests.git
|--repo
(
3
)在
repoinit
的时候,使用
-b
选项可指定初始化的版本
$repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
2.3
使用
repo
获取源码
在经过
repoinit
之后可以使用
repo
获取
Android
的全部代码,方法如下:
$repo init
repoinit
是主要从服务器上取内容的过程,执行时间非常漫长。可以通过
reposync -j5
来并行加速。
5
是并行的线程数,可自行调整。