本文主要從 Android版本與對應的linux內核版本關係 和 Android系統架構 兩部分來討論。 1、Android版本與Linux內核的關係 (1)Android最初使用Linux2.6作為其內核,隨著Android與Linux內核的發展,不同版本的Android使用的linux內核版本差 ...
本文主要從 Android版本與對應的linux內核版本關係 和 Android系統架構 兩部分來討論。
1、Android版本與Linux內核的關係
(1)Android最初使用Linux2.6作為其內核,隨著Android與Linux內核的發展,不同版本的Android使用的linux內核版本差異較大,所以不同Android版本驅動可能並不通用。
下表顯示了目前所有Android版本與linux內核版本的聯繫。
Code name | Android Version number | Linux Kernel Number | Initial release date | API level |
1.0 | 23-Sep-08 | 1 | ||
1.1 | 9-Feb-09 | 2 | ||
Cupcake | 1.5 | 2.6.27 | 27-Apr-09 | 3 |
Donut | 1.6 | 2.6.29 | 15-Sep-09 | 4 |
Eclair | 2.0–2.1 | 2.6.29 | 26-Oct-09 | 5–7 |
Froyo | 2.2–2.2.3 | 2.6.32 | 20-May-10 | 8 |
Gingerbread | 2.3–2.3.7 | 2.6.35 | 6-Dec-10 | 9–10 |
Honeycomb | 3.0–3.2.6 | 2.6.36 | 22-Feb-11 | 11–13 |
Ice Cream Sandwich | 4.0–4.0.4 | 3.0.1 | 18-Oct-11 | 14–15 |
Jelly Bean | 4.1–4.3.1 | 3.4.0 | 9-Jul-12 | 16–18 |
KitKat | 4.4–4.4.4, 4.4W-4.4W.2 | 31-Oct-13 | 19–20 | |
Lollipop | 5.0–5.1.1 | 12-Nov-14 | 21–22 | |
Marshmallow | 6.0–6.0.1 | 5-Oct-15 | 23 | |
N | Developer Preview 2 |
(2)隨著市場的發展,Android的不同版本被受眾接受的程度大有不同。下圖顯示了自2009年12月以來,全球範圍內Android版本使用的頻率分佈的比例。
從圖中可以看出,2016年2月份時,Android 4.4 KitKat 版本是目前最廣泛使用的版本,占到了所有Android設備使用率的35.5%。屈居第二的是占到了市場份額34.1%的Android版本 Lollipop 。
2、Android System Architecture
Android系統從下至上分為4層:linux內核,Android核心庫,及Android運行時環境(Android Runtime) ,應用程式框架,應用程式及小部件,如下圖所示。
Android的 HAL 層是為了一些硬體提供商提出的保護專利的驅動程式而產生的,簡而言之,就是為了避開 linux kernel 的 GPL License 的束縛。Android把控制硬體的動作都放在了用戶空間中,而在 kernel driver 中只有最簡單的讀/寫寄存器的操作,而完全去掉了各種功能性的操作(如控制邏輯),這些能夠體現硬體特性的操作都放在了Android的 HAL 層。
Android的 HAL 層如下圖所示。
參考資料:
1、Wikipedia-Android Version
2、《Android 系統移植與驅動開發》 華清遠見移動互聯網學院 鄭萌 等編著