$sudo apt-get install git-core curl
說明:
curl是一個向服務器或從服務器傳輸數據的工具,它支持HTTP 、HTTPS、FTP 、 FTPS 、 SCP、SFTP、TFTP、DICT、TELNET、LDAP或FILE等協(xié)議。對于web開發(fā)人員來說,它對 HTTP POST的支持為我們提供了很大的幫助。
git是分布式的版本控制系統(tǒng),在這里負責把遠程版本庫的源代碼clone下來。
2. 安裝repo
命令:(是一個便于git管理的工具)
$mkdir bin
//下載repo腳本到本地bin文件夾下
$curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo>~/bin/repo
//設置本地repo的可執(zhí)行權限
$chmod a+x ~/bin/repo
//臨時把repo添加到環(huán)境變量中,方便后面執(zhí)行。
$export PATH=~/bin:$PATH
說明:
repo是一個基于git的版本庫管理工具,可以簡化android開發(fā)中使git的使用。在這里,使用repo和官方提供的android project列表自動批量下載android整個項目,免去了大量下載各個項目的手動工作量。
3.初始化repo客戶端(版本庫)
如果是想把Android當前主線上最新版本的所有的sourcecode拿下來,我們需要repo的幫助。
先建立一個目錄,進去以后用repo init命令即可,然后就可以用repo sync 抓去 android source code 。
命令:
//創(chuàng)建目錄android/android-source來存放下載的源碼 $mkdir android/android-source -p
//進入目錄 $cd android/android-source
//獲取項目列表并且初始化目錄 $repo init -u https://android.googlesource.com/platform/manifest
解釋:repo init -u URL 用以 在當前目錄下 安裝 repository ,會在當前目錄創(chuàng)建一個目錄 '.repo' -u 參數指定一個URL, 從這個URL 中取得repository 的 manifest (清單)文件。
獲取的manifest文件放在.repo目錄中。命名為manifest.xml。這個文件的內容其實就是所有被git管理的倉庫的列表!可以用 -m 參數來選擇獲取 repository 中的某一個特定的 manifest 文件,如果不具體指定,那么表示為 將要獲取 默認的 mainfest 文件 (default.xml)。
(有諸多供我們選擇的manifest文件,所有的manifest文件都放在目錄.repo/manifests中,該目錄本身亦被git所管理)
可以用 -b 參數 來 指定 某個manifest 的分支。注意 .repo/manifests是個被git管理的倉庫,這里放的是所有的manifest文件(*.xml),因為被git管
理,固然有分支,-b可以切換到你想要的分支然后再下載相關的xml文件,當然具體下載那個xml還要看-m參數了,所以如果你僅僅指定-b而沒有-m的話,就是下
載-b指定分支下的default.xml文件,如果不指定-b參數,那么會默認使用master分支
按照提示輸入 用戶名 和 郵箱
初始化完成后會顯示repo initialized in /home/http://www.cnblogs.com/xx,如下圖:
這樣就說明本地的版本庫已經初始化完畢,并且包含了當前最新的sourcecode。
注意:如果想拿 某個branch而不是主線上的代碼,我們需要用 -b 參數制定branch名字,如:
repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo-amlogic-mid
4.同步版本庫命令:
$repo sync
這樣 我們把整個android代碼樹做到同步到本地,
解釋:如果是第一次運行 repo sync , 則這個命令相當于 git clone ,會把 repository 中的所有內容都拷貝到本地。 如果不是第一次運行 repo sync , 則相當于 git remote update ; git rebase origin/branch .
repo sync 會更新 .repo 下面的文件。 如果在merge 的過程中出現(xiàn)沖突, 這需要手動運行 git rebase --continue
說白了,就是從服務器上下載最新的代碼。接下來就是漫長的等待,本人10M帶寬,依然下載了幾個小時。
同樣,我們可以用類似
repo sync project1 project2 …
這樣的命令來同步某幾個項目,如果是同步Android中的單個項目,只要在項目目錄下執(zhí)行簡單的git pull即可。
repo manifest -r -o xxx.xml #獲取 當前的源代碼的manifest,并保存為 xxx.xml
==============
5.小結
源碼下來就是一筆財富,堅持查看源代碼,分析其中的底層實現(xiàn)和框架模式,都絕對是極佳的學習經歷,一定大有益處。
聯(lián)系客服