亚洲AVI,黑人巨茎大战欧美白妇,初高中生洗澡自慰高清网站,欧美日韩无砖专区一中文字

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

Android源代碼倉庫及其管理工具Repo分析詳解-創(chuàng)新互聯(lián)

軟件工程由于需要不斷迭代開發(fā),因此要對(duì)源代碼進(jìn)行版本管理。Android源代碼工程(AOSP)也不例外,它采用Git來進(jìn)行版本管理。AOSP作為一個(gè)大型開放源代碼工程,由許許多多子項(xiàng)目組成,因此不能簡單地用Git進(jìn)行管理,它在Git的基礎(chǔ)上建立了一套自己的代碼倉庫,并且使用工具Repo進(jìn)行管理。工欲善其事,必先利其器。本文就對(duì)AOSP代碼倉庫及其管理工具repo進(jìn)行分析,以便提高我們?nèi)粘i_發(fā)效率。

創(chuàng)新互聯(lián)公司長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為潢川企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站,潢川網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

《Android系統(tǒng)源代碼情景分析》——點(diǎn)擊下載

現(xiàn)代的代碼版本管理工具,SVN和Git是最流行的。SVN是一種集中式的代碼管理工具,需要有一個(gè)中心服務(wù)器,而Git是一種分布式的代碼管理工具。不需要一個(gè)中心服務(wù)器。不需要中心服務(wù)器意味著在沒有網(wǎng)絡(luò)的情況下,Git也能進(jìn)行版本管理。因此,單從這一點(diǎn)出發(fā),Git就比SVN要方便很多。當(dāng)然,Git和SVN相比,還有許多不同的理念設(shè)計(jì),但是總的來說,Git越來越受到大家的青睞,尤其是在開源社區(qū)。君不見,Linux是采用Git進(jìn)行版本管理,而越來越火的GitHub,提供也是Git代碼管理服務(wù)。本文不打算分析Git與SVN的區(qū)別,以及Git的使用方法,不過強(qiáng)烈建議大家先去了解Git,然后再看下面的內(nèi)容。這里推薦一本Git書籍《Pro Git》,它是GitHub的員工Scott Chacon撰寫的,對(duì)Git的使用及其原理都介紹得非常詳細(xì)和清晰。


前面提到,AOSP是由許許多項(xiàng)目組成的,例如,在Android 4.2中,就包含了329個(gè)項(xiàng)目,每一個(gè)項(xiàng)目都是一個(gè)獨(dú)立的Git倉庫。這意味著,如果我們要?jiǎng)?chuàng)建一個(gè)AOSP分支來做feature開發(fā),那么就需要到每一個(gè)子項(xiàng)目去創(chuàng)建對(duì)應(yīng)的分支。這顯然不能手動(dòng)地到每一個(gè)子項(xiàng)目里面去創(chuàng)建分支,必須要采用一種自動(dòng)化的方式來處理。這些自動(dòng)化處理工作就是由Repo工具來完成的。當(dāng)然,Repo工具所負(fù)責(zé)的自動(dòng)化工作不只是創(chuàng)建分支那么簡單,查看分支狀態(tài)、提交代碼、更新代碼等基礎(chǔ)Git操作它都可以完成。


Repo工具實(shí)際上是由一系列的Python腳本組成的,這些Python腳本通過調(diào)用Git命令來完成自己的功能。比較有意思的是,組成Repo工具的那些Python腳本本身也是一個(gè)Git倉庫。這個(gè)Git倉庫在AOSP里面就稱為Repo倉庫。我們每次執(zhí)行Repo命令的時(shí)候,Repo倉庫都會(huì)對(duì)自己進(jìn)行一次更新。


上面我們討論的是Repo倉庫,但是實(shí)際上我們執(zhí)行Repo命令想操作的是AOSP。這就要求Repo命令要知道AOSP都包含有哪些子項(xiàng)目,并且要知道這些子項(xiàng)目的名稱、倉庫地址是什么。換句話說,就是Repo命令要知道AOSP所有子項(xiàng)目的Git倉庫元信息。我們知道,AOSP也是不斷地迭代法變化的,例如,它的每一個(gè)版本所包含的子項(xiàng)目可能都是不一樣的。這意味著需要通過另外一個(gè)Git倉庫來管理AOSP所有的子項(xiàng)目的Git倉庫元信息。這個(gè)Git倉庫在AOSP里面就稱為Manifest倉庫。


到目前為止,我們提到了三種類型的Git倉庫,分別是Repo倉庫、Manifest倉庫和AOSP子項(xiàng)目倉庫。Repo倉庫通過Manifest倉庫可以獲得所有AOSP子項(xiàng)目倉庫的元信息。有了這些元信息之后,我們就可以通過Repo倉庫里面的Python腳本來操作AOSP的子項(xiàng)目。那么,Repo倉庫和Manifest倉庫又是怎么來的呢?答案是通過一個(gè)獨(dú)立的Repo腳本來獲取,這個(gè)Repo腳本位于AOSP的一個(gè)官方網(wǎng)站上,我們可以通過HTTP協(xié)議來下載。


現(xiàn)在,我們就通過一個(gè)圖來來勾勒一下整個(gè)AOSP的Picture,它由Repo腳本、Repo倉庫、Manifest倉庫和AOSP子項(xiàng)目倉庫組成,如圖1所示:

接下來我們就看看上述腳本和倉庫是怎么來的。

1. Repo腳本


從官方網(wǎng)站可以知道,Repo腳本可以通過以下命令來獲?。?/p>

$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 
$ chmod a+x ~/bin/repo 

文章題目:Android源代碼倉庫及其管理工具Repo分析詳解-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://news.spvevtbd.cn/article/ceddds.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP