基于安卓平台的手机计步器毕业论文 - 图文

更新时间:2024-05-06 10:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

北京邮电大学世纪学院 毕业设计(论文)

题 目 基于安卓平台的手机计步器的设计

学 号 00000000 学生姓名 000000 专业名称 000000000 所在系(院) 00000000000000000 指导教师 0000000

2013年 6月 1日

北京邮电大学世纪学院毕业设计(论文)任务书

姓名 学号 专业 通信工程 系(院) 通信与信息工程 设计(论文)题目 题目分类 题目来源 ■ 其他 基于安卓平台的手机计步器的设计 □ 工程设计;□ 工程技术研究;□ 软件工程(如CAI课题等);□ 专题研究;□艺术设计;□ 自然科学基金与部、省、市级以上科研课题;□ 企、事业单位委托课题;□ 院级课题; ■ 自拟课题 □ 其他 职 称 工作单位 备注 指导教师(指导教师组组长及成员姓名) 毕业设计(论文)的内容和要求: 步行有益于健康,步行热在欧美等发达国家十分盛行,各种类型的电子计步器也日趋流行,本论文要求学生在安卓平台上开发一款手机计步器软件,利用手机的加速度传感器感知用户步态的变化,实现准确记步。 论文内容包括: 1、 采集在步行过程中手机加速度传感器的输出信号,分析该信号和步行的关系,研究合适的记步算法,无论手机处于何种位置和状态,均能够实现精确计步。 2、 在安卓平台下编程实现该算法;实现每日步行里程、消耗热量等统计功能。 应完成的工作和提交材料要求(课题完成后应提交成果的种类、数量、质量等方面的要求): 1. 开题报告,2000字左右。 2. 论文中期报告,符合院系相关要求。 3. 毕业论文,不少于15000字,要求概念正确,调理清晰,文笔流畅。论文中的数学公式必须用Office自带的公式编辑器输入,原理框图等用Visio绘制。 4. 计步器软件开发包,软件可在安卓平台手机上正常运行,并实现准确记步。

主要参考文献(参考文献不少于4篇,参考文献目录按GB/T7714—2005的要求填写): [1] 李刚.疯狂的Android讲义[M].电子工业出版社.2011.7. [2] 吴亚峰,苏亚光.Android2.0游戏开发实战宝典[M].人民邮电出版社.2010.7. [3] 李宁.Android开发完全讲义[M].中国水利水电出版社.2012.4. [4] 严蔚敏,吴伟民.数据结构 [M].清华大学出版社.2007.3. [5] 李刚.疯狂Java讲义[M].电子工业出版社.2008.10. [6] Bruce Eckel著.Java编程思想(陈昊鹏)[M].机械工业出版社.2007.6:23-35 [7] 苏亚光;吴亚峰;索依娜.Android平台下传感器技术开发计步器应用[J].电脑编程技巧与维护.2010(23):3-6. [8] 熊刚.基于Android的智能手机的设计与实现[D].武汉理工大学.2010:34一60. 毕业设计(论文)进度计划(从正式启动时间开始,以周为单位填写): 第 1?2 周:进行课题调研,文献查阅,撰写开题报告。 第 3 周:继续查阅文献,完成论文开题。 第 4?6 周:巩固学习数据结构,系统学习Android开发,Java语言。 第 7 周:研究手机内部传感器如何感知手机状态,研究记步算法并用安卓平台实现。 第 8 周:准备中期报告和中期答辩,迎接中期检查。 第 9 周:根据中期检查中存在的问题,查阅文献,调整研究内容和研究方法。 第10?11周:初步完成计步器软件的开发,在安卓平台手机上试运行。 第12?13周:继续调试、完善程序中的错误,准备撰写毕业论文的资料和数据。 第14?15周:撰写毕业论文,完善毕业论文。 第 16 周:准备答辩材料,完成毕业论文答辩。 指导教师签字: 日期: 2012 年 12 月 12 日 教学单位意见 审核人签字: 年 月 日 备注1、由指导教师撰写,可根据长度加页,一式二份,教务处、系(院)各留存一份,发给学生一份,任

务完成后附在论文内;

2、凡审核不通过的任务书,请重新申报。

北京邮电大学世纪学院

毕业设计(论文)诚信声明

本人声明所呈交的毕业设计(论文),题目《基于安卓平台的手机计步器的设计》是本人在指导教师的指导下,独立进行研究工作所取得的成果,除了文中特别加以标注和致谢中所罗列的内容以外,毕业设计(论文)中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的材料。

申请学位论文与资料若有不实之处,本人承担一切相关责任。

本人签名: 日期:

毕业设计(论文)使用权的说明

