给每个问题一个最好的答案

最方便的ChatGpt使用方法

手机的计步器软件原理是什么?

请先 登录 后评论

1 个回答

admin - 书生,情报局长
Android_基于G-Sensor的计步算法一、写在分享之前

学习Android也有将近一年的时间了,一直在看大牛们分享的知识,今天也想分享自己之前的一点研究,关于计步器算法的。目前在计步领域比较领先的有乐动力以及春雨计步器,在做算法的参数调试的时候也是一直拿这两个应用做对比。乐动力当之无愧行业第一,不管是应用的体验还是准确度都是非常棒,春雨计步器的亮点是轻量级,使用以及界面操作都很简单。之前因为一些需求,需要做一个计步器,所以就开始自己研究算法了,各种场景(走路拿在手上,放在口袋,跑步),算法的准确度大概可以达到95.7%,综合起来觉得是比春雨略好,但是赢不了乐动力(可以达到97.7%)在体验和大局观为王的互联网时代,我觉得技术上的差距会越来越小,重要的是体验还有对于产品的定位,所以决定将算法与大家分享,第一是希望可以帮到到家,第二也是希望大家提一些意见,让这个算法可以得到改进。

计步器apk下载

apk反编译下载

二、计步器算法的总体思路以及辅助调试的工具

人在走路时大致分为下面几种场景:

1、正常走路,手机拿在手上(边走边看、甩手、不甩手)

2、慢步走,手机拿在手上(边走边看、甩手、不甩手)

3、快步走,手机拿在手上(甩手、不甩手、走的很快一般不会看手机吧)

4、手机放在裤袋里(慢走、快走、正常走)

5、手机放在上衣口袋里(慢走、快走、正常走)

6、上下楼梯(上面五中场景可以在这个场景中再次适用一遍)

以上,不管出于哪一种场景(其实对应手机不同的运动规律),g-sensor的三轴数据都是有规律可以寻找的。

每一步都有特征点,找到这个特征点,就是识别出来一步。

下面推荐一个工具,叫gsensor-debug,可以观察三轴的曲线,下面是手机上下摆动的曲线

这是很规律曲线只要检测波峰就行了,实际的走路曲线会有很多杂波,算法的作用就是滤除这些杂波(走路的波形可以用工具自己看,可以保存为文件,用excel打开有数据,将数据转换为波形就可以自己看)

三、算法的介绍(贴出核心代码)1、变量的定义//存放三轴数据 float[] oriValues = new float[3]; final int valueNum = 4; //用于存放计算阈值的波峰波谷差值 float[] tempValue = new float[valueNum]; int tempCo

请先 登录 后评论