第2章 Android源碼下載及編譯

來源:互聯網
上載者:User

標籤: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

 
  1. 或者也可以指定需要同步的某個項目:

$ 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源碼下載及編譯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.