本人完全了解北京邮电大学世纪学院有关保管、使用论文的规定,其中包括:①学校有权保管、并向有关部门送交学位论文的原件与复印件;②学校可以采用影印、缩印或其它复制手段复制并保存论文;③学校可允许论文被查阅或借阅;④学校可以学术交流为目的,复制赠送和交换学位论文;⑤学校可以公布学位论文的全部或部分内容。

本人签名: 日期: 指导教师签名: 日期:

II

题目 基于安卓平台的手机计步器的设计

摘要

Android是一个针对移动设备的操作系统和软件平台,随着智能手机的兴起,渐渐成为了占有市场最大比重的移动平台操作系统,同时也越发地受到广大用户的青睐。Android采用 Linux 内核,由 Google 和开放手机联盟于2007年11月5日发布。容许使用 Java语言来开发和管理代码。作为一个年轻并且流行的移动应用平台,目前android软件的应用面还是比较广泛的,比如聊天,通讯,上网等等,但涉及传感器方面的应用软件还比较少。本文在分析讨论Android手机软件开发原理的同时,针对智能手机用户日常使用的实际情况,对用户手机的日常功能需求进行调查。发现对于经常走路上班或者锻炼的朋友来说拥有一款精美、功能齐全的计步器是非常必要的。将精确计量和智能运行技术完美结合,只需开启软件,通过感应器传来的信息,App能够变化算法,测得你的走路步数,速度以及消耗的卡路里量与行走历程。一款合适的计步器在无形中会量化用户的健身效果,帮助用户坚持锻炼以达到更好的健身效果。

关键词 Android 智能手机平台 计步器 Java

I

Title The design of mobile phone pedometer based on

the android platform

Abstract

Android is an operating system and software platform for mobile devices. With the development of Smartphone, it gradually became the biggest proportion in the market of mobile operating system. At the same time, it became more and more popular among users. Android uses the Linux kernel, announced on November 5, 2007 by Google and the open handset alliance, and it allow to use Java language to develop and manage the code. As a young and popular mobile application platform, the application of android is relatively wide; such as chat, communication and internet. However, the application of sensors is less. The thesis of this essay is to analyze and discuss the principle of software development of Android mobile phone. Also, the another purpose in this essay is to conduct an investigation in the daily functional demand for mobile phone users based on the situation of daily uses of smart phone users. The research shows that it is very important to have a fully functional pedometer for people who often walk to work or exercise. The pedometer makes a perfect combination of accurate measurement and intelligent operational technology, when the software are ready to run, it can use the massage which acquire from sensor to calculate the step frequency ,speed, the consumption of calories and walking journey of your walk. An appropriate pedometer can quantify user’s fitness effect in potentially; in this way it can make users to keep exercising in order to achieve better fitness effect.

Keywords android smartphone platform java pedometer

II

目录

1.前言 ............................................................... 1 1.1 智能手机系统开发背景 ............................................. 1 1.2 课题的目的与意义 ................................................. 2 1.3 本文主要研究内容 ................................................. 2 2.相关技术介绍 ....................................................... 4 2.1 开发工具及环境简介 ............................................... 4 2.1.1 开发工具 ..................................................... 4 2.1.2 开发环境 ..................................................... 5 2.2 ANDROID SDK常见公共类库介绍 ..................................... 6 2.2.1 Android的传感器 ............................................. 6 2.2.2 Android界面Activity介绍 ................................... 6 3.系统需求分析 ........................................................ 8 3.1 可行性研究 ...................................................... 8 3.1.1 经济可行性 .................................................. 8 3.1.2 技术可行性 .................................................. 8 3.1.3 操作可行性 .................................................. 9 3.2 性能需求分析 ................................................... 10 3.2.1 实用性原则 ................................................. 10 3.2.2 可扩展性与可维护性原则 ..................................... 10 3.2.3 安全可靠性原则 ............................................. 11 3.2.4 用户界面美观原则 ........................................... 11 3.3 数据需求分析 ................................................. 13 4.系统设计 ........................................................... 14 4.1 系统总体结构设计 ............................................... 14 4.2 系统静态模型设计 ............................................. 15 5.系统实现 ........................................................... 16 5.1布局界面的设计 .................................................. 16 5.1.1主界面的设计 ................................................ 16

III

5.1.2设置界面的设计 .............................................. 17 5.2 各功能的实现 ................................................... 18 5.2.1 计步开始及暂停 ............................................. 18 5.2.2 记录数据清零 ............................................... 18 5.2.3 设置步长 .................................................... 18 5.2.4 设置体重 .................................................... 19 5.2.5 设置运动状态 ................................................ 19 6.系统测试 ........................................................... 20 6.1 测试开始停止模块 ............................................... 20 6.1.1 测试准备 .................................................... 20 6.1.2测试过程 .................................................... 20 6.2 测试总结 ....................................................... 23 5.结论 .............................................................. 24 致谢 ................................................................. 25 参考文献 ............................................................. 26 附录 ................................................................. 27

