標籤:android style http io os 使用 ar for 檔案
在分析Android源碼前,首先要學會如何下載和編譯系統。本章將向讀者完整的呈現Android的源碼的下載流程、常見問題以及處理方法,並從開發人員的角度來理解如何正確地編譯出Android系統(包括原生態系統和定製裝置)。
後面,我們將在此基礎上深入到編譯指令碼的分析中。以“庖丁解牛”的精神來還原一個龐大而嚴謹的Android編譯系統。
2.1 Android源碼下載指南2.1.1 基於Repo和git的版本管理
Git是一種分布式的版本管理系統,最初被設計用於linux核心的版本控制。本書工具篇中對git的使用方法、原理架構有比較詳細的剖析,建議讀者先到相關章節閱讀瞭解。
Git的功能非常強大,速度也很快,是當前很多開源項目的首選工具。不過Git也存在一定的缺點,如相對圖形介面化的工具沒那麼容易上手、需要的內部原理有一定的瞭解才能很好地運用、不支援斷點續傳等。
為此,Google提供一個專門用於下載Android系統源碼的Python指令碼,即Repo。
在Repo環境下,版本修改和提交的流程是:
- 用Repo建立新的分支,通常情況下不建議在master分支上操作;
- 開發人員根據需求對專案檔進行修改;
- 利用git add命令將所作修改進行暫存;
- 利用git commit命令將修改提交到倉庫;
- 利用repo upload命令將修改提交到代碼伺服器上。
由此可見,Repo與我們在工具篇中討論的Git流程有些許不同,差異主要體現在與遠程服務倉庫的互動上;而本地的開發仍然是以原生的Git命令為主。下面我們講解Repo的一些常用命令,讀者也可以拿他和Git進行仔細比較。
1. 同步
同步操作可以讓本地代碼與遠程倉庫保持一致,它有兩種形式。
如果是同步當前所有的項目:
$ repo sync
或者也可以指定需要同步的某個項目:
$ repo sync [PROJECT1] [PROJECT2]...
2. 分支操作
建立一個分支所需的命令:
$ repo start
也可以查看當前有多少分支:
$ repo branches
或者:
$ git branch
以及切換到指定分支:
$ git checkout
3. 查詢操作
查詢目前狀態
$ repo status
查詢未提交的修改:
$ repo diff
4. 版本管理操作
暫存檔案:
$ git add
提交檔案:
$ git commit
如果是提交修改的伺服器上,首先需要同步一下:
$ repo sync
然後執行上傳命令:
$ repo upload
2.1.2 Android源碼下載流程
瞭解了Repo的常規操作後,這一小節接著分析安卓的源碼下載的全過程。這既是剖析Android系統原理的前提,也是讓很多新手感到困惑的地方,源碼下載可以做為初學者瞭解Android系統的“Hello World”。
要特別提醒大家的是,以下所有步驟,都是在Ubuntu作業系統中完成的(“#”號後面表示注釋內容)。
1. 下載Repo
cd ~ #進入home目錄
> mkdir bin #建立bin目錄用於存放Repo指令碼
PATH= /bin:PATH #將 bin 目錄加入系統路徑中
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/binrepo #curl 是一個基於命令列的檔案傳輸工具,它支援嗯嗯。非常多的協議。這裡我們利用 curl 來將 repo 儲存到相應目錄下
> chmod a+x ~/bin/repo
註:網上有很多開發人員(中國大陸地區)反映上面的地址經常無法成功訪問。如果讀者也有類似困擾,可以試試下面這個:
$ curl https://android.googlesource.com/repo > ~/binrepo
2. Repo配置
在開始下載源碼之前,需要對Repo進行必要的配置。
如下所示:
>
來自為知筆記(Wiz)
第2章 Android源碼下載及編譯