關(guān)于Android源碼下載的問題,糾結(jié)了很久,遇到很多問題,現(xiàn)在終于解決了,小結(jié)一下。
1、Repo是什么?
? ? “repo只是google用Python腳本寫的調(diào)用git的一個(gè)腳本,主要是用來下載、管理Android項(xiàng)目的軟件倉庫。(也就是說,他是用來管理給git管理的一個(gè)個(gè)倉庫的)”引用來源
2、Repo獲取
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
3、Repo初始化倉庫
? ? 國內(nèi)采用清華鏡像
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
4、同步代碼
repo sync
下面說說遇到的問題
1、同步某個(gè)Project失敗,手動(dòng)同步了一下,查看輸出日志
$ 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)
? 奇葩的路徑找不到,手動(dòng)創(chuàng)建了該文件路徑,同步就成功了。
$ repo sync frameworks/compile/slang
Fetching project platform/frameworks/compile/slang
Fetching projects: 100% (1/1), done.
2、經(jīng)常遇到同步失敗,網(wǎng)絡(luò)錯(cuò)誤,需要采用自動(dòng)重試腳本
#!/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
? ? 這個(gè)腳本要命的是停止都停不下來,除非殺掉或成功。注意清華鏡像要求不要使用-j參數(shù),線程數(shù)目不能超過4(默認(rèn)是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