官术网_书友最值得收藏!

3.1.2 Android對Linux內核的使用

在Android系統中,基本上使用的是標準的Linux 2.6內核,基本上和其他Linux系統類似。

1.Android中的Linux操作系統

Android中使用Linux操作系統,除了Linux的通用代碼之外,主要包含3個方面的內容:

體系結構和處理器

Android特定的驅動程序

標準的設備驅動程序

Android中Linux的架構如圖3-2所示。

圖3-2 Android中的Linux內核與驅動

Android中Linux操作系統的3個方面中:體系結構處理器和標準的設備驅動程序這兩個方面是和硬件相關的,但是對于同一種硬件,在Android系統和非Android的Linux系統中是基本一樣的;Android特定的驅動程序,通常是和硬件無關的驅動程序,僅僅在Android系統中使用,但是對于同樣適用Android操作系統的不同硬件,這部分的內容是一樣的。

Android系統通常用于移動設備或者其他的嵌入式設備,因此多基于ARM體系結構,在ARM體系結構具有多種處理器。對于同一種處理器,對于不同外圍設備,因此可能也將使用不同的驅動程序。

2.為Android構建Linux的操作系統

為Android構建一個基本Linux操作系統,如果以非Android的Linux操作系統為起點,那么主要的工作就是增加Android特定的驅動程序。Android中的Linux操作系統包含了很多的驅動程序,將其移植到一個新的系統中的步驟比較簡單:

增加源代碼

在KConfig中增加內容

在Makefile中增加內容

在基本Linux操作系統之上,主要的內容就是各種具體設備的驅動程序了。在Android系統中,通常使用framebuffer驅動、Event輸入驅動、Flash MTD驅動、WIFI驅動、藍牙驅動、串口驅動等標準的驅動程序。

在音視頻的輸入輸出方面,標準的Linux具有Alas Audio驅動、OSS Audio驅動、Video for Linux視頻驅動等驅動程序,在Android中經常被使用。

在Android系統中,振動器、背光、電源系統等使用sysfs接口作為內核空間和用戶空間的接口,驅動程序需要提供這些內容。

Android系統中的傳感器、GPS等設備,并沒有指定驅動程序的類型,可以在實現的過程中根據系統的實際情況選擇不同的接口(內核空間到用戶空間)來實現。

主站蜘蛛池模板: 栖霞市| 五台县| 永平县| 清水县| 桑日县| 高密市| 北海市| 喀喇| 沁阳市| 怀柔区| 乌兰察布市| 枝江市| 石首市| 江达县| 阿克苏市| 包头市| 太康县| 沁水县| 彭水| 定州市| 南京市| 西昌市| 湄潭县| 呈贡县| 丹巴县| 霍山县| 安义县| 宣城市| 四平市| 岢岚县| 民勤县| 诸暨市| 资兴市| 凤阳县| 怀仁县| 江永县| 涞源县| 阳东县| 浙江省| 尼木县| 泰来县|