IV

北京邮电大学世纪学院毕业设计(论文)

2.2 Android SDK常见公共类库介绍

2.2.1 android的传感器

加速度传感器 、磁场传感器、光线传感器 、重力传感器、线性加速传感器、等等。

加速度传感器 :Sensor.TYPE_ACCELEROMETER:返回手机设备在X,Y,Z三个方向上的加速度.(我们用到的)

磁场传感器:Sensor.TYPE_MAGNETIC_FIELD:,返回周围磁场在手机的X,Y,Z方向上的影响(磁场分量).

距离感应器:Sensor.TYPE_PROXIMITY: 重力传感器:Sensor.TYPE_GRAVITY:

线性加速传感器:Sensor.TYPE_LINEAR_ACCELERATION: 2.2.2 Android界面Activity介绍

Android的界面是由每一个成为Activity的java类组成的,这个类库是制作Android软件必须使用的。 WalkingActivity是应用程序的用户界面,主要功能是按照XML布局文件的内容显示界面并与用户进行交互。只有使用了这个才可以让用户看得见,本类中有几个常用的覆写方法来表示界面的生存周期,分别是:

onCreate(),onStart(),onResume(),onPause(),onStop(),onDestroy(),onRestart()七个方法。

Activity的生命周期图,如图2-1所示:

6

北京邮电大学世纪学院毕业设计(论文)

图2-1 Android Activity生存周期图

7

北京邮电大学世纪学院毕业设计(论文)

3.系统需求分析

3.1 可行性研究

可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对刚刚开发打算进一步应用的系统的必要性和可能性的分析和研究。可行性研究的目的主要在于,用最小的代价在尽可能短的时间内确定问题是否能够解决。

该阶段通过对系统总目标的初步调研与分析,提出可行性方案并进行论证。在此,主要从经济可行性、技术可行性和操作可行性三方面进行分析。 3.1.1 经济可行性

随着人民生活水平的提高,尤其我国成功承办2008年奥运会以来,人们的健康运动意识逐渐增强。而上班族们由于时间紧张可利用的休闲时间较少,他们则会利用一些零散的时间进行锻炼,比如上班来回的路上多走路少乘车,在办公区尽量选择走楼梯而不是乘坐电梯等等,由于运动时间零散不便于量化自己的运动量,也就无法估计健身效果。在这样的背景前提下,拥有一款计步器就显得尤为必要了。目前市场上的计步器少则几十多则上百,而智能手机计步器软件的成本几乎为零。只需用户拥有一台有安卓系统的智能手机即可安装使用了。并且手机计步器软件携带方便,可以随时随地获取用户的运动信息,拥有不受地理和时间限制的特点,可以充分利用人们的闲暇时间,从这个角度看,该软件可行。 3.1.2 技术可行性

开发工具:Eclipse Classic 3.7.2 数据库环境:sqlite3

系统环境:Microsoft Windows XP或以上版本

软件实现是依靠基于Android系统的开发技术,使用的是java为主的开发语言进行开发,再加上SOAP技术进行数据交互。 3.1.2.1 功能说明

具体有如下一些功能:计步开始,计步暂停,计步清零,主屏幕显示计步总数,走过的公里数,每分钟走多少步,每小时走多少公里和消耗的卡路里量。进入设置

8

北京邮电大学世纪学院毕业设计(论文)

菜单设置灵敏度,设置步长,根据步长计算走过公里数、步速和消耗的卡路里量,设置体重和运动类型,主要用于计算消耗的卡路里量。退出应用。 3.1.2.2 技术分析

表 3-1 技术需求分析

关键技术项 数据结构 数据库 Java Android 要求 了解 熟悉 熟练 现有水平 了解 了解 熟悉 对照分析 可以满足要求。 虽有欠缺,但通过指导培训,应该在短期内可以达到要求。 基本可以满足要求。 短期需进一步达到要求,存在一定问题。 精通 熟悉

3.1.3 操作可行性

软件采用最主流的Android软件应用开发风格,并使用Android的原生组件进行开发,界面友好,简洁易懂,组建布局具有诱导性,用户使用极其方便快捷。主界面操作流程见图3-1,设置界面操作流程见图3-2。

开始 开始计步 计步暂停 计步清零 图3-1 图为主界面操作流程图

9

北京邮电大学世纪学院毕业设计(论文)

主界面 设置 灵敏度 步长 体重 运动类型返回

图3-2 图为设置界面操作流程图

3.2 性能需求分析

