如何下载Android源码(非常详细,含自动恢复下载,编译,运行模拟器说明)

今天终于把代码下载完成,特此开一篇博文记录一下。上图:

如何下载Android源码(非常详细,含自动恢复下载,编译,运行模拟器说明)

为了下载这些源码,历时5天5夜,说为什么这么长时间,是因为太容易中断了,有时候下一晚上可能就一直没在下,在你入睡的时候它就自己断了,趁着这个周末有时间一直在电脑旁白看着它下完,中途也是挺曲折的,磁盘空间不够用了(我的是40个G,不够用),各种折腾,最后才把30多个G的代码及临时文件移动到其它磁盘(Windows下使用的普通磁盘),继续下载完毕。


说一下如何下载,网上有挺多帖子说怎么下载的,我找了不少,但是由于国内不能访问google,于是发现可以访问清华的镜像下载,下载速度还是挺快的,最高速度500KB/s。

下载并配置repo信息(一定要按照这个来,刚开始我自己建了一个文件夹,在文件夹内部做,一直不成功,后来从新开始按照这个弄才好的)
 a.
mkdir ~/bin
PATH=~/bin:$PATH
git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git//这是清华大学的镜像
 b.
a步骤中得到的git-repo中的repo文件拷贝到bin目录
cp git-repo/repo ~/bin/
 c.修改repo文件,修改REPO_URL
sudo gedit ~/bin/repo
在该文件中修改
REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'
初始化repo
在ubuntu14.10上,建立放置源码的文件夹
mkdir android
cd android
git config --global user.email "youremail@email.com"
git config --global user.name "Your Name"
repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.0.2_r1//关于user.email,user.name,刚开始我以为是需要去哪里注册的,于是在网上找了半天,都没有说这个地方的注册问题,于是我尝试填了自己的邮箱,bingo!

(如果是Linux系统的话大伙不方便的话,可以通过修改host文件来实现,更新帖参见:http://laod.cn/hosts/2016-google-hosts.html)

开始下载

repo sync

下载的过程中会一直中断,需要看着电脑不停的让他接着下载,可以通过以下脚本完成自动恢复下载:

一点小提示: 有时候google的android服务器老是断,总不能让我们守在电脑旁边一直手工重新repo sync吧,这可是需要N个小时才能下载完的啊。

我们就写个小脚本让电脑自动repo sync,直到下载成功为止:
#!/bin/sh
count=0
ret=1
while [ $ret -ne 0 ]
do
repo sync
ret=$?
count=$(( $count + 1))
echo "try $count, ret: $ret"
done
echo "try $count, ret: $ret"
把上面的内容复制到一个文件里tryrepo.sh //新建文件的命令为touch tryrepo.sh,然后打开进行修改,使用vim编辑器:vim ./tryrepo.sh,如果没有vim编辑器则进行安装:sudo apt-get install vim,如果你的库里面没有vim的表文件的话,需要更新系统的软件库。
然后修改tryrepo.sh的属性,开始自动工作吧。第二点早上应该就大功告成了
chmod a+x tryrepo.sh //这个我推测应该是加入系统环境变量的意思?
./tryrepo.sh

下图是源码下载完成之后,将临时文件夹.repo删除之后的空间使用分析图:

如何下载Android源码(非常详细,含自动恢复下载,编译,运行模拟器说明)

所以在下载的时候一定一定要保留足够的空间,中间不够用的话,非常麻烦。100个G的空间推荐。


下载完成之后,编译也同样是需要很大的空间,预留30个GB,编译时间视电脑性能而定,我用了2天时间,算上中间环境配置,空间不够,编译错误,电脑不稳定等因素。(如果空间不够,则可以删除临时下载库.repo文件夹),在编译之前请参考其他文章添加系统环境变量。

使用命令:make -j8 -k 进行编译

参数请看帮助文档,编译完成之后如下图所示:

如何下载Android源码(非常详细,含自动恢复下载,编译,运行模拟器说明)


编译完成之后还不可以运行模拟器,其他文章会说模拟器在out/hosts/linux-86/bin/的文件夹下,但是我这里没有。需要使用下面的命令来导入一些系统需要的环境变量和参数:
source build/envsetup.sh

设置好参数之后,使用命令lunch选择我们要启动的目标,然后再输入emulator稍等一会,模拟器就会启动了,如下图所示:如何下载Android源码(非常详细,含自动恢复下载,编译,运行模拟器说明)


具体信息可以参见:http://jingyan.baidu.com/article/86112f13549b44273797872c.html?qq-pf-to=pcqq.c2c

上一篇:微服务技术栈:API网关中心,落地实现方案


下一篇:ListView原理简单介绍(着重介绍getView被调用的一系列过程)