Android核心開發 理解和掌握repo工具

2021-09-03 10:30:25 字數 1689 閱讀 8337

由於android原始碼是用repo工具來管理的,因此,搞android核心開發,首先要搞清楚repo是什麼東西,它該怎麼使用?作為《android核心開發》系列文章的第二篇,我們首先談談對repo工具的理解和使用。

1. repo是什麼?

repo是一種**版本管理工具,它是由一系列的python指令碼組成,封裝了一系列的git命令,用來統一管理多個git倉庫。

2. 為什麼要用repo?

因為android原始碼引用了很多開源專案,每乙個子專案都是乙個git倉庫,每個git倉庫都有很多分支版本,為了方便統一管理各個子專案的git倉庫,需要乙個上層工具批量進行處理,因此repo誕生。

repo也會建立乙個git倉庫,用來記錄當前android版本下各個子專案的git倉庫分別處於哪乙個分支,這個倉庫通常叫做:manifest倉庫。

3. 怎麼安裝repo?

curl  >  ./repo

$ git clone git:

$ git clone git:  

$ cp git-repo/repo  ./repo

或者修改手頭已有的被牆的repo檔案:

repo_url = 'git:'

repo_url = 'git:' 

repo_rev = 'stable'

$ repo init -u

$ repo init -u git:

$ repo init -u git:

初始化完畢後,你會在本地的.repo資料夾中看到manifest倉庫的內容,這個資料夾中最重要的檔案是manifest.xml(有的倉庫用的是default.xml,然後指向具體的xml),它就是上面說到的檔案清單。

$ repo init -u git: -b android-5.0.2_r1 

$ repo init -u git: -b android-5.0.2_r1

5. manifest.xml檔案清單的組成

上面提到了repo init需要初始化乙個manifest倉庫,倉庫中含有乙個很重要的manifest.xml檔案清單,其實這個manifest.xml並不複雜的,它就是用xml檔案的格式記錄了本專案依賴的各個git倉庫的名稱、位址,以及分支等資訊。常用的元素如下所示:

(1) manifest 最頂層的xml元素

(2) remote  設定遠端git伺服器的屬性,如名稱、根url位址等

(3) project 需要clone的git倉庫,path表示本機路徑,name表示遠端版本庫的相對路徑

(4) copyfile 執行拷貝操作,把url/$src位址的檔案拷貝到./$dest

7. 常用repo命令

這一塊網上文章很多,我就不詳細講解了,只列出常用命令。

(1) repo init   // 初始化repo倉庫

(3) repo start  // 建立分支

(4) repo checkout //切換分支

(5) repo branches //檢視分支

(6) repo status   //檢視檔案狀態

8. 小結

Android核心開發 理解和掌握repo工具

由於android原始碼是用repo工具來管理的,因此,搞android核心開發,首先要搞清楚repo是什麼東西,它該怎麼使用?作為 android核心開發 系列文章的第二篇,我們首先談談對repo工具的理解和使用。1.repo是什麼?repo是一種 版本管理工具,它是由一系列的python指令碼組...

Android核心開發 開發板選購

1.是否需要購買android開發板?這個問題取決於你的學習目標是什麼,簡單來說,學習android原始碼的人分為兩種 一種是做android應用層開發的,想通過學習android原始碼來深入了解android底層是怎麼工作的 另一種則是做android底層開發的,比如做android rom的,做...

Android核心和驅動篇 Android核心介紹

一般來說,我們會基於乙個平台標準核心配置選項來配置android核心,你可以根據具體的硬體平台來選擇android核心的配置選項,可以參考下面的android核心配置列表 一般需要支援的核心選項 android paranoid network ashmem config fb mode helpe...