为了保证软件能够长期、安全、稳定、可靠、高效地在Android设备上运行,本系统应该满足以下性能需求。 3.2.1 实用性原则

充分利用手机的内置传感器功能,为本软件提供信息支持,充分考虑用户获取信息的心理需求,在简洁实用的基础上对软件界面层级进行布局,做到了方便,美观大方。

3.2.2 可扩展性与可维护性原则

为适应将来的发展,软件应该具有良好的可扩展性和可维护性。系统设计尽可能模块化、组件化,由于Android设备分辨率的各不相同,使软件可灵活配置,适应不同的的Android终端设备。系统的可扩展性应包括能接纳已有的系统和在今后系统软硬件扩展时,能有效地保护已有的资源建设。当用户的需求有所改变时,可以对其快速的配置改变,以应对用户的需求,有一个较好的应用平台——Android设备,能容易地安装和卸载。系统易于扩充升级,既能满足当前业务的需求,将来的需求改变升级也被考虑在内。

10

北京邮电大学世纪学院毕业设计(论文)

3.2.3 安全可靠性原则

随着三网融合的发展,智能终端产业链的构成相对于传统功能手机发生了巨大变化。处于上游的操作系统提供商制定安全机制的基本规则以及相应的应用商店政策。终端厂商在这些规则的基础上,定制个性化的终端软件,建立自有的应用商店。应用软件开发商/开发者则利用操作系统提供商提供的工具进行各类应用软件的开发,第三方应用商店或论坛等提供应用软件的下载渠道。基于智能终端产业链在管理和技术方面暴露出来的脆弱性,来源于传统互联网和信息系统的各类攻击逐渐将目标定位于智能终端,并借助智能终端操作系统的开放性制造出大量的恶意软件。此外,应用商店的审核机制欠缺也导致了恶意软件的泛滥。目前智能终端信息窃取类软件横行,一款应用软件的安全可靠性便显得尤为重要了。

现在智能终端个人信息的泄露通常不会引起用户的觉察,或者即便觉察也无法判断其带来的损失。与早期的安全问题不同,个人信息泄露所带来的通常不是直接的高额话费,而是潜在的巨大经济损失。如银行账户泄密、绝密商业信息泄露等。如何保护用户个人信息,防止在用户不知情的情况下泄露隐私信息,是当前亟待解决的问题。本软件承诺不会残留用户任何的隐私信息。 3.2.4 用户界面美观原则

界面经过对用户心理的调研和统计后。并参考时下流行的软件风格进行设计,在此基础上,加入了对用户具有诱导性的按键设计,使得用户在初次使用的时候就会使用,而不需要在使用的时候进行特别的学习和指导。

a. 应用图标见图3-3。

图3-3 图为应用图标

11

北京邮电大学世纪学院毕业设计(论文)

b.主界面见图3-4。 c.设置和退出按钮见图3-5。

图3-4 图为应用主界面 d.设置界面见图3-6。

图3-6 图为设置界面

图3-5 画红圈处为设置,退出按钮

12

北京邮电大学世纪学院毕业设计(论文)

3.3 数据需求分析

表3-2 信息输入输出

信息输入 用户点击开始计步 用户点击暂停 用户用户点击清零 用户点击设置键 输入步长设置 输入灵敏度设置 输入体重设置 输入运动类型设置

信息处理 软件通过后台感应手机状态,开始计步 软件将通过后台停止感应手机状态,从而停止计步 软件通过后台运行清除所记录的数据 软件通过数据库中的设置管理 对数据库中步长信息进行改变 对数据库中灵敏度信息进行改变 信息输出 通过软件主界面输出计步总数,消耗卡路里等信息 显示计步的相应信息 所有这界面显示的信息将归零等待下次命令 显示设置主界面 刷新设置中步长列表 刷新设置中灵敏度列表 对数据库中的体重进行管理 刷新收藏夹电视频道的列表 对数据库中的运动类型进行管理 刷新收藏夹单词的列表 13

北京邮电大学世纪学院毕业设计(论文)

4.系统设计

4.1 系统总体结构设计

在设计一款软件时一般都会把它分成几个模块,在模块的基础上还会再分小模块,这样就达到了软件模块化设计的要求,然后再对各个小模块进行详细设计和编写,采用模块化的管理方式可以使软件结构更清晰,也使得软件的管理更有秩序,使别人容易理解和阅读,但是这些模块也要根据别的模块来设计和约束,不能随便设计脱离框架,设计完成后需要把每个设计完成的模块根据总体框架结合起来。

根据本软件的功能需求,将本软件分为以下几个功能模块,如图 4-1所示:

