Android系統(tǒng)的移植要做的兩個工作
Android系統(tǒng)的移植的主要目的是為了能在特定的硬件上運行Android系統(tǒng)。而在移植的過程中,一個重要的方面就是把握關鍵要點,減少工作量。從工作的角度,首先要熟悉硬件抽象層的接口,其次要集成和復用已有的驅動程序,主要的工作量在硬件抽象層的實現(xiàn)中。為了更好地理解和調試系統(tǒng),也應該適當?shù)亓私馍蠈訉τ布橄髮拥恼{用情況。
本文引用地址:http://butianyuan.cn/article/150826.htmLinux驅動
Android系統(tǒng)硬件抽象層
Linux中的驅動工作在內(nèi)核空間,Android系統(tǒng)硬件抽象層工作在用戶空間,有了這兩個部分的結合,就可以讓龐大的Android系統(tǒng)運行在特定的硬件平臺上。
Android移植的主要工作如圖1所示。
圖1 Android移植的主要工作
在具有了特定的硬件系統(tǒng)之后,通常在Linux中需要實現(xiàn)其驅動程序,這些驅動程序通常是Linux的標準驅動程序,在Android平臺和其他Linux平臺基本上是相同的。主要的實現(xiàn)方面是Android系統(tǒng)中的硬件抽象層(HardwareAbstract Layer),硬件抽象層對下調用Linux中的驅動程序,對上提供接口,以供Android系統(tǒng)的其他部分(通常為Android本地框架層)調用。
提示:Android硬件抽象層的接口是本地移植層的接口,不屬于標準API,不具有向前或者向后兼容性。
在Android系統(tǒng)需要移植的內(nèi)容,主要包含了以下的各個部分:
顯示部分(Display)
包括framebuffer驅動+Gralloc模塊(可選擇是否實現(xiàn))
用戶輸入部分(Input)
包括Event驅動+EventHub(Android標準內(nèi)容)
多媒體編解碼(Codec)
包括硬件Codec驅動+Codec插件(如OpenMax)
3D加速器部分(3D Accelerator)
包括硬件OpenGL驅動+OpenGL插件
音頻部分(Audio)
包括Audio驅動+Audio硬件抽象層
視頻輸出部分(Video Out)
包括視頻顯示驅動+Overlay硬件抽象層
攝像頭部分(Camera)
包括Camera驅動(通常是v4l2)+Camera硬件抽象層
電話部分(Phone)
Modem驅動程序+RIL庫
評論