摘要
随着人们生活水平和生活质量的提高,人们越来越关注自己的身体健康。而跑步成为人们最受欢迎的运动方式,运动软件可以在人们锻炼身体的时候提供极大的帮助。本文针对运动轨迹和计步,设计一款基于Android 平台的运动软件。本系统通过使用百度鹰眼、重力传感器和数据库技术,实现了运动轨迹追踪、计步、查看运动记录等功能。本系统界面友好,操作简单,可以稳定运行。本款运动软件适合空闲时间不足的人群,方便人们随时锻炼身体,并查看自己的运动情况。
关键字:Android、百度鹰眼
Abstract
With the improvement of people life level and quality of life, people more and more attention to their own health. While running to become the most popular sports, sport software can provide great help when people exercise. Based on trajectory and step, design a movement based on the Android platform software. This system through the use of baidu eagle eye, gravity sensor, and database technology, to realize the trajectory tracking, step, check the movement records, and other functions. This system friendly interface, simple operation, stable operation. This movement software suitable for the lack of leisure time, convenient people at any time to exercise, and view the movements of their own.
Keywords: Android, baidu's eagle eye
目录
1 绪论
1.1 软件开发背景
1.2 论文研究的目的和意义
1.3 论文主要研究内容
1.4 论文组织结构
2 相关技术介绍
2.1 Android系统的组成
2.1.1 应用程序层
2.1.2 应用程序框架层
2.1.3 系统运行库层
2.1.4 Linux内核层
2.2 Activity的生命周期
2.3 Android平台的搭建
2.3.1 JDK的安装
2.3.2 Eclipse的安装
2.3.3 Android SDK 的安装
2.3.4 ADT的安装
2.3.5 创建DVD
3 需求分析7
3.1 可行性分析
3.1.1 经济可行性分析
3.1.2 技术可行性分析
3.1.3 操作可行分析
3.2 功能需求分析
3.3 非功能性需求分析
3.3.1 易用性
3.3.2 可靠性
3.3.3 安全性
3.3.4 运行环境
3.4 面向对象分析
3.4.1 设置信息用例分析
3.4.2 运动记录用例分析
3.4.3 计步信息用例分析
3.4.4 系统用例分析
4 系统设计
4.1 概要设计
4.2 详细设计
4.2.1 系统总体设计
4.2.2 计步模块详细设计
4.2.3 轨迹追踪模块详细设计
4.2.4 音乐播放模块详细设计
4.2.5 闹铃模块详细设计
4.2.6 平台分享模块详细设计
4.2.7 天气预报模块详细设计
4.2.8 更换主题模块详细设计
4.2.9 运动记录模块详细设计
4.3 数据库设计
4.3.1 数据库分析
4.3.2 数据库概念设计及表结构
5 系统实现
5.1 计步模块实现
5.2 轨迹追踪模块实现
5.3 音乐播放模块实现
5.4 闹铃模块实现
5.5 天气预报模块实现
5.6 平台分享模块实现
5.7 更换主题模块实现
5.8 运动记录模块实现
6 测试
6.1 计步模块测试
6.2 轨迹追踪模块测试
6.3 运动记录模块测试
结束语
参考文献
致谢
1 绪论
1.1 软件开发背景
随着人们生活水平和生活质量的提高,人们在日常通讯、娱乐的过程中越来越多的使用手机,但是随着手机的不断更新,人们也对手机的要求越来越高,也越来越关注手机的高层服务和各种应用。现如今随着手机市场的发展,手机也出现了各种不同的操作系统,而最流行的则是Android操作系统,它是一个开放源码,并且是以Linux为基础的操作系统,它具有开放性的特点,开发者可以在Android平台上使用最流行的Java语言来定制自己的操作系统,正是这些特点使Android成为使用最多,最受欢迎的手机平台。现阶段人们由于生活节奏快,越来越多的人们注重身体的健康问题,而跑步成为健身最简单的方法,健身软件也将逐渐成为手机上的必备软件。因此,本文将设计一款符合大众健身需求的手机应用软件。
1.2 论文研究的目的和意义
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,在众多手机智能平台上被广泛应用[1]。而Android系统最大的优势在于其开源性,这也造就了其无穷的发展潜力,开放的平台可以让任何移动终端厂商加入到到Android联盟中,也因为其开放性吸引了很多的开发者。因此,本文设计了一款基于Android平台的运动软件。
在长时间的发展过程中,Android促进了互联网产业的迅速成形,手机软件开发产业也应运而生,越来越多的人们开始关注此行业的发展,存在着庞大的用户群,因此Android在今后的发展中也将愈来愈重要,所以,我们要通过相应的技术来了解Android,了解开发Android人的先进理念以及思想,从而更加深入手机软件行业,更加能适应时代的需要[2]。
1.3 论文主要研究内容
本论文所设计的运动软件是针对广大运动用户所设计的,目的是为了方便运动用户锻炼身体,让用户在锻炼身体的过程中能够享受运动所带来的乐趣,同时还能够查看自己的运动过程及运动量。本软件的一大亮点在于百度鹰眼技术,能够在用户运动的过程中借助GPS、传感器信息,实现室内外高精度的连续轨迹追踪,并且支持查看历史轨迹。传感器的使用是本软件的另一个亮点,本软件使用了加速度传感器来实现计步功能。
1.4 论文组织结构
本文分为六个章节,主要介绍如下:
第一章是前言,主要介绍基于安卓平台的爱运动计步器的计步器的研究背景、研究的主要内容研究的目的和意义,让读者能够初步了解到本款软件的设计意义和本文的大体结构。
第二章是相关技术介绍,通过对爱运动计步器开发所用到的安卓平台进行系统开发技术简介,使读者能够更加深入的了解安卓的一些基本知识。
第三章是需求分析,本章将对软件进行可行性分析,具体将从四个方面对系统进行分析,分别是可行性分析、功能性需求分析、非功能性需求分析和面向对象分析。
第四章是系统设计,将从概要设计、详细设计和数据库设计来完成系统的基本轮廓,在详细设计中会先介绍系统的总体设计,然后介绍软件的各个功能模块,分别是计步模块、轨迹追踪模块、天气预报模块、音乐播放模块、闹铃模块、更换主题模块、平台分享模块、运动记录模块,在数据库分析中则是针对数据库和数据表进行分析,从而完成整个系统的设计。
第五章是系统实现,本章为了让用户熟悉软件的操作将对系统实现的每个模块就行详细的介绍,同时,将展示出系统的核心代码和运行截图,让用户更能直观的了解软件的运行。
第六章是测试章节,为了发现软件中的错误,需要进行一系列测试,从而满足用户的需求,测试的功能有计步模块、轨迹追踪模块、运动记录模块。
2 相关技术介绍
2.1 Android系统的组成
Android系统的底层建立在Linux系统之上,该平台由应用程序层、应用程序框架层、系统运行库层和Linux内核四层组成,它采用层次化架构的方式进行构建,这种架构方式使得层与层之间相互分离,并明确各自的分工[3]。下面分别对这四部分进行简单的介绍。
2.1.1 应用程序层
应用程序层的全部应用程序都是由Java语言编写的,Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端、SMS短信消息程序、日历、地图、浏览器,联系人管理程序等[4]。
2.1.2 应用程序框架层
Android应用程序框架层提供了大量的API供开发者使用,帮助开发者开发出更灵活、更实用、更具效率的应用程序。Android应用程序除了作为应用程序开发的基础,也是软件复用的重要手段,任何一个程序在遵守框架的预定下,都可以发布它的功能模块,然后其他应用程序就可以使用这个功能模块[5]。
2.1.3 系统运行库层
1.程序层
Android包含一套被不同组件使用的C/C++库的集合,一般来说,Android应用开发者不能直接调用这套C/C++库集,但可以通过它上面的应用程序框架来调用这些库[6]。
2.Android运行时
Android运行时有两部分组成:Android核心库集和ART,其中核心库集提供了Java语言核心库所能使用的绝大部分功能,而ART则是用户安装APP时进行预编译,将原本在程序运行时的编译动作提前到应用安装时,这样可以提升APP的运行效率[7]。Android系统架构图如图2-1所示。
图2-1 Android系统架构图
2.1.4 Linux内核层
Android的核心系统服务依赖于Linux2.6内核,如安全机制、内存管理、进程管 理、网络、硬件驱动,Linux内核也同时作为系统硬件和软件叠层之间的抽象层[8]。
2.2 Activity的生命周期
随着不同应用的运行,每个Activity都有可能从活动状态转入到非活动状态,也有可能从非活动状态转入活动状态,归纳起来,Activity大致会经历如下4种状态[9]。
1.运行状态:当前Activity位于前台,用户可见,可以获得焦点。
2.暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获得焦点。
3.停止状态:该Activity不可见,失去焦点。
4.销毁状态:该Activity结束,或Activity所在的进程被结束。
在Activity的生命周期中,如下方法被系统回调[10]。具体如图2-2所示。
1.onCreate():创建Activity时被回调,该方法只会被调用一次。
2.onStart():启动Activity时被回调。
3.onRestart():重新启动Activity时被回调。
4.onResume():恢复Activity时被回调。在onStart()方法后一定会回调onResume()。
5.onPause():暂停Activity时被回调。
6.onStop():停止Activity时被回调。
7.onDestroy():销毁Activity时被回调,该方法只会被回调一次。
图2-2 Activity的生命周期图
2.3 Android平台的搭建
2.3.1 JDK的安装
下载JDK安装包并安装JDK,按照JDK的安装提示一步一步安装,直到安装完成,这时,需要在我的电脑中配置环境变量,在这些完成之后,还需要检查环境变量配置是否成功,打开cmd窗口,输入javac,如果输出帮助信息即为配置正确,同时想要查看JDK的版本信息也可以输入java-version进行查看。
2.3.2 Eclipse的安装
1.首先需要打开官网http://www.eclipse.org/,并在官网中找到Eclipse并下载到本地。
2.将下载到本地的eclipse解压并安装,在安装生成的文件夹中找到启动程序eclipse.exe并打开即可使用。
2.3.3 Android SDK 的安装
1.在Android Developers中下载最新的Android SDK文件,下载完成之后可以解压到任意路径。
2.解压Android SDK文件,里面存在SDK Manager.exe和AVD Manager.exe两个应用程序,先运行SDK Manager.exe进行SDK下载。
3.选择最新的Android版本,然后点击Install packages,并勾选Accept All开始下载并安装所选包。
4.安装完成之后,如果你选择的包在Android SDK管理界面上会显示Installed,则表示安装成功。
2.3.4 ADT的安装
1.打开Eclipse IDE,点击菜单栏中的Help,选中Install New Software选项,之后点击Add按钮,在弹出的对话框中输入相对应的信息,在地址栏中输入http://dl-ssl.google.com/android/eclipse并确认。
2.稍等片刻,展开Developer Tools将显示许多文件,选择Developer Tools里的所有文件,然后按提示继续下一步,这里需要耐心等待一会儿。
3.完成之后,打开菜单中的ADT管理器,然后选择自己开发所需要的平台,选择完成之后,点击安装,然后在系统弹出的安装界面选择接受全部,这样就不会不断提示安装了,最后,等待安装完成即可。
2.3.5 创建DVD
打开安卓虚拟设备管理器,即 AVD Manager。点击图中的New按钮新建安卓模拟器设备[11]。在下一界面设置安卓模拟器的详细设备参数,包括内存大小等。所有设置完成后,点击OK按钮保存设置并关闭设置窗体。然后就能够启动新建的Android模拟器了,点击选中新建的的虚拟器,然后在新窗体中启动此模拟器。
3 需求分析
在软件设计中,需求分析是很重要的一个环节, 它是在系统调查的基础之上,对应用的必要性和可能性进行系统的分析和研究,而它的目的在于,在最短的时间内决定能否用最小的代价解决问题。本节将软件的功能和需求进行分析,具体将从四个方面对系统进行分析,分别是可行性分析、功能性需求分析、非功能性需求分析和面向对象分析。
3.1 可行性分析
3.1.1 经济可行性分析
随着人们生活水平和生活质量的提高,人们由于上班时间较多,身体缺乏锻炼,但是人们的健康运动意识却逐渐增强。由于平常上班时间较多,并没有太长的时间来锻炼,他们会用一些休闲时间进行锻炼,但是由于运动时间零散不利于计算自己的运动量,也就无法知道自己的健身效果。所以,在这时,拥有一款运动软件就显得非常必要了。
目前市场上的计步器或多或少都会花费一些金钱,但是在Android手机上设计的这款运动软件却不需花费任何费用,只需拥有一部Android手机即可。人们在运动的过程中只需打开软件即可轻松获取用户的运动信息,并且不受时间和地点的限制,可以充分利用人们的空闲时间帮助锻炼。
3.1.2 技术可行性分析
本款软件开发只需一台安装有Windows系统的电脑,在电脑上安装开发工具JavaSDk、AndroidSDK、ADT和Eclipse即可,因此硬件条件并不高[12]。本款软件编写主要采用Java语言,Java语言具有以下的优点:
1.面向对象:Java是一个纯的面向对象程序设计语言,面向对象技术处理发杂的应用程序会变得非常简单,远非其他方法所能比拟,同时还能节省许多代码[13]。
2.跨平台性:Java在主流操作系统中实现了虚拟机,而每个系统的虚拟机编译出的.class文件都是统一的,这个.class文件能在任意一个安装了Java虚拟机的系统平台上运行,所以Java具有跨平台性。
3.安全:从程序本身上来说,Java这种语言是安全的;从代码安全性来说,Java比较容易反编译,代码置于服务器中不能被客户直接访问;从应用程序安全性来说,Java提供了jca之类的安全框架,能给应用程序提供安全保障[14]。
4.简单易用:书写Java的源代码并不拘泥于特定的环境,可以用记事本、文本编辑器等编辑软件来实现,然后对编辑好的源文件进行编译,编译完成后即可直接运行,在之后通过调试就可以得到结果[15]。
3.1.3 操作可行分析
本软件在设计中充分考虑了用户的使用习惯,为了让用户使用舒适,在软件设计的过程中,把功能模块设计成菜单样式,这样,用户可以快速的在所有功能之间切换,具有很强的灵活性。现在,市场上许多软件存在广告,插件给用户带来许多困扰,本款软件不会包含任何插件和广告,将给用户最舒适的体验。
3.2 功能需求分析
本款软件主要包含八个功能模块,分别为:运动轨迹追踪、查看天气预报、播放本地音乐、闹钟、更换主题、计步、平台分享、运动记录。
1.运动轨迹追踪:轨迹追踪是通过百度鹰眼技术技术来实现的,指的是通过GPS定位和网络(Wi-Fi和基站)定位,获取用户当前的位置。百度鹰眼为开发者提供了一个可视化的数据管理后台,开发者在开发的过程中可以设定轨迹刷新的请求时间,之后用户在运动的过程中,运动轨迹将会在地图上以一条带颜色的线条精准的展现出来,可以方便的查看运动的范围和地点。
2.查看天气预报:天气预报不需要手动设置用户的所在地,可以自动定位运动者所在的城市,并能够查看本城市今天以及以后三天的基本天气信息,包括天气情况、气温温度、能否出行、是否适合运动等信息,同时,提供了下拉刷新功能,让用户能够时刻获得最新天气信息。
3.播放本地音乐:音乐播放器能够自动加载手机上所存储的音乐,有着开始、暂停上下曲切换功能按键,并能实现后台播放,不会影响用户观察界面,让用户在运动过程中还能享受音乐。
4.闹钟:本软件设置闹钟功能,可以让用户设置一个闹钟,用来提醒用户起床,也可以设置成运动时间闹钟,避免在用户在运动过程中遗忘一些其他重要事情,当然,用户也能开启和关闭闹钟。
5.更换主题:用户在使用本软件时,不喜欢默认的主题,那么本软件还提供了除默认之外的其他九种主题,可以让用户在这些主题中根据自己的爱好,重新更换其他的主题。
6.计步:用户设置好个人信息,在运动的过程中,开始计步,通过手机上的传感器可以得到用户的步数,然后通过用户设置的身高、体重和步长来测出用户运动的距离和消耗的热量,运动的步数、距离和消耗的热量这些运动数据都是在随着用户运动的状态而不断刷新的。
7.平台分享:用户不仅可以自己运动,还可以呼喊自己的朋友一起来运动。在用户对自己某一天的运动满意时,可以将自己的运动数据通过QQ、贴吧、微博等第三方社交软件分享出去,呼吁大家一起运动。
8.运动记录:运动记录包含两个部分,一部分是计步查询,另一部分则是历史轨迹查询。在计步查询中可以查看用户最近一周的运动数据,包括每天的步数、距离和消耗的热量,在历史轨迹查询中可以查看任何一天有记录的运动轨迹。运动记录可以让用户通过对比,知道自己的运动量相比于以前是否减少。
3.3 非功能性需求分析
3.3.1 易用性
该软件的开发采用Android软件应用风格,并且采用了Android原生组件,UI也经过精心设计,界面简单易懂,易于操作,符合大部分用户需求。用户在使用时,只需用手指在屏幕上点击、滑动即可实现功能的使用和切换。
3.3.2 可靠性
该软件的使用并不受时间、地点的限制,用户可以在任何时间使用本款软件。当系统故障或断电情况下,用户不必担心数据的丢失,只需再次启用软件,就能够正常使用,不会影响用户体验。
3.3.3 安全性
用户在使用本款软件时,完全不必担心信息的泄密,在开发完成时使用了软件加密来防止软件的破解,而且本款软件也不会再运行的过程中收集用户的信息,因此,用户可以放心使用。
3.3.4 运行环境
本软件适用于4.0版本以上的Android系统,对于以后的开发还具有很大的空间,而且软件运行速度快,给用户提供流畅感,在用户使用时,也不必担心数据流量和电量的消耗,这些都将在用户可接受范围内。
3.4 面向对象分析
面向对象采用了用例来描述系统的需求,通过用户使用阮籍你的过程,来体现系统所拥有的功能,用户与系统之间的交互既体现了系统所拥有的功能。
3.4.1 设置信息用例分析
用户想要使用计步功能需在菜单个人信息中输入自己的一些信息,用户信息包含身高、体重、性别、昵称、目标步数这几项,用户设置信息用例图如图3-1所示。