主界面 暂停/开始 步数 公里 步速 时速 卡路里 清零 结束 开始暂停运动走过的总步数走过的总长度每分钟多少步走过的总步数运动所消耗的能量所有数据清零关闭应用软件

图4-1 整体框架图

14

/ 灵敏度 步长 体重 设置 运动类型 设置软件敏感程度设置用户一步多长设置用户体重设置用户运动类型 北京邮电大学世纪学院毕业设计(论文)

4.2 系统静态模型设计

根据系统需求可以识别系统中存在的对象。从需求中可知我们至少创建2个类:主界面类和设置类。

系统和用户交互时需要直观的图形化界面,所以我们需要5个设置界面类。 确定了系统的类后需要确定类之间的关系,如图4-2所示:

StepService计步器后台服务类实现StepService对加速传感器的监听()ControlStepDetector加速度传感器的直接监听者监听加速度传感器并分发监听事件到各种notifier()ModelStepNotifier 对StepDetector的监听器(计步)监听到动作后,对步数进行累加()PaceNotifier 对StepDetector的监听器(步速)监听到动作后,对步速计算()SpeedNotifier 对StepDetector的监听器(时速)监听到动作后,对时速计算()DistanceNotifier 对StepDetector的监听器(距离)监听到动作后,对距离累加计算()CaloriesDetector加StepDetector的监听器(热量)监听到动作后计算累加热量()WalkingActivity主界面类及各种onXXXView组件监听/响应方法() 图4-2系统静态模型

15

北京邮电大学世纪学院毕业设计(论文)

5.系统实现

本章介绍本系统的各个模块的设计和实现。首先在Eclipse中配置好ADT和Android SDK等开发环境,然后新建一个Android项目,项目名为pedometer,然后在Android项目中的AndroidManifest.xml文件中配置本软件需要使用的权限。

本论文用到的是:

计步器的主要功能有:计步开始/暂停,设置,显示运动所消耗的卡路里,走过长度,步速,时速,里程。本软件是一个结合手机用户特别是智能手机用户常用功能的一个软件平台,本软件可以通过界面快速获取运动的情况,获取信息后可以对这些信息进行个性化处理以方便用户直观的感受运动量。

5.1布局界面的设计

5.1.1主界面的设计

由于Android平台手机屏幕大小有限,为了不使用户有凌乱的感觉,在主界面使用了清爽的色彩以及上两层信息显示的排版,使界面看起来简单明快功能健全。

本软件实现了步速,步数,卡路里的显示等功能,为了让界面显得更为美观,使用更为方便,笔者使用在TextView的基础上实现了Tab底部菜单,在底部菜单上添加了 “Pause/Resume”,“Reset”如图5-1所示:

(a)主界面运动信息的显示 (b)Pause/Resume及Reset键

图5-1 主界面信息显示及暂停/开始,清零键

16

北京邮电大学世纪学院毕业设计(论文)

“Pause/Resume”主要终于用于停止和开启监听手机运动状态,也就是用户可以点击该按钮添来控制手机计步器的工作开始或者暂停。

“Reset”用于清除Android数据池所获得的数据即用户可以利用此键将之前所记录的运动信息清零,以便开始记录新一次的运动情况。

在主界面下,点击Android固有的功能键即可呼唤出设置和退出应用键,即“Settings”,“Quite”如图5-2所示:

图5-2 Settings和Quite键

“Settings”用于进入设置主界面,对用户的参数进行设这。 “Quite”即退出本程序 5.1.2设置界面的设计

用户选择设置后会进入一个设置列表界面,该界面是利用Android固有的资源模板,没有做多余的修饰,简单明了的表达出设置项目及目的。每一行显示一条设置信息。该界面仅仅使用一个ListView控件实现设置的列表,不占用较多的尺寸却能够让用户直观的看到所有关于计步器统计运动量所需的信息。

列表中的每一项均可再打开一个小窗口用于更改用户信息,例如设置步长功能(见图5-3),在点击“Step length”键后会出现填入用户步长的对话框如图5-4。

图5-3 设置步长

图5-4 输入用户步长

17

北京邮电大学世纪学院毕业设计(论文)

设置列表中的每一项指向了一条设置内容,点击一条设置项目后能够进入设置项目的输入界面,用户可以根据自身的实际情况来更改设置信息,这也很符合人们的使用习惯。

5.2 各功能的实现

5.2.1 计步开始及暂停

首先对Pause/ resume键做一个监听

