阅读Android源码能够从系统框架层面更加深入理解底层实现,而且无疑是对代码阅读能力的提升锻炼。推荐国内AOSP源码网站在线阅读:Android源码在线阅读。
Google官方的Android 源码站点在国内都打不开,需要“科学上网”。
https://android.googlesource.com/
https://source.android.google.cn/
https://source.android.com/
官方渠道不能访问,只能通过镜像下载。以前在学校的时候就经常从校园网镜像网站下载开源软件、Linux系统的发行版。会定期会同步Google的AOSP(Android Open-Source Project)仓库。
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/
https://lug.ustc.edu.cn/wiki/mirrors/help/aosp
http://mirrors.ustc.edu.cn/aosp-monthly/
第一次同步数据量特别大,如果网络不稳定,中间失败就要从头再来了(下载到99%的时候重新下载,是非常奔溃的o(≧口≦)o)。
从上面镜像网站中找到AOSP的打包源码,当前最新的是2020年3月1号发布的源码仓,大小接近70G。
wget -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
建议使用下载工具进行下载,支持断点续传,电脑硬盘够就挂着慢慢下载吧!
下载完毕之后解压:
tar xf aosp-latest.tar
或者用360压缩解压,从大学时代一直用到现在最好用的压缩工具。
解压完,根目录并没有任何分支和代码。
# 进入解压得到的 AOSP 工程目录 cd AOSP # 这时 ls 什么也看不到,因为只有一个隐藏的 .repo 目录
打开git查看发现是裸仓库, 之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,不允许用户进行任何git操作。如果操作的话,只会得到下面的错误”This operation must be run in a work tree”。
那么如何将下载的70G代码提出来呢?用命令 repo sync 把代码checkout 出来。
repo sync # 正常同步一遍即可得到完整目录 # 或 repo sync -l 仅checkout代码
关于repo命令,因为不会经常使用,就不必多花时间去了解。
参考: Android SDK 在线更新镜像服务器资源
repo sync出错整理
repo使用过程中遇到的一些问题及解决办法
repo sync出错解决
repo git 同步超大的工程太慢的解决方法
Android系统源码下载