Android源碼下載都是老生常談了轧抗,這個純碎是紀(jì)錄一下。
下載repo工具
repo其實就是一個能夠下載多個git倉庫的工具啦焦履,是python寫的一個腳本贸典。為什么不直接用git呢视卢?因為Android源碼是由很多個倉庫組成的,你不可能一個個去下吧廊驼?所以就誕生了repo工具据过,主要是解釋一個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文件的,那這個xml文件在哪里呢饥漫?我們把他下載下來。
下載路徑就是這個
https://android.googlesource.com/platform/manifest/
喲罗标,不就是一個git倉庫嗎庸队? 哈哈,其實這個xml也是在一個git倉庫里面闯割。
你可以使用標(biāo)準(zhǔn)的git命令下載
git clone https://android.googlesource.com/platform/manifest
當(dāng)然repo工具也可以下載這個倉庫,-u是指定下載路徑彻消,-b是指定分支,下面命令指定了android-6.0.1_r1分支。
repo init -u https://android.googlesource.com/platform/manifest -b android-6.0.1_r1
那這個倉庫有些啥呀宙拉?宾尚,看看下圖,其實就只有一個xml文件,囧煌贴。
看看xml文件都寫了些啥玩意,可以看到里面有很多project御板,每個project就是一個倉庫。repo會下載這些倉庫牛郑。而倉庫的分支就是由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" />
.....
但由于國內(nèi)google被墻原因淹朋,一般都下載不了~~
所以笙各,只能找國內(nèi)的鏡像下載,清華有個鏡像础芍,真良心杈抢。
但我這邊執(zhí)行這個,就因為網(wǎng)絡(luò)原因停了仑性。
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-6.0.1_r1
原來是下載xml時惶楼,還會去下載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 可以下載一個xml文件和部分repo輔助工具,xml里面紀(jì)錄著要下載的倉庫和分支慨灭。
3.repo sync 完成下載朦乏。