我想知道为什么需要HAL?我是android的内部新手。
以下是我的理解。
第1步:
Android服务通过JNI与.cpp文件进行交互。服务公开应用层的Binder接口。
第2步:
cpp文件使用libhardware [hw_get_module()]加载HAL模块。 [即:dlopen]。
第3步:[HAL模块]
HAL模块直接与硬件驱动程序交互。
注意:如果我错了,请纠正我?
我能理解流程。但为什么HAL模块之间需要?
除了动态加载HAL还有什么其他优点?
答案 0 :(得分:1)
HAL的主要优点是它抽象了不同供应商的不同实现,并为上层提供了一致的API。
答案 1 :(得分:0)
不同的供应商可能有不同的硬件配置。他们可能以不同的方式支持相同的功能。 HAL由硬件供应商实现,Android不知道他们的内部。因此,HAL是硬件特定的实现(针对底层硬件进行了优化和定制),并提供了一个通用的接口。
答案 2 :(得分:0)