当前位置: 移动技术网 > IT编程>移动开发>Android > Android传感器(sensor)简介

Android传感器(sensor)简介

2018年10月30日  | 移动技术网IT编程  | 我要评论

毛峰,委内瑞拉美女,今日美元兑人民币汇率

sensor

android的sensor架构如下

这里写图片描述系统,有些是hal—>qmi—>ssc,这里不对这部分做说明,关注aosp部分.

背景知识

在进入代码之前,先简单描述一些相关背景知识点

传感器

android传感器框架中包括物理传感器和虚拟传感器两大类

物理传感器

表示物理特性和状态的传感器包括加速度计、陀螺仪、指南针、温度计、气压计、光传感器、心率计等等 虚拟传感器

旋转矢量、重力方向、线性加速度等,这些传感器的数据是依据物理传感器的数据,经过融合算法后计算得出的.(有些计步器是根据加速度计计算获得的,这种计步器也算是虚拟传感器)

这两类传感器单次数据量比较小,目前种类有30多个(sensor.h中查阅),市场中还存在一些其他传感器,如相机中的sensor,指纹传感器,触摸传感器.因其功能复杂且特殊被放在单独模块中处理,并不包含在传感器框架中,物理传感器和虚拟传感器对于应用程序来说,没有什么区别,aosp部分已将这部分做了一致处理..

对于常用的九轴传感器原理,融合算法,对比分析,可以看之前整理的文章9轴传感器

上报方式

不同的传感器的上报方式不同,根据实际情况进行设定,目前支持有四种上报方式

连续模式

传感器持续不断的上报数据,这种上报方式适用于加速度计、陀螺仪这样的传感器,使用它们时,往往需要实时(200hz~1khz)连续的上报. 变化模式

当传感器数据经过一段时间发生变化后,才上报,常见的是心率计和计步器 单次模式

当传感器检测到某种事件时触发,例如红外传感器,在检测到人靠近时,触发上报. 特定上报模式

用于支持特定需求的上报,较少使用.

唤醒传感器和唤醒传感器

所谓的唤醒是指是否能够唤醒soc处理器来处理事件,当soc处于挂起状态时,唤醒传感器可以将soc唤醒处理必要的事件.另外同一个传感器可以同时被定义为唤醒传感器和非唤醒传感器.两者相对独立.

多个应用共同访问同一个传感器

应用a以100hz速率访问传感器x,应用b以200hz速率访问传感器x,最终传感器上报速率以较高的为准,即200hz 多个应用设定了报告延迟时间,又可能会超过所设定的延迟时间 不支持多个应用对同一个传感器设定不同模式(例如:一个设定”高精度”,另一个设定”低功耗”) 应用不能将传感器数据下发(应用只向下发送控制命令,而不下发数据),否则其他应用可能接收到应用下发的错误数据.

融合算法

android平台可以依赖原始的9轴数据(加速度计、陀螺仪、指南针),融合出旋转矢量、重力和线性加速度传感器给应用程序使用,当然如果有能力可以自己实现更好的融合算法.

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网