第九章心得体会

Android系统中使用Linux驱动有两种方式,一种是通过传统的方式直接与Linux驱动交互。

例如,直接读写设备文件的数据。另一种是Android特有的,就是通过HAL模块。HAL模块

本质上就是通过Linux共享库与Linux驱动交互,然后应用程序再访问linux共享库,早期的

HAL模块由应用程序直接访问linux共享库的方式调用。而高版本的Android系统为HAL增加

Stub,换句话说,就是为了每一个HAL共享库指定一个ID,再利用这个ID配合一定的规

则找到Linux共享库,这样Linux共享库更换文件名,移动位置都很方便,Google也建议使

stub的方式编写HAL模块。

 Android_.H现二的源代码存储的位置并不固定, 一般会存储在<Android源代码目录>

/hardware 目录中。其中<Android 源代码目录>/hardware/libhardware legacy 目录用来存

HAL 架构的源代码文件。新HAL 架构的源代码在<Android 源代码目录>/hardware/libhardware目录中,

当然,这些源代码文件也可以放在<Android 源代码目录>/hardware 或其他的目录。最终

编译生成的.so 文件主要放在Android 系统的/system/lib/hw 目录。

原文地址:https://www.cnblogs.com/zhuhongchao/p/5633134.html