
Android源碼下載都是老生常談了,這個(gè)純碎是紀(jì)錄一下。
下載repo工具
repo其實(shí)就是一個(gè)能夠下載多個(gè)git倉庫的工具啦,是python寫的一個(gè)腳本。為什么不直接用git呢?因?yàn)锳ndroid源碼是由很多個(gè)倉庫組成的,你不可能一個(gè)個(gè)去下吧?所以就誕生了repo工具,主要是解釋一個(gè)xml文件,去下載倉庫到特定目錄。
mkdir ~/bin //放置repo的目錄
PATH=~/bin:$PATH //將路徑設(shè)置到環(huán)境變量中去
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo //下載repo工具
chmod a+x ~/bin/repo //改變工具權(quán)限,所有人都可以執(zhí)行
repo解釋xml文件
上面說到repo主要是用來解釋xml文件的,那這個(gè)xml文件在哪里呢?我們把他下載下來。
下載路徑就是這個(gè)
https://android.googlesource.com/platform/manifest/
喲,不就是一個(gè)git倉庫嗎? 哈哈,其實(shí)這個(gè)xml也是在一個(gè)git倉庫里面。
你可以使用標(biāo)準(zhǔn)的git命令下載
git clone https://android.googlesource.com/platform/manifest
當(dāng)然repo工具也可以下載這個(gè)倉庫,-u是指定下載路徑,-b是指定分支,下面命令指定了android-6.0.1_r1分支。
repo init -u https://android.googlesource.com/platform/manifest -b android-6.0.1_r1
那這個(gè)倉庫有些啥呀?,看看下圖,其實(shí)就只有一個(gè)xml文件,囧。

看看xml文件都寫了些啥玩意,可以看到里面有很多project,每個(gè)project就是一個(gè)倉庫。repo會(huì)下載這些倉庫。而倉庫的分支就是由xml中的revision指定啦!下面的代碼就是下載android-7.1.2_r11分支的代碼啦。
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="aosp"
fetch=".."
review="https://android-review.googlesource.com/" />
<default revision="refs/tags/android-7.1.2_r11"
remote="aosp"
sync-j="4" />
<project path="build" name="platform/build" groups="pdk" >
<copyfile src="core/root.mk" dest="Makefile" />
</project>
<project path="build/blueprint" name="platform/build/blueprint" groups="pdk,tradefed" />
<project path="build/kati" name="platform/build/kati" groups="pdk,tradefed" />
.....
但由于國(guó)內(nèi)google被墻原因,一般都下載不了~~
所以,只能找國(guó)內(nèi)的鏡像下載,清華有個(gè)鏡像,真良心。
但我這邊執(zhí)行這個(gè),就因?yàn)榫W(wǎng)絡(luò)原因停了。
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-6.0.1_r1
原來是下載xml時(shí),還會(huì)去下載repo的一些python腳本。下面這些

但repo的腳本地址是放在google服務(wù)器的。所以要修改repo的服務(wù)器地址。編輯 ~/bin/repo文件,把 REPO_URL 一行替換成下面的:
REPO_URL = 'https://gerrit-googlesource.lug.ustc.edu.cn/git-repo'
參考:http://m.blog.csdn.net/article/details?id=51348647
這樣我們就能跑去清華那里下載羅。
一些git倉庫地址
google的都放在這里
https://android.googlesource.com

清華的放在這里,丑哭了~
http://mirrors.ustc.edu.cn/aosp/platform/

下載
最后repo sync 就可以下載了!
關(guān)于git下載
有兩種方式,效果是一樣的!
git clone git://github.com/wenfengtou/BedWatching
git clone https://github.com/wenfengtou/BedWatching.git
總結(jié)
1.下載repo工具
2.repo init 可以下載一個(gè)xml文件和部分repo輔助工具,xml里面紀(jì)錄著要下載的倉庫和分支。
3.repo sync 完成下載。