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