16、构建 Android 硬件抽象层(HAL):以 Acme 接近传感器为例

构建 Android 硬件抽象层(HAL):以 Acme 接近传感器为例

1. 构建 HAL 的概述

在构建 HAL 时,设备驱动的 API 是 HAL 底层的约束条件。对于不同情况,API 的可修改性有所不同。接下来,要考虑上层(接近应用代码)的需求。HAL 是构建将硬件暴露给应用程序的服务的第一步。此时,应用开发者(最好不是编写 HAL 的人)编写一个应用程序是个不错的选择,需要思考应用程序中自然的接口是什么,是否处理了初始化、配置、应用程序故障和访问控制等边缘情况,以及当有新功能的传感器出现时,API 是否能在保持向后兼容性的情况下适应变化。

当应用需求大致明确后,将应用 API 转换为硬件所需的一组操作相对直接。大部分繁重工作将由实际将硬件暴露给应用程序的 Java 服务完成,HAL 层只需提供一组简洁、最小化的硬件操作,以便在此基础上构建服务。

以 Acme 接近传感器的 HAL 为例,其设计简洁,避免掩盖构建 HAL 的过程。由于电源是重要考虑因素,该传感器在运行时会耗电,若不能关闭会无谓消耗电池,因此 HAL 设计中有开启和关闭传感器的调用。开启传感器的调用接受一个参数(输出参数结构体),驱动会用轮询时传递给 HAL 的精度参数的可接受最小值和最大值填充该结构体,同时包含设备轮询时返回的接近数据的最大值和最小值。传感器开启后,可对其进行轮询以获取接近值,轮询调用接受一个参数,即所需的接近值精度,该精度参数限制传感器获取返回值时消耗的资源(如时间或电池),轮询会返回传感器的当前值。当所有客户端应用程序使用完传感器后,可将其关闭以节省电池。

构建将原生代码连接到 Android 框架的代码可分为四个步骤:
1. 定义 HAL:创建指定接近服

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值