做Android有5、6年了,最近才明白要多学习、多积累、多总结、多记录,不积跬步无以至千里,不积小流无以成江海,只有始终走在前沿,才不会被淘汰
Android源码下载并不难,网上很多资料,如
AOSP网站
[AOSP镜像使用帮助]:https://lug.ustc.edu.cn/wiki/mirrors/help/aosp
[Android 镜像使用帮助]: https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
如上是我结合网上资料和实践找到的两个比较靠谱和正式的教程网站,本来使用AOSP网站中的步骤也是可以的,但目前如果无法翻墙的话无法访问相关链接,因此使用AOSP镜像网站进行源码下载
因为只是下载部分代码进行查看,所以这里采用与AOSP相似的方式进行源码下载,也即AOSP镜像网站中的初始同步方法2,其大致步骤如下
系统环境配置(这里本地使用ubuntu系统,已安装过git、python等,就不细述,后面操作过程中有报错未安装对应工具的可按报错信息进行安装)
-
可选科大的资源,也可使用清华的资源,下述在资源链接处也有或上清华资源,可先在浏览器打开网站看是否可访问,若两者都可访问可任选其一
https://gerrit-googlesource.proxy.ustclug.org/git-repo 或 https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
-
在~/bin目录下下载repo工具,并赋予可执行权限
curl https://storage.googleapis.com/git-repo-downloads/repo > repo ## 如果上述 URL 不可访问,可以用下面的:(本地操作时上面命令可获取repo文件) ## curl -sSL 'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo ## 或 ## curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo chmod +x repo
-
修改repo工具,将REPO_URL一行替换成如下(该步操作时因为在后面repo操作时提示无法连接,所以也可以先跳过该步,如果后面repo时无法连接在执行该步)
REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo' 或 REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
-
获取分支信息(一般可能需要下载某个版本的分支的代码,所以需要知道具体的有哪些分支,需要下载的分支名,缺省是master分支,也可不用该步骤)
创建个目录,然后使用如下命令git clone git://mirrors.ustc.edu.cn/aosp/platform/manifest 或 https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
该命令会下载个git仓,其会下载个manifest目录,manifest中有些文件,进入该目录,使用
git branch -a
即可查看有哪些分支,如:
如果要下对应版本的分支可以查看下面网站
代号、标记和 Build 号 | Android 开源项目 | Android Open Source Project (google.cn)
创建一个空的源码目录(代码最好放在一个独立的目录中,当然这步不是必需的)
-
初始化仓库,即使用repo init命令进行仓库的初始化配置(如下命令,如果这里报错显示无法连接,可以尝试操作第三步后再次操作)
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-10.0.0_r33 或 repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r39
下载代码(可使用
repo sync
命令来下载代码,当然,如果直接使用repo sync命令会下载全部代码,如果只下载部分仓可根据目录位置找到对应仓地址,然后将地址添加到repo sync
命令之后,即可下载部分仓)
如我这里想下载源码中development/samples/ApiDemos中的文件,即可使用repo manifest
命令获取代码包含的仓,
发现ApiDemos并没有独立一个仓,所以我只能下载整个development仓
repo sync
命令执行完后可看到对应仓的代码已下载下来了,当然repo sync
还有一些其他的操作参数如-f
、-j
等,这里就不详述了
9、下载源码命令优化
可根据需求修改下载命令,如在repo init后添加--depth=1和
--platform=auto等,repo sync
后添加--current-branch
选项等