1925

作为一个牛(zhuang)掰(bi)的开发者,阅读源码是一种良好的习惯,很久之前就想总结下阅读Android源码的一些心得,奈何一直没有时间,恰逢清明佳节,总算有空把这些东西捋一捋了,既然说到怎么阅读Android源码那就得先搞一份Android源码对吧,不过奈何国内的贞子原因,墙内的小伙伴想搞到一份完整的Android源码真是挺不容易的,还记得Android刚出不久那会,国内根本没那么多资源,所有东西都得爬墙,网速又慢,想搞一份源码真心不容易……不过现在好了,国内有很多完美的镜像源给我们用,一般不再用去爬墙,本文就是通过清华大学开源软件镜像站的AOSP镜像源来同步Android源码,这里爱哥要先介绍今天的两个主角,一个就是刚才提到的AOSP,另一个则是管理源码的Repo工具。AOSP全称是Android Open-Source Project,如果对Android系统源码没啥了解的新手来说,AOSP经常会与Android SDK混淆,这里在下简单滴做个比喻,如果把AOSP比做一棵大树,那么我们平时开发所用到的Android SDK充其量只是这棵大树的一根树枝而已,AOSP包含了几乎整个Android的源码,而SDK仅仅是为我们开发所提供相关的API而已,下图所列出的就是整个AOSP的目录结构以及我们所使用的SDK所处的位置,你可以初步感受下:

因为Android是一款开源的操作系统,所以狗哥创建了AOSP这个项目,并通过Git来管理所有的源代码,但是如上爱哥所述,整个Android系统的源代码是相当庞大复杂的,用Git虽然能Hold得住但是可能一些地方就显得不方便了,对此狗哥又研发了一个叫做Repo的命令行工具,将一些Git命令进行二次封装更便于操作成百上千的代码仓库,因此即便我们可以通过Git来Clone系统的源代码,但是过程不仅复杂还很繁琐,倒不如Repo来的直接便捷,以前国内的开源镜像站都没有Repo的镜像源,因为它其实很小,但是需要翻出去Fetch,后来大概也就是最近吧,清华大学镜像源增加了Repo的国内镜像,让一切都变得简单许多,这里爱哥先亮一下操作系统环境,这里我用的Mac Pro Book:

配置还凑合,虽然同步源码没多大的系统要求,不过这里强烈建议大家用OS或Linux的操作系统进行,避免后期操作来说麻烦。

这里我们先把Repo搞下来,先选个风水好的目录,Shell cd进去目录后执行下面的命令:

上面就是从清华的镜像curl到Repo,如果不出意外,两三秒就OK了,这时在你目录下应该就有repo了:

然后我们修改下repo的权限:

接下来就是配置环境变量了,因操作系统而异,这里爱哥是OS的系统用的是zsh,我就在.zshrc里加了下repo的路径:

在我的zsh配置文件.zshrc里加入了下面的alias

这样我们直接在Shell里键入repo就能执行了……接下来我们再找个风水好点的目录用来存放同步下来的源代码,这里爱哥善意地提醒下,Android源码很大,如果你只是看看,那么最好保证有不少于80G的空间,网上有些说30G的都不知道多少年前的老文了害人不浅,如果你要编译,最好不低于150G,如果和我一样用的OS系统,最好确保你的硬盘文件系统为“区分大小写、日志式”:

这里爱哥直接用的一个1T的移动硬盘来放源码,Shell 里cd打开这个硬盘目录通过下面的命令初始化Repo仓库:

如果出现无法连接到gerrit.googlesource.com的错误,那是因为Repo默认会通过狗哥的服务器获取相关信息,我们可以通过下述export将Repo的查找源换到国内的镜像:

最后如果没什么意外,我们就可以直接执行sync命令开始同步代码了:

这个过程会持续很久,如果你是第一次同步那么在网好的情况下也得花几个小时,如果你网不好,中途一旦出了什么幺蛾子导致sync中断,那么不好意思你得从头再来……一个更好的方法是直接下载清华的AOSP压缩包,这个压缩包里就是上一次清华同步狗哥得到的源码,下载下来直接解压后进入AOSP目录,这里目录里只有一个隐藏的.repo目录,不需要你额外做些什么,直接在AOSP目录下执行repo sync即可开始同步,这样的好处是你需要同步的代码要少很多,省时省心。

转载原创文章请注明,转载自: AigeStudio » Mac环境下同步Android源码

4条评论

Loading...

发表评论

电子邮件地址不会被公开。 必填项已用*标注