先开个头,准备这与一篇struct hw_module_t HAL_MODULE_INFO_SYM 相关的文章。
Hal层的库文件是怎么被上层调用的?上层调用时的入口(相当于main)又是什么呢?它就是HAL_MODULE_INFO_SYM。
下gps.default.so库为例子:
①上层gpstest.apk打开后
②会在/system/lib/hw/下面寻找gps.default.so(也可能是gps.$(platform).so)的这个库
③gps.defualt.so的入口就是HAL_MODULE_INFO_SYM
从此再去调用hal层里的open,init,write,read等接口,hal再通过这个接口去设备结点读写。
简单是这样,深入的可以在网上找,相关的资料比较多,不深入说了。