计步器算法研发与改进

By C.L.Wang

计步器算法

对于所有计步器而言,早期必然是使用加速度传感器(Accelerometer Sensor)测量步数,随后谷歌推出计步传感器(Step Counter Sensor),由硬件或系统计算步数的变化,使得算法简化。

 

注意:有些手机,未提供计步传感器;有些手机,在待机过程中关闭计步传感器。

加速度传感器(Accelerometer Sensor)

  • 算法根据加速度传感器空间位置(XYZ轴)的变化,绘制空间曲线,根据两次波峰波谷之间的时间间隔,判断步行或其他状态。
  • 在短时间内出现连续波峰,即为步行;波峰出现的时间间隔较长,则认为停止行走。
  • 同时,屏蔽轻微与初始扰动,提升准确性;通过调整参数,适配不同手机的传感器差异,提升鲁棒性。

计步传感器(Step Counter Sensor)

  • 算法读取计步传感器的数值,与本地缓存数值匹配,判断步数的增加与否。
  • 在屏幕关闭时,启动BatchMode模式,配合协处理器,延迟获取数值,节约电量。
  • 当计步传感器停止时(有些手机在屏幕关闭时会停止部分传感器),自适应切换加速度传感器,启动时,再次切换计步传感器。

自适应性(Self-Adaption)

  • 根据系统参数,算法优先选择计步传感器,当计步传感器无法使用时,选择加速度传感器。

  核心和算法

  • StepCounterManager:管理步数的核心类. 

  • ChunyuPedometer:加速度传感器算法. 

  • SensorParameterFactory:调整加速度传感器的参数.

  • NativePedometer:计步传感器算法. 

架构

  • Android6.0的计步传感器权限

功能

  • 判断锁屏频率,提示无法计步

  • 优化电量,根据传感器频率,管理监听

Over

有问题,欢迎找我讨论

Pedometer's Algorithm & Improvement

By C.L.Wang

Pedometer's Algorithm & Improvement

Show pedometer's algorithm and how to improve it.

  • 2,278