目前HAL分为下面4类,具体可以参考下面链接提供,那里写的最详细,这里只记录下我自己的理解。
1.绑定式 HAL:这个完全由hidl语言描述,由hidl-gen工具自动生成的hal。此模式下framwework和hal通过进程间binder通信。(camera相关的是/dev/hwbinder节点)。
Android 8.0 或后续版本的设备都必须只支持绑定式 HAL。
2.直通式HAL:这个是由hidl 封装的hal,具体是在hidl封装处dlopen传统的hal(目前8.0上Camera是这种形式)大概形如如下面这个。下面右侧三个子部分都是在同一个进程中。封装层dlopen传统的hal,这样就不用更改太多代码。
3.Same-Process HAL:如它名字所示,是在使用它们的进程中打开的HAL,同一进程这里就不需要binder通信了。
4.传统 HAL 和旧版 HAL:目前我的理解是实现HAL_MODULE_INFO_SYM的hal,google给出下面的解释.
传统 HAL(在 Android 8.0 中已弃用)是指与具有特定名称及版本号的应用二进制接口 (ABI) 标准相符的接口。大部分 Android 系统接口(相机、音频和传感器等)都采用传统 HAL 形式(已在 hardware/libhardware/include/hardware 下进行定义)。
————————————————
版权声明:本文为CSDN博主「慢慢的燃烧」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010164190/article/details/84879078