在Android中拥有HAL层的主要优势是什么?

时间:2014-05-13 07:47:26

标签: android android-framework hal

我想知道为什么需要HAL?我是android的内部新手。

以下是我的理解。

第1步:

Android服务通过JNI与.cpp文件进行交互。服务公开应用层的Binder接口。

第2步:

cpp文件使用libhardware [hw_get_module()]加载HAL模块。 [即:dlopen]。

第3步:[HAL模块]

HAL模块直接与硬件驱动程序交互。

注意:如果我错了,请纠正我?

我能理解流程。但为什么HAL模块之间需要?

除了动态加载HAL还有什么其他优点?

3 个答案:

答案 0 :(得分:1)

HAL的主要优点是它抽象了不同供应商的不同实现,并为上层提供了一致的API。

答案 1 :(得分:0)

不同的供应商可能有不同的硬件配置。他们可能以不同的方式支持相同的功能。 HAL由硬件供应商实现,Android不知道他们的内部。因此,HAL是硬件特定的实现(针对底层硬件进行了优化和定制),并提供了一个通用的接口。

答案 2 :(得分:0)

  • Android HAL [硬件抽象层](抽象)弥合了硬件和软件之间的鸿沟。
  • Android应用程序/框架通过Java API与底层硬件进行通信,而不是通过系统调用进行通信。
  • 但是Linux只能处理来自应用程序的系统调用。
  • 因此,我们需要在android框架和linux系统之间建立粘合层。
  • Android HAL允许Android应用程序/框架与特定于硬件的设备驱动程序进行通信。
  • 对于Android应用程序,HAL提供API,服务可以通过该API向设备发出请求。
  • HAL使用下层Linux系统提供的功能来满足来自android框架的请求。
  • HAL是c / c ++层,是特定于供应商的实现。

Source