由於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...