99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

Android內核開發:源碼的版本與分支詳解

我想很多初學者或許跟我一樣,看完Android×××相關的文章以后,就開始興致勃勃地去下載Android源碼了,但是下載完了源碼后,有沒有像我一樣產生如下幾個困惑呢?

創新互聯始終堅持【策劃先行,效果至上】的經營理念,通過多達十多年累計超上千家客戶的網站建設總結了一套系統有效的全網整合營銷推廣解決方案,現已廣泛運用于各行各業的客戶,其中包括:成都玻璃貼膜等企業,備受客戶贊賞。

(1) Android版本有哪些分支可用?每個分支的TAG是什么?

(2) Android×××完了怎么沒有看到Linux內核代碼?Android源碼對應Linux內核是否可以從kernel.org官網去下載?Android對標準的Linux內核做了哪些修改?

(3) Android源碼分支與Linux版本分支的對應關系是什么樣的?高版本的Android源碼能否使用低版本的Linux內核?或者低版本Android源碼能否使用高版本的Linux內核?

(4) 開發板廠商提供的Android源碼與AOSP官網下載的Android源碼是什么關系呢?

作為我的《Android內核開發》系列文章的第三篇,本文主要來解答一下上面提到的幾個問題。

1.  Android版本有哪些分支可用?每個分支的TAG是什么?

Android官網詳細地介紹了當前Android的各個版本名稱、Version、對應的API Level、Branch TAG、以及Supported devices,該鏈接地址如下:

http://source.android.com/source/build-numbers.html

由于官網被墻,這里我也給出了一份保存下來的離線html文檔,你可以下載下來用瀏覽器打開查看,地址如下:

https://github.com/Jhuster/AOSP/tree/master/documents

當然,想查看當前可用的Android源碼分支和版本,也可以在下載好的Android源碼根目錄下執行如下命令:

$ git --git-dir .repo/manifests/.git/ branch -a

或者

$ cd .repo/manifests
$ git branch -a | cut -d / -f 3

得到的結果示例如下(只截取了部分):

Android內核開發:源碼的版本與分支詳解

那么,如果你想切換到其他Android分支,只需要重新執行 repo init 和 repo sync 即可,示例如下:

$ repo init -b android-4.2.2_r1 
$ repo sync

2.  Android源碼與Linux內核代碼的關系?

文章開頭提到的第二個問題主要涉及到Android源碼與Linux內核代碼的關系,我們首先要了解一個重要的概念:

Android并沒有使用標準的Linux內核,而是做了很多的修改。

Android對標準的Linux內核代碼做了大量的剪裁和優化,并且添加了許多特有的代碼,主要包括:自定義UI系統,采用Bionic Libc庫代替glibc庫,添加Gold-Fish平臺,編寫專有的驅動程序,如Binder、Logger、PowerManager等等。

由于版權分歧等原因,這些修改并沒有merge到Linux主分支中去,因此,我們不能直接從Linux Kernel的官網(kernel.org)去下載適用于Android源碼的Linux內核代碼,而是要到Google官網提供的kernel網址去下載經過修改后的Linux內核代碼。

Google提供了多個版本的Linux Kernel,分別對應不同的設備或者廠商版本,你可以通過 git clone 命令來完成下載,如下所示:

Android內核開發:源碼的版本與分支詳解   

如果你只是使用Android模擬器來跑Android內核,那么就可以選擇goldfish版本作為你的Linux Kernel,如果你手頭有上述內核支持的設備,那么,你就下載對應的kernel即可。

那么,如果你手頭的設備或者開發板不在上述支持的列表中怎么辦呢?

放心,一般而言,Android開發板的廠商會在上述Linux Kernel的基礎上針對自己的開發板修改適配出一套可用的Linux Kernel的,你只需要到廠商的官網或者論壇查找對應的代碼即可。對于自己設計開發的板子,則需要下載相近的kernel代碼(如CPU型號相同),然后針對性的修改和移植即可。

3.  Android分支與Linux分支的關系

Android版本迭代更新的過程中,Linux Kernel也在不斷的迭代更新,因此,往往新的Android版本會使用較新的Linux內核分支,具體的分支對應關系我在Google官網上沒有找到,但是在維基百科和stackoverflow上找到了一份表格,如下所示:

Android內核開發:源碼的版本與分支詳解    

維基百科講的更加詳細,具體介紹了每一個Android分支到底有哪些修改,地址如下:

http://en.wikipedia.org/wiki/Android_version_history

一般情況下,不同的Android分支最好能使用對應的Linux內核分支版本,這樣才能保證系統的正常編譯通過和運行無誤,但是,也可以詳細了解某個Android版本對應的Linux內核到底做了哪些修改,并且把這些修改移植到其他版本的Linux內核上,也是可以實現低版本的Android運行在高版本的Linux內核上的,當然,反過來難度比較大,因為一般高版本的Android內核會用到高版本的Linux內核特性,移植起來會麻煩很多。

4.  廠商提供的Android版本與AOSP的關系

很多廠商會提供專門的針對該開發板的Android×××地址,那么,我們是否可以直接使用從AOSP官網上下載的Android源碼呢?

廠商一般會對官網的Android源碼進行修改,但是修改的部分一般會打個patch包,因此,你只需要下載廠商提供的patch包,并且將手頭的官網上下載的Android源碼切換到對應的分支,打上patch補丁即可。

5.  小結

關于Android源碼的版本與分支就介紹到這里了,有任何疑問歡迎留言或者來信lujun.hust@gmail.com交流,也歡迎關注我的新浪微博 @盧_俊 獲取最新的文章和資訊。

網頁名稱:Android內核開發:源碼的版本與分支詳解
文章網址:http://www.yijiale78.com/article10/pcpjdo.html

成都網站建設公司_創新互聯,為您提供Google品牌網站建設響應式網站App設計外貿網站建設做網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設