文檔說明:
該文檔由網絡上的一篇文章實踐+整理而來的。原文地址爲:http://hi.baidu.com/j_key/item/170505ad9efd0037030a4d5d
情況說明:
其實就是google服務器有時候找不到.我們從另外一個服務上下載代碼而已。
android整個工程是有很多個子工程組成的。代碼放在Git服務器上。下載源碼google 爲了方便大家寫了一個Python腳本叫做 repo。
本來我們按照google官方網站提供的下載說明就可以下載了,但是可惜的在天國比較神奇,所以我們更多時候總是鏈接不到這個網址。鏈接不到google的源碼服務器怎麼辦?試想如果把android源碼全部copy到我們這個國度可以訪問到的地址上就可以了。所以就有以下辦法:
- 別人下載的code 傳到了國內的網盤或者服務器上
- 有人或者公司將android整個項目的代碼 鏡像了一份。提供和google類似的下載方式,只是地址需要做一下改變。(我們就說這個,其實就是換地址而已。)
所以下載android源碼就分下面幾步:
一、配置下載環境
下載android 源碼需要一下環境:linux、curl、python、git-core
這裏我們在home路徑下建立兩個目錄
android_souce_code:這個目錄用來存放android源代碼
$cd ~
$mkdir android_souce_code
bin:這個目錄放在repo工具
$mkdir bin
將~/bin路徑加入環境命令
$ PATH=~/bin:$PATH
linux:
推薦使用Ubuntu 因爲代碼在編譯的時候,android官方推薦使用 Ubuntu 的。如果在windows下你 可以使用cygwin工具,cygwin的安裝和使用比較簡單。
curl和git的安裝
curl:用來獲取repo腳本的
git-core:repo其實可以說是git的批處理
Ubuntu 使用命令安裝:
$sudo apt-get install git-core curl
二、獲取repo腳本工具,設置環境變量
說明:其實curl工具的目的就是將repo下載下來。那麼你也可以從網絡直接下載,不過地址要找安全的。你可以直接訪問https://dl-ssl.google.com/dl/googlesource/git-repo/repo下載repo。下載到~/bin目錄下。
不過使用curl獲取repo工具更安全
命令:
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
下載repo的過程中你可能會遇到如下悲劇:
網上或者很多書籍上都是這樣寫的:
curl http://android.git.kernel.org/repo > ~/bin/repo
結果得到的repo不能用,什麼301重定向的,唉!悲催啊!後來在csdn上發了個貼子,大牛給解決啦!
http://code.google.com/p/git-repo/downloads/detail?name=repo-1.12 這個鏈接提供下載repo!
也可以通過下面命令得到:
curl http://git-repo.googlecode.com/files/repo-1.12 > ~/bin/repo
修改執行權限
$chmod a+x ~/bin/repo
三、初始化repo工具獲取並設置源代碼各個子項目的下載信息
編輯repo工具,修改~/bin/repo文件將第五行
REPO_URL='https://code.google.com/p/git-repo/'
改爲
REPO_URL='http://code.google.com/p/git-repo/'
進入到android_souce_code目錄下
cd android_souce_code
修改後執行(這條命令下載的是 android-2.3.4的源代碼):
$~/bin/repo init -u git://Android.git.linaro.org/platform/manifest.git -b android-2.3.4_r1
這裏-b 是用來定義你需要下載的android代碼的版本的 如果直接執行
$~/bin/repo init -u git://Android.git.linaro.org/platform/manifest.git
下載的是最新的android souce code 。
如果你需要下載android 2.2的源代碼則輸入命令:
$~/bin/repo init -u git://Android.git.linaro.org/platform/manifest.git -b froyo
這個命令執行後大概需要一分鐘時間執行。
如果沒有修改,你可能會再次悲劇:
這一步又是容易出錯啊,哥就死在這裏很久啊!很多書籍或網站上都是這樣命令:
~/bin/repo init -u git://android.git.kernel.org/platform/manifest.git
執行以後,等n久,結果出現讓你喜出望外的結果啊
error:Failed connect to code.google.com:443; Operation now in progress while accessing https://code.google.com/p/git-repo//info/refs
四、修改下載配置文件
找到android_souce_code目錄中的.repo下面的manifest.xml文件,這是個隱藏文件 ls -a才能看到
cd .repo
修改manifest.xml文件
將fetch="git://Android.git.kernel.org/"
改爲
fetch="git://Android.git.linaro.org/"
五、執行命令、耐心等待
執行: $repo sync
這個過程比較長大概需要幾個小時。