start_pause_button.setOnClickListener(new View.OnClickListener()

同时还要对此时状态做一个判断

start_pause_button.setText(mIsRunning ? R.string.pause : R.string.resume);

若初始状态为记录则显示pause,若初始状态为非记录状态则显示resume。具体

代码的实现见附录“开始/暂停按钮” 5.2.2 记录数据清零

对清零按钮做一个View即:

resetButton = (Button) findViewById(R.id.reset_button);

实现清零的语句很简单,对“reset”键做一个监听,当用户点击“reset”键时,即:

resetButton.setOnClickListener(new View.OnClickListener()

执行一下命令:

{ };

public void onClick(View v) { }

resetValues(true);

这样记录数据清零的按钮就完成了。 5.2.3 设置步长

对于设置步长,首先要获取用户所输入的步长信息:

return Float.valueOf(mSettings.getString(\

18

北京邮电大学世纪学院毕业设计(论文)

若用户未对步长信息进行编辑,则默认为20.

在DistanceNotifier中使用mStepLength来计算走过的距离: mDistance = mDistance + (float) (mStepLength / 100000.0);

notifyListener();

在paceChanged中使用mStepLength来计算步速: mSpeed = // kilometers / hour

value * mStepLength // centimeters / minute

/ 100000f * 60f; // centimeters/kilometer

tellFasterSlower(); notifyListener();

5.2.4 设置体重

对于设置体重,首先要获取用户所输入的体重信息:

return Float.valueOf(mSettings.getString(\

若用户未对步长信息进行编辑,则默认为50.

在CaloriesNotifier中使用mBodyWeight来计算用户因运动所消耗的卡路里: mCalories += (mBodyWeight * (mIsRunning ? METRIC_RUNNING_FACTOR : METRIC_WALKING_FACTOR)) * mStepLength / 100000.0;

notifyListener();

5.2.5 设置运动状态

当用户选择跑步运动的时候,程序会判断返回值等于Running: return mSettings.getString(\

.equals(\

判断跑步还是走路是为了方便计算用户所消耗的卡路里,在因运动所消耗卡路里的计算公式中跑步状态和走路状态分别对应不同的参数,根据用户的选择而确定卡路里的计算方法。设置运动装态的详细代码见附录“判断是走路还是跑步”。

19

北京邮电大学世纪学院毕业设计(论文)

6.系统测试

6.1 测试开始停止模块

测试能否根据用户控制得到开始计步和停止计步的结果。 6.1.1 测试准备

1) 模块名:计步器 2) 负责人:梁文淑

3) 意图:测试计步器各模块功能。 6.1.2测试过程

1) 点击应用图标,如图 6-1所示:

2) 运动使主界面开始记录数据,如图 6-2所示:

我要过论文我要过论文我要过论文我要过论文我要过论文我要过论文我要过论文

图6-1 图为计步器主界面 图6-2 图为计步器主界面

20

北京邮电大学世纪学院毕业设计(论文)

3) 在主界面点击Pause,如图 6-3所示:

4) 继续运动观察主界面数据是否有变化,如图 6-4所示: 我要过论文我要过论文我要过论文我要过论文我要过论文我要过论文我要过论文我要过论文我要 论文我要过论文我要过论文我要过论文我要过论文我要过论文我要文 图6-3 图为停止计步界面 图6-4 图为停止计步后仍在运动界面

5) 进入settings(设置)界面,如图 6-5所示: 6) 点击设置Sensitivity(灵敏度),如图6-6所示: 过论文我要过论文我要过论

图6-5 图为设置界面

图6-6 图为设置灵敏度界面 21

北京邮电大学世纪学院毕业设计(论文)

7) 点击设置Step length(步长),如图 6-7所示: 8) 点击设置Body weight(体重),如图6-8所示:

图6-7 图为步长设置界面

图6-8 图为体重设置界面

9) 点击设置Exercise type(运动类型),如图6-9所示:

过论文我要过论文我要过论文 我要过论文我要过论文我要过论文我要过论文我要过论文我要过论文

图6-9 图为运动类型设置界面

22

北京邮电大学世纪学院毕业设计(论文)

6.2 测试总结

本软件中几个模块的功能经过测试,均测试通过,测试结果和最初的设计基本一致,所有的功能均能正常运行,软件需要比较特殊的运行环境,首先手机的重力感应功能必须有,而且Android系统的版本过低将不能使用。至此基于安卓平台的手机计步器的设计基本完成。

23

北京邮电大学世纪学院毕业设计(论文)

5.结论

经过了数月的努力,Android平台手计步器软件终于完成了。本软件能实现用户对计步器的基本要求。方便用户开启关闭计步器,对运动情况和运动量可以直观的从主界面获取信息,设置选项中的智能人机交互平台也可以明了的对用户信息进行编辑,不需要复杂的操作不需要学习,一目了然。对于智能手机用户来说,基于安卓平台的手机计步器提供了一个快捷方便的平台。为用户提供随时随地的服务,节省用户不必要的资金消耗与时间消耗是本软件设计的一个宗旨,整个框架和细节的设计都是围绕这个宗旨进行的,虽然整个软件还不是很成熟,还有很多不足和需要改进的地方,或者还有很多信息提供不到位,例如我们可以加入音乐播放模块,是用户在运动的同时享受轻松快乐的环境,这些还需要日后慢慢优化和改善,但是最初的设计都实现了。

