运动追踪(SportsTracker)—— 安卓应用

来源:互联网 发布:阿里云计算技术架构 编辑:程序博客网 时间:2024/05/16 03:04

最近写了一款安卓应用——运动追踪(SportsTracker)。

下面就来介绍下这款应用以及设计到的部分技术。

下载地址:http://download.csdn.net/detail/i7thtool/9319327


一、应用简介

现在手机等移动终端已经成为了人们随身必备装备了,所以基于此,我们可以通过手机中的传感器来分析用户的运动状态,这款运动追踪是根据这一特点设计的。

市面上也有很多类似的应用,但是这款应用有其自身的特点,该应用不使用GPS分析运动状态,这样耗电量就不会很高,也不用用户去手动点击开始、结束按钮来开始结束运动。

使用该应用,用户不用任何操作,运动追踪就会每天统计用户行走或是跑步的步数,计算出运动的距离、时间、速度、以及消耗的卡路里等,并以图表的形式展现给用户。

该应用极其简洁,实用,这里截出几张图:



二、应用技术

1、主要用到的技术

Activity/Fragment,这不用说,用户看到的界面就是Activity,Activity里嵌入Fragment

Service,后台会一直运行一个运动追踪服务

BroadcastReceiver

Intent

DB(Sqlite),保存用户运动追踪数据

Notification,运动追踪提醒

AChartEngine,以图表的方式展示用户运动数据

传感器,接收用户运动变化

其他

2、程序细节

TheApp:(需要在AndroidManifest.xml里配置<application android:name=".TheApp")

全局唯一的application实例,这里可以全局性的初始化动作,而不是放在Activity或者Service里实现。运动追踪主要是做全局数据的初始化和全局BroadcastReceiver的处理

MainActivity:

显示用户界面,运动追踪内嵌了Fragment所以,显示用户运动数据是在Fragment里实现的,MainActivity里主要用来保存Activity用到的数据,相当于Fragment的容器。

Service:

后台注册运动传感器,追踪和保存用户数据,常驻后台,即使Activity一个没有,也在后台运行,所以用户不用手动去开始、结束运动,运动追踪会自动运行统计用户的运动数据,这样非常方便。

Notification

通知是一直在通知栏显示的,使用RemoteVies自定义通知,可以和用户进行简单的互动,比如开始、暂停追踪,用户可以取消通知栏。

其他,就是完善运动追踪的小细节了,这里就不多说了。

SportsDetector:

运动检测,用于检测用户的运动状态,比如走路或是跑步,这里的算法就不详细说了,这里我就讲一下如何过滤干扰。

因为传感器会不停的有数据反馈,不可能每来一次传感器数据就认为是一次运动,这肯定是不对的,所以我们就要有相关的过滤分析功能。

我们需要考虑:

    a)、考虑传感器传来的数据如何量化成运动数据,

    b)、考虑过滤掉小范围波动,

    c)、考虑运动的方向判断,

    d)、考虑运动是一个持续性的过程,

    e)、考虑一次运动的开始和结束,比如走一步或者跑一步的开始和结束过程,

    f )、考虑人类的运动极限,远低于正常运动和超过运动极限的数据,应该算是非正常运动。


欢迎使用运动追踪

谢谢



0 0
原创粉丝点击