Android核心開發 原始碼的版本與分支詳解

2021-07-07 07:48:34 字數 1698 閱讀 1698

(1) android版本有哪些分支可用?每個分支的tag是什麼?

(3) android原始碼分支與linux版本分支的對應關係是什麼樣的?高版本的android原始碼能否使用低版本的linux核心?或者低版本android原始碼能否使用高版本的linux核心?

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

1.  android版本有哪些分支可用?每個分支的tag是什麼?

android官網詳細地介紹了當前android的各個版本名稱、version、對應的api level、branch tag、以及supported devices,該鏈結位址如下:

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

或者$ cd .repo/manifests

$ git branch -a | cut -d / -f 3

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

那麼,如果你想切換到其他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等等。

那麼,如果你手頭的裝置或者開發板不在上述支援的列表中怎麼辦呢?

3.  android分支與linux分支的關係

android版本迭代更新的過程中,linux kernel也在不斷的迭代更新,因此,往往新的android版本會使用較新的linux核心分支,具體的分支對應關係我在google官網上沒有找到,但是在維基百科和stackoverflow上找到了乙份**,如下所示:

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

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

4.  廠商提供的android版本與aosp的關係

本文出自 「

對影成三人

」 部落格,請務必保留此出處

Android核心開發 原始碼的版本與分支詳解

1 android版本有哪些分支可用?每個分支的tag是什麼?3 android原始碼分支與linux版本分支的對應關係是什麼樣的?高版本的android原始碼能否使用低版本的linux核心?或者低版本android原始碼能否使用高版本的linux核心?作為我的 android核心開發 系列文章的第...

Android開發 原始碼資源彙總

全網最全的android遊戲原始碼彙總 androidui設計之高仿系列 全網最全的android原始碼彙總 幾百個android原始碼 不斷更新中 contentprovider專題 android多執行緒開發專題 github開源專案總結 匯集的幾十個android原始碼 android開源專案...

Linux驅動開發原始碼分析

目錄 一 前言 二 驅動開發步驟分析 1驅動模組都有兩個函式 2實現初始化函式和退出函式 3初始化函式分析 3.1通過函式register chrdev 註冊如下結構體 3.2通過裝置類函式class register 註冊 3.3呼叫spi register driver 4退出函式分析登出spi...