热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

最近写了一款安卓应用——运动追踪(SportsTracker)。下面就来介绍下这款应用以及设计到的部分技术。下载地址:http:download.csdn.netdetai

最近写了一款安卓应用——运动追踪(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实例,这里可以全局性的初始化动作,而不是放在Activity或者Service里实现。运动追踪主要是做全局数据的初始化和全局BroadcastReceiver的处理

MainActivity:

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

Service:

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

Notification

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

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

SportsDetector:

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

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

我们需要考虑:

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

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

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

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

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

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


欢迎使用运动追踪

谢谢




推荐阅读
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 4.3.2Tuple是否可以跨页面PostgreSQLusesafixedpagesize(commonly8kB),anddoesnotallowtuplestospanmult ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • C++语言入门:数组的基本知识和应用领域
    本文介绍了C++语言的基本知识和应用领域,包括C++语言与Python语言的区别、C++语言的结构化特点、关键字和控制语句的使用、运算符的种类和表达式的灵活性、各种数据类型的运算以及指针概念的引入。同时,还探讨了C++语言在代码效率方面的优势和与汇编语言的比较。对于想要学习C++语言的初学者来说,本文提供了一个简洁而全面的入门指南。 ... [详细]
  • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
  • 开发笔记:快速排序和堆排序
    本文由编程笔记#小编为大家整理,主要介绍了快速排序和堆排序相关的知识,希望对你有一定的参考价值。快速排序思想:在partition中,首先以最右边的值作为划分值x,分别维护小于 ... [详细]
  • 尾部|柜台_Java并发线程池篇附场景分析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java并发-线程池篇-附场景分析相关的知识,希望对你有一定的参考价值。作者:汤圆个人博客 ... [详细]
  • 数据结构与算法习题replacementselectionsort(置换选择排序)TimeLimit:1000msMemoryLimit:65536kBDescrip ... [详细]
author-avatar
年轮033
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有