关于Android源码下载的问题,纠结了很久,遇到很多问题,现在终于解决了,小结一下。
1、Repo是什么?
“repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载、管理Android项目的软件仓库。(也就是说,他是用来管理给git管理的一个个仓库的)”引用来源
2、Repo获取
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
3、Repo初始化仓库
国内采用清华镜像
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
4、同步代码
repo sync
下面说说遇到的问题
1、同步某个Project失败,手动同步了一下,查看输出日志
$ repo sync frameworks/compile/slang
Fetching project platform/frameworks/compile/slang
Fetching projects: 100% (1/1), done.
error: unable to create file tests/P_str_escape/str\\escape.rs (No such file or directory)
奇葩的路径找不到,手动创建了该文件路径,同步就成功了。
$ repo sync frameworks/compile/slang
Fetching project platform/frameworks/compile/slang
Fetching projects: 100% (1/1), done.
2、经常遇到同步失败,网络错误,需要采用自动重试脚本
#!/bin/bash
echo ¨================start repo sync===============¨
repo sync -f -j4
while [ $? == 1 ]; do
echo ¨================sync failed, re-sync again=============¨
sleep 3
repo sync -f -j4
done
这个脚本要命的是停止都停不下来,除非杀掉或成功。注意清华镜像要求不要使用-j参数,线程数目不能超过4(默认是4)
参考文章:
1、http://blog.csdn.net/sunchaoenter/article/details/46342759
2、http://mirrors.tuna.tsinghua.edu.cn/help/#AOSP
3、http://blog.csdn.net/luoshengyang/article/details/18195205
网友评论