Android应用开发之Android传感器(sensor)简介
白羽 2018-12-24 来源 :网络 阅读 1218 评论 0

摘要:本文将带你了解Android应用开发Android传感器(sensor)简介,希望本文对大家学Android有所帮助。

    本文将带你了解Android应用开发Android传感器(sensor)简介,希望本文对大家学Android有所帮助。



        

sensor

Android的sensor架构如下

<img style="width: 433px; height: 520px;" alt="这里写图片描述" src="/uploadfile/Collfiles/20180612/2018061209321642.png" title="" os="" "="" target="_blank" class="keylink">系统,有些是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轴数据(加速度计、陀螺仪、指南针),融合出旋转矢量、重力和线性加速度传感器给应用程序使用,当然如果有能力可以自己实现更好的

          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程