深入浅出 - Android系统移植与平台开发(十一) - Sensor HAL框架分析之一

本文深入探讨了Android系统的Sensor框架,从Sensor的概念出发,分析了Sensor不同于其他输入设备的特性,如控制流与数据流的结合。接着,文章详细阐述了Sensor服务的启动过程,从SystemServer的初始化到SensorService的实例化,揭示了Sensor服务如何伴随系统启动并为应用提供接口。通过对框架的剖析,为理解Sensor HAL的实现提供了基础。
摘要由CSDN通过智能技术生成

1.      Sensor的概念

Sensor即传感器,在当前智能手机上大量存在:G-Sensor、LightsSensor、ProximitySensor、TemperatureSensor等,其作为Android系统的一个输入设备,对于重视用户体验的移动设备来说是必不可少的。Sensor虽然是一个输入设备,但是它又不同于触摸屏,键盘,按键等这些常规的输入设备,因为Sensor的数据输入从传感器硬件到设备的,而常规的输入设备是从用户到设备的,比如:温度传感器用于感知温度的变化,采样传感器数据上报给设备。而传感器硬件的工作与否,采样精度是由用户来控制的,所以对应Sensor而言是其工作方式是双向的,即:控制硬件的控制流,硬件上报的数据流。这也决定了Sensor的框架不同与触摸屏等常规输入子系统。

本章节主要研究的Sensor框架代码与SensorHAL的实现细节,一切还是从Sensor框架开始,首先来回顾下Led HAL的实现框架。

 

Led HAL是我们自己实现的,主要分为四部分:

Led App:Led的应用程序

Led Service框架:Led应用的API提供者

LedService本地:LedService服务的本地实现,上层与底层的通信转化接口

Led HAL Stub:HAL层代码,具体硬件驱动操作接口

很明显,我们写的Led HAL代码是典型的控制流,反馈结果就是Led灯的亮与灭,它的架构不适用于Sensor架构,具体有如下几点:

l  Led是单纯的控制流,而Sensor是控制流与数据流

Sensor的数据流不是实时的,而是有采样速率,并且数据不是连续的,阻塞在读取硬件设备数据上,只有数据得到才返回。

l  Sensor是提供给所有传感器的通用框架,不是针对某一特定硬件的架构

Sensor包含多种类型,在上层和底层都有对Sensor具体类型的屏蔽,让它通用所有传感器。

l  Sensor的服务不是由应用程序创建启动的,应该是伴随系统启动的

任何一个应用程序里都可以使用Sensor服务,这决定了Sensor服务应该伴随系统启动。

 

2.      Sensor的框架分析

本节是本系列第一个分析的具体设备的框架,从Android SensorService的注册启动开始,到应用程序获得SensorManager注册传感器监听器,详细分析从应

评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值