在现在的功能基础上本软件可以进行扩展升级。本软件最初设计的时候就是一个可以扩展的框架,所以为将来加入新的功能提供了很大的方便。本软件虽然不是很强大,但是是我自己亲手编写的,开发一个能在时下最流行的软件,使之顺利的在平台上运行是一件令人兴奋的事情。把自己的想法一步一步地付诸实践,最后成为一个真实的实物,被别人使用和称赞,此时得到的成就感是尤为强烈的。

24

北京邮电大学世纪学院毕业设计(论文)

致谢

四年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。四年的求学生涯在师长和亲友的大力支持下,走得辛苦却也收获满囊。毕业课题设计是我大学生活中忙碌而又充实的一段时光。在过去的几个月里,我学到了很多宝贵的东西。不仅学到更多的理论知识,扩展了知识面,提高了自己的实际操作能力,而且学会了如何去学习新的知识,学会了面对困难和挑战,这些将是我以后的工作学习中的巨大财富。

在论文即将付梓之际,思绪万千,心情久久不能平静。 伟人、名人为我所崇拜,可是我更急切地要把我的敬意和赞美献给一位平凡的人,我的导师。我不是您最出色的学生,而您却是我最尊敬的老师。您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式。从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”。

其次要衷心的感谢此次论文评审团的全体老师在百忙之中牺牲宝贵的休息时间来审阅我的论文,不厌其烦的帮我一遍遍的对论文进行最后的修正。老师们的辛苦我看在眼里记在心里,在以后的人生之路上我一定努力工作回报恩师,回报母校。

在此向默默支持、鼓励和关怀我的父母和亲人道一声谢谢,尤其是我的父母为我的学业提供了物质和精神支持,没有他们的付出,就没有我的今天。父母及家人无私的爱是我永远的动力。

再一次感谢我的母校北京邮电大学世纪学院,感谢通信与信息工程专业对我的培养,感谢所有帮助过我的老师和同学朋友们!谢谢大家!在以后的工作、学习和生活中我将更加努力,用自己的行动回报社会、学校、老师及同学!

25

北京邮电大学世纪学院毕业设计(论文)

参考文献

[1] 李刚.疯狂的Android讲义[M].北京:电子工业出版社.2011.7.

[2] 吴亚峰,苏亚光.Android2.0游戏开发实战宝典[M].北京:人民邮电出版 社.2010.7.

[3] 李宁.Android开发完全讲义[M].北京:中国水利水电出版社.2012.4. [4] 严蔚敏,吴伟民.数据结构 [M].北京:清华大学出版社.2007.3. [5] 李刚.疯狂Java讲义[M].北京:电子工业出版社.2008.10.

[6] Bruce Eckel著.Java编程思想(陈昊鹏)[M].北京:机械工业出版

社.2007.6:23-35

[7] 苏亚光;吴亚峰;索依娜.Android平台下传感器技术开发计步器应用[J].电脑编程技巧与维护.2010(23):3-6.

[8] 熊刚.基于Android的智能手机的设计与实现[D].武汉理工大学.2010:34一60. [9] Sandeep Kumar. Location Based Services using Android[C]. Android

Application Fundamentals, 2009 IEEE International Conference: P1-5 [10] 姚昱旻,刘卫国.Android 与J2ME 平台间即时通信的研究与实现[J].计算机系

统应用.2008(12):118-120

[11] 公磊,周聪.基于Android 的移动终端应用程序开发与研究[J].计算机与现代

化.2008(8):86-89.

[12] 差沙,地狱男爵.用Android 开发手机应用[J].程序员.2008(1):25-27 [13] Narayan Babu.Android application development skills[J].IT TIME WEEKLY,

2012。6(8):55-58.

[14] Konrad Adenauer.Android structural design guidelines[J].Journal of

Computer and Software Engineering,2012.3(6):69-72.

26

北京邮电大学世纪学院毕业设计(论文)

附录

Activity

package edu.bupt.comm.liangwenshu.pedometer; import android.app.Activity;

import android.app.backup.RestoreObserver; import android.content.ComponentName; import android.content.Context; import android.content.Intent;

import android.content.ServiceConnection; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; import android.os.Message;

import android.preference.PreferenceManager; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button;

import android.widget.LinearLayout; import android.widget.TextView; /**

* @author Liangwenshu */

