概述
传统的Linux系统把对硬件的支持完全实现在内核空间,即把对硬件的支持完全实现在硬件驱动模块中。
Android系统的硬件抽象层(Hardware Abstract Layer)运行在用户空间中,它向下屏蔽硬件驱动模块的实现细节,向上提供硬件访问服务。通过HAL,Android系统把对硬件的支持分成了两层,一层放在用户空间,一层放在内核空间,其中,硬件抽象层运行在用户空间,而Linux内核驱动程序运行在内核空间。
下面这个图阐述了硬件抽象层在Android系统中的位置,以及它和其它层的关系: