如何下载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!

(init的可能需要翻墙,如果是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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NumPy快速入门-- Less 基础/线性代数

文章目录1. 广播(Broadcasting)规则2. 使用索引数组索引3. 使用布尔值作为数组索引4. ix_()函数5. 线性代数 简单数组操作6. 技巧和提示6.1 “自动”整形6.2 矢量堆叠1. 广播(Broadcasting)规则 Broadcasting允许通用函数以有意义…

Intel PAUSE指令变化影响到MySQL的性能,该如何解决?

MySQL得益于其开源属性、成熟的商业运作、良好的社区运营以及功能的不断迭代与完善,已经成为互联网关系型数据库的标配。可以说,X86服务器、Linux作为基础设施,跟MySQL一起构建了互联网数据存储服务的基石,三者相辅相成。本文将分…

会议 | CCKS 2019 全国知识图谱与语义计算大会在杭州隆重召开

本文转载自公众号:中国中文信息学会。2019 年全国知识图谱与语义计算大会(CCKS 2019)于 8 月 24 日至 27 日在杭州召开,由中国中文信息学会语言与知识计算专业委员会主办,浙江大学承办。本次会议主题是“知识智能”。大会吸引了来自海内外的八…

Hystrix 简介和使用

Hystrix一、概念二、使用1. 环境搭建2. 服务降级3. 异常熔断4. 自定义异常熔断器5.Hystrix仪表盘监控三、测试1. 异常熔断2. 超时熔断3. 熔断器获得异常4. 异常忽略5. 自定义异常熔断器一、概念 故障蔓延:由于一个服务变慢或没有响应导致大量请求堆积,进…

android中如何使用一张图片适配不同尺寸的APP引导页

在我们平常开发的过程中在做引导页适配的时候,有时候会犯难,怎么样作图可以将各种不同尺寸分辨率的手机都适配好也就是不变形不拉伸,官方给的说法也只是做多套图去适配不同的分辨率,遇到全屏展示引导这种问题的时候就有些力不从心…

还在用Tensorboard?机器学习实验管理平台大盘点

文 | SisyphusBJ源 | Pytorch Lightningwandb.aicomet.mlneptune.aiallegro trainsmlflowguild.aisacredtest-tubetensorboard相信很多同学看到上面这个列表的第一印象是懵的。我们先看下机器学习实验管理平台 到底是做神马滴:一句话概括就是:&#xff0…

论文浅尝 | 利用图 Transformer 实现基于知识图谱的文本生成

论文笔记整理:谭亦鸣,东南大学博士生,研究方向为跨语言知识图谱问答。来源:NAACL2019链接:https://arxiv.org/pdf/1904.02342.pdf本文关注如何从信息抽取结果(特别是知识图谱)出发,生…

LeetCode 230. 二叉搜索树中第K小的元素(中序遍历)

文章目录1. 题目信息2. 解题2.1 中序递归2.2 中序循环写法1. 题目信息 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。 示例 1:输入: root …

Apache Doris在美团外卖数仓中的应用实践

序言 美团外卖数据仓库技术团队负责支撑日常业务运营及分析师的日常分析,由于外卖业务特点带来的数据生产成本较高和查询效率偏低的问题,他们通过引入Apache Doris引擎优化生产方案,实现了低成本生产与高效查询的平衡。并以此分析不同业务场景…

Feign 简介和使用

声明式服务消费Feign一、简介二、使用Feign实现服务消费者三、实现普通的服务提供者四、Feign服务调用测试五、Feign消费者测试负载均衡服务熔断一、简介 Feign是Netflix公司开发的一个声明式的REST调用客户端; Ribbon负载均衡、Hystrix服务熔断是我们Spring Cloud…

论文浅尝 | 面向自动问题生成的跨语言训练

论文笔记整理:谭亦鸣,东南大学博士生,研究方向为跨语言知识图谱问答。来源:ACL 2019链接:https://128.84.21.199/pdf/1906.02525.pdf动机现有问题生成方法需要大量的“文本-问题”有标注数据对作为训练数据集&#xff…

再见,Spark!Flink已成气候!

身为大数据工程师,你还在苦学Spark、Hadoop、Storm,却还没搞过Flink?醒醒吧!刚过去的2020双11,阿里在Flink实时计算技术的驱动下全程保持了“如丝般顺滑”,基于Flink的阿里巴巴实时计算平台简直强无敌。最恐…

Java线程池实现原理及其在美团业务中的实践

随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池:ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使…

Zuul 简介和使用

Zuul背景Zuul的作用Zuul API网关Zuul请求过滤Zuul路由规则Zuul异常处理背景 通过之前的学习,我们知道注册中心Eureka,可以讲服务注册到该注册中心,Ribbon和Feign可以实现服务负载均衡地调用,Hystrix可以实现服务熔断,…

技术动态 | 知识图谱上的实体链接

本文转载自公众号:知识工场 1、什么是实体链接实体链接(entity linking)就是将一段文本中的某些字符串映射到知识库中对应的实体上。比如对于文本“郑雯出任复旦大学新闻学院副院长”,就应当将字符串“郑雯”、“复旦大学…

卖萌屋学术站开放注册啦!寻募种子用户,超多特权放出!

文:夕小瑶消失一个多月的小夕又突然出现啦!要问小夕最近业余时间在做什么,那就是跟小伙伴们开发学术站啦~(等...等再肝一版,小夕就继续给大家写文章(。 ́︿ ̀。)众所周知,卖萌屋学术…

LeetCode 11. 盛最多水的容器(双指针)

文章目录1. 题目信息2. 解题1. 题目信息 给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。 在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。 找出其中的两条线,…

WSDM Cup 2020检索排序评测任务第一名经验总结

1.背景 第13届“国际网络搜索与数据挖掘会议”(WSDM 2020)于2月3日在美国休斯敦召开,该会议由SIGIR、SIGKDD、SIGMOD和SIGWEB四个专委会共同协调筹办,在互联网搜索、数据挖掘领域享有很高学术声誉。本届会议论文录用率仅约15%,并且WSDM历来注…

ltp︱基于ltp的无监督信息抽取模块

ltp︱基于ltp的无监督信息抽取模块:https://zhuanlan.zhihu.com/p/44890664 无监督信息抽取较多都是使用哈工大的ltp作为底层框架。那么基于ltp其实有了非常多的小伙伴进行了尝试,笔者私自将其归纳为:事件抽取(三元组…

Eureka 简介和使用

Eureka 服务注册与发现服务注册与发现Eureka与Zookeeper的比较ZooKeeper保证CPEureka保证APEureka是什么?Eureka原理SpringBoot、Spring Cloud 和 Eureka 版本选择Eureka单机搭建搭建Eureka服务端搭建Eureka客户端的服务提供者搭建Eureka客户端的服务消费者Eureka集…