Android硬件抽象Hardware库加载过程源码分析
作为开放而非开源的Android系统,由于其基于Linux内核实现,在不违背Linux基于GPL许可前提下,为了隐藏各厂家自身特定硬件驱动实现细节,在用户空间定义了一套硬件抽象层,对硬件的操作细节从内核空间转移到用户空间。各厂商在Android的硬件抽象层实现特定硬件的操作细节,并编译成动态库,以库的形式提供给用户使用。因此Android就提供了一套访问硬件抽象层动态库的接口,各厂商只需要为他们的硬件实现软件操作细节。Android系统编译的硬件抽象库存放于/system/lib/hw目录下,如下图所示:
本文简单介绍Android系统提供的硬件抽象库访问接口。
hardware\libhardware\hardware.c