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

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

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


为了下载这些源码,历时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删除之后的空间使用分析图:


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


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

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

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



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

设置好参数之后,使用命令lunch选择我们要启动的目标,然后再输入emulator稍等一会,模拟器就会启动了,如下图所示:


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

目录
相关文章
|
4天前
|
JSON 编译器 开发工具
VS Code阅读Android源码
VS Code阅读Android源码
11 1
|
24天前
|
XML Java Android开发
Android实现自定义进度条(源码+解析)
Android实现自定义进度条(源码+解析)
51 1
|
24天前
|
Java Android开发
Android反编译查看源码
Android反编译查看源码
25 0
|
1月前
|
移动开发 监控 安全
mPaaS常见问题之Android集成dexPatch热修复运行时候无法正常进行热更新如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
34 0
|
3天前
|
Linux 开发工具 Android开发
Docker系列(1)安装Linux系统编译Android源码
Docker系列(1)安装Linux系统编译Android源码
6 0
|
1月前
|
Shell 开发工具 Android开发
ADB 下载、安装及使用教程:让你更好地管理 Android 设备
ADB 下载、安装及使用教程:让你更好地管理 Android 设备
512 2
|
1月前
|
Android开发 对象存储
OSS对象储存android开发进行下载到本地文件时异步操作失效
android vivo80使用官方示例代码进行文件下载,但是使用oss.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>()时onSuccess和onFailure不执行
|
1月前
|
定位技术 API 数据库
基于Android的在线移动电子导航系统的研究与实现(论文+源码)_kaic
基于Android的在线移动电子导航系统的研究与实现(论文+源码)_kaic
|
1月前
|
搜索推荐 测试技术 定位技术
基于Android的自助导游系统的设计与实现(论文+源码)_kaic
基于Android的自助导游系统的设计与实现(论文+源码)_kaic
|
1月前
|
Java 关系型数据库 应用服务中间件
基于Android的人事管理系统设计与实现(论文+源码)_kaic
基于Android的人事管理系统设计与实现(论文+源码)_kaic