Android HAL

Android系统硬件抽象层(Hardware Abstraction Layer,HAL)是连接Android Framework与内核设备驱动的重要桥梁。其主要设计意图是向下屏蔽设备以及其驱动的实现细节,向上为系统服务以及Framework提供提供统一的设备访问接口。同时Google基于保护硬件厂商知识产权的考量,选择Apache开源许可证以避开GPL开源协议的约束,允许硬件厂商不公开源码,将设备相关的实现放在HAL层中实现并以共享库(.so)的形式提供。

Android HAL并不是一项新的技术,它只是Android系统框架中的一个中间层,Google只是定义了HAL向更上层的统一接口,并没有规定具体于内核设备驱动的交互方法。对于Google定义的HAL接口规范,并没有相应的文档对其介绍,但Android source中的hardware/libhardware/include/hardware/hardware.h中有非常详细的注释,本文对hardware.h中的数据结构做了简单介绍以及对HAL的开发步骤做了归纳。

results matching ""

    No results matching ""