前言
最近想要编译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环境,去官网下载安装即可:
- 这里拿3.7.2举例,进入官方下载地址:https://www.python.org/downloads/release/python-372/
- 下载pkg文件后直接安装即可
我用python3.7.2是因为公司环境的原因,你也可以根据自己需要选择其它版本
- 安装完python3之后,你会发执行
python -V
命令无效,而python3 -V
则正常运行👇: - 但只有python3正常运行时不符合条件的,因为等下用到的下载源码的工具它就只识别
python
这个命令。 - 要解决这个问题很简单,我们只需要新建一个软链接
python
并让它指向python3
的路径即可👇🏻: - 先执行
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
- 后续步骤参考(已经下载了就不用再下载了)👇:
初始化repo
在Android Studio的项目目录下新建一个用于存放源码的目录,并进入:
执行以下命令前,默认你的git已经配置完善了
以下操作默认在上面创建的源码目录中进行
执行命令(会出错):
repo init -u https://android.googlesource.com/platform/manifest
执行上述命令后,你会发现出错:
修复方法参考StackOverFlow,把如下代码加到刚刚下载的repo文件中:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
再次在之前准备好的源码目录里面运行repo init -u https://android.googlesource.com/platform/manifest
,耐心等待下载即可:
- 没有报错那就是ok了
接下来我们就可以下载源码了。
下载源码
直接在初始化完的目录下执行repo sync -c -j8
即可,之后就是一波漫长的下载:
等下载完,没有报错,就大功告成了,之后就是要编译源码,这个比较复杂,留到下次再说吧。
如果下载过程中出现意外,需要重来,那么请删除当前目录的.repo
文件,然后从初始化步骤重新开始。
如果长期处于0%或停在n%,那么请检查一下你的网络是否在被消耗,我的速度基本维持在3~4mb/s