public class WalkingActivity extends Activity {

private static final String TAG = \ private SharedPreferences mSettings;

private PedometerSettings mPedometerSettings; private Utils mUtils;

private TextView mStepValueView; // 步数 private TextView mPaceValueView; //

private TextView mDistanceValueView; // 距离 private TextView mSpeedValueView; // 速度

private TextView mCaloriesValueView; // 卡路里消耗显示框 TextView mDesiredPaceView;

private int mStepValue;// mStepValueView的值 private int mPaceValue;// mPaceValueView的值

private float mDistanceValue;// mDistanceValueView的值 private float mSpeedValue;// mSpeedValueView的值

27

北京邮电大学世纪学院毕业设计(论文)

private int mCaloriesValue;// mCaloriesValueView的值 private float mDesiredPaceOrSpeed;// private int mMaintain;// is爬山

private boolean mIsMetric=true;// 公制和米制切换标志 private float mMaintainInc;//

private boolean mQuitting = false; // private Button resetButton;

private Button start_pause_button;

// Set when user selected Quit from menu, can be used by onPause, onStop, // onDestroy /**

* True, when service is running. */

private boolean mIsRunning;// 程序是否运行的标志位 /** Called when the activity is first created. */ @Override

// 开始函数,重写该函数,加入日志。 @Override

protected void onStart() {

Log.i(TAG, \ super.onStart(); }

// 重写回复函数 @Override

protected void onResume() {

Log.i(TAG, \ super.onResume();

mSettings = PreferenceManager.getDefaultSharedPreferences(this); mPedometerSettings = new PedometerSettings(mSettings); mUtils.setSpeak(mSettings.getBoolean(\

// Read from preferences if the service was running on the last onPause mIsRunning = mPedometerSettings.isServiceRunning();

// Start the service if this is considered to be an application start // (last onPause was long ago)

mPedometerSettings.clearServiceRunning();

mStepValueView = (TextView) findViewById(R.id.step_value); mPaceValueView = (TextView) findViewById(R.id.pace_value);

mDistanceValueView = (TextView) findViewById(R.id.distance_value); mSpeedValueView = (TextView) findViewById(R.id.speed_value);

28

北京邮电大学世纪学院毕业设计(论文)

mCaloriesValueView = (TextView) findViewById(R.id.calories_value); mDesiredPaceView = (TextView) findViewById(R.id.desired_pace_value); // 重设按钮

resetButton = (Button) findViewById(R.id.reset_button); resetButton.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

resetValues(true); } });

// 开始/暂停按钮 start_pause_button = (Button) findViewById(R.id.start_pause_button);

start_pause_button.setText(mIsRunning ? R.string.pause : R.string.resume);

start_pause_button.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

if

(start_pause_button.getText().equals(getResources().getString(R.string.pause)))

{

start_pause_button.setText(R.string.resume); unbindStepService(); stopStepService(); } else if (start_pause_button.getText().equals(getResources().getString(R.string.resume)))

{

start_pause_button.setText(R.string.pause); startStepService(); bindStepService(); } } });

mIsMetric = mPedometerSettings.isMetric(); ((TextView) findViewById(R.id.distance_units))

.setText(getString(mIsMetric ? R.string.kilometers

29

北京邮电大学世纪学院毕业设计(论文)

: R.string.miles));

((TextView) findViewById(R.id.speed_units))

.setText(getString(mIsMetric ? R.string.kilometers_per_hour : R.string.miles_per_hour));

mMaintain = mPedometerSettings.getMaintainOption(); if (mMaintain == PedometerSettings.M_PACE) {

mMaintainInc = 5f; mDesiredPaceOrSpeed = (float) mPedometerSettings.getDesiredPace(); }

else if (mMaintain == PedometerSettings.M_SPEED) {

mDesiredPaceOrSpeed = mPedometerSettings.getDesiredSpeed(); mMaintainInc = 0.1f; }

Button button1 = (Button) findViewById(R.id.button_desired_pace_lower);

button1.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

mDesiredPaceOrSpeed -= mMaintainInc;

mDesiredPaceOrSpeed = Math.round(mDesiredPaceOrSpeed * 10) / 10f;

displayDesiredPaceOrSpeed();

setDesiredPaceOrSpeed(mDesiredPaceOrSpeed); } }); Button button2 = (Button) findViewById(R.id.button_desired_pace_raise);

button2.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

mDesiredPaceOrSpeed += mMaintainInc;

mDesiredPaceOrSpeed = Math.round(mDesiredPaceOrSpeed * 10) / 10f;

displayDesiredPaceOrSpeed();

setDesiredPaceOrSpeed(mDesiredPaceOrSpeed); } });

30

本文来源:https://www.bwwdw.com/article/mpvg.html

Top