Android系统级深入开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2 Android的硬件抽象层

3.2.1 硬件抽象层的地位和功能

硬件抽象层是位于用户空间的Android系统和位于内核空间的Linux驱动程序中间的一个层次。

Android中硬件抽象层的结构如图3-6所示。

图3-6 Android中硬件抽象层的结构

经典的方式是实现硬件抽象层和驱动程序,硬件抽象层对驱动程序调用,在这种经典的方式中,Android系统实际上关心的只是硬件抽象层,并不关心驱动程序。这样做的好处是将Android系统的部分功能和Linux中的驱动程序隔离,Android不依赖于Linux的驱动程序。对于同一种功能的实现,可能具有不同的驱动程序。Audio、Video输出、Camera、Sensor、GPS等系统的移植均使用了这种方式。

在某些情况下,硬件抽象层是标准的,这样就只需要实现驱动程序即可。这种情况下的驱动程序,一般也是Linux中的标准的驱动程序。例如:显示部分(donut以及之前的版本),用户输入部分、无线局域网部分、蓝牙部分等,分别使用Linux标准的framebuffer驱动,event驱动,Wlan、BlueTooth作为驱动程序。