前言

最近想要编译Android的某个模块做工具,一开始按照网上的破烂教程怎么弄都弄不好,搜出来的文章都是抄来抄去的。最后比起看那些过期的文章,我还是选择按照官方文档的操作来,虽然中间依旧有坑,不过都是可以解决的。

这篇博客就仅仅是介绍Mac上下载Android源码。

参考链接:https://source.android.com/setup/build/downloading
完全跟着参考链接操作可能会出现一些奇怪的错误
此外我还尝试过清华的镜像,但速度依旧不仅人意,建议提前开启VPN



环境准备

我拆成很多步,便于你每一步做检查:

  • 确保存放Android源码的目录为区分大小写宗卷(重要)
  • 安装git(这个略,比较简单,自己准备吧)
  • 安装python
  • 安装repo
  • 初始化repo
  • 下载源码


确保存放Android源码的目录为区分大小写宗卷(重要)

因为我自己电脑本身就是区分大小写的,有需要的请看教程,最好将磁盘控件设置到150G+:
https://zhuanlan.zhihu.com/p/35908178

之所以要设置这个,是因为之后编译源码需要区分大小写的环境。



安装python

  • 首先确保你的电脑有python环境,并且python -V命令是能运行成功的。
  • 如果你没有python环境,去官网下载安装即可:

我用python3.7.2是因为公司环境的原因,你也可以根据自己需要选择其它版本



  • 安装完python3之后,你会发执行python -V命令无效,而python3 -V则正常运行👇:
  • image.png
  • 但只有python3正常运行时不符合条件的,因为等下用到的下载源码的工具它就只识别python这个命令。
  • 要解决这个问题很简单,我们只需要新建一个软链接python并让它指向python3的路径即可👇🏻:
  • image.png
  • 先执行which python3找出命令环境目录
  • 然后执行sudo ln -s /usr/local/bin/python3 /usr/local/bin/python在同目录下创建软链接
  • python -V运行成功

到这里为止python的环境就准备好了,接下来我们需要安装官方的repo工具。



安装repo

  • 下载repo,直接扔到刚才python环境的目录即可
  • 下载命令:curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/local/bin/repo
  • 后续步骤参考(已经下载了就不用再下载了)👇:
  • image.png


初始化repo

在Android Studio的项目目录下新建一个用于存放源码的目录,并进入:
image.png

执行以下命令前,默认你的git已经配置完善了
以下操作默认在上面创建的源码目录中进行

执行命令(会出错):
repo init -u https://android.googlesource.com/platform/manifest

执行上述命令后,你会发现出错:
image.png

修复方法参考StackOverFlow,把如下代码加到刚刚下载的repo文件中:

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

image.png



再次在之前准备好的源码目录里面运行repo init -u https://android.googlesource.com/platform/manifest,耐心等待下载即可:
image.png

  • 没有报错那就是ok了

接下来我们就可以下载源码了。



下载源码

直接在初始化完的目录下执行repo sync -c -j8即可,之后就是一波漫长的下载:
image.png

等下载完,没有报错,就大功告成了,之后就是要编译源码,这个比较复杂,留到下次再说吧。
image.png

如果下载过程中出现意外,需要重来,那么请删除当前目录的.repo文件,然后从初始化步骤重新开始。

如果长期处于0%或停在n%,那么请检查一下你的网络是否在被消耗,我的速度基本维持在3~4mb/s

Q.E.D.