書名: Android系統級深入開發作者名: 韓超 梁泉本章字數: 712字更新時間: 2018-12-29 13:39:29
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等設備,并沒有指定驅動程序的類型,可以在實現的過程中根據系統的實際情況選擇不同的接口(內核空間到用戶空間)來實現。
- CMDB分步構建指南
- Beginning C++ Game Programming
- 編程卓越之道(卷3):軟件工程化
- Xcode 7 Essentials(Second Edition)
- Reactive Programming With Java 9
- QGIS:Becoming a GIS Power User
- Python面向對象編程:構建游戲和GUI
- Gradle for Android
- Hands-On Automation Testing with Java for Beginners
- Python編程:從入門到實踐(第3版)
- 區塊鏈項目開發指南
- Flink技術內幕:架構設計與實現原理
- Instant Automapper
- Python大規模機器學習
- Python Projects for Kids