健康智能手表Android客户端的设计与实现.docx
- 文档编号:26123210
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:77
- 大小:7.09MB
健康智能手表Android客户端的设计与实现.docx
《健康智能手表Android客户端的设计与实现.docx》由会员分享,可在线阅读,更多相关《健康智能手表Android客户端的设计与实现.docx(77页珍藏版)》请在冰豆网上搜索。
健康智能手表Android客户端的设计与实现
作者姓名杨帆
学校导师姓名、职称沈沛意教授
企业导师姓名、职称王永刚高工
申请学位类别工程硕士
健康智能手表Android客户端的设计与实现
西安电子科技大学研究生学位论文
作者姓名:
杨帆
领 域:
软件工程
学位类别:
工程硕士
学校导师姓名、职称:
沈沛意教授
企业导师姓名、职称:
王永刚高工
学 院:
软件学院
提交日期:
2015年11月
西安电子科技大学
硕士学位论文
学 号 1310122671
密 级 公开
学校代码10701
分类号TP311.5
By
Yangfan
Supervisor:
ShenPeiyiProfessor
November2015
Athesissubmittedto
XIDIANUNIVERSITY
ThedesignandimplementationofhealthSmartWatchAndroidclient
forthedegreeofMaster
inSoftwareEngineering
ThesisGuideforPostgraduates
ofXIDIANUNIVERSITY
西安电子科技大学
学位论文独创性(或创新性)声明
秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。
与我一同工作的同事对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
学位论文若有不实之处,本人承担一切法律责任。
本人签名:
日期:
西安电子科技大学
关于论文使用授权的说明
本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:
研究生在校攻读学位期间论文工作的知识产权属于西安电子科技大学。
学校有权保留送交论文的复印件,允许查阅、借阅论文;学校可以公布论文的全部或部分内容,允许采用影印、缩印或其它复制手段保存论文。
同时本人保证,结合学位论文研究成果完成的论文、发明专利等成果,署名单位为西安电子科技大学。
保密的学位论文在年解密后适用本授权书。
本人签名:
导师签名:
日期:
日期:
摘要
随着智能可穿戴设备的迅速发展,智能手表作为被广泛看好的消费电子产品之一,拥有着巨大的市场。
当今各大厂商都纷纷推出了自己的智能手表,智能手表越来越走进人们的生活中。
出于对健康的关注与需求,人们对智能手表的需求大致可以分为对心率的监控、对步数的记录以及实时位置的显示等需求。
在这个情况下,研究在Android平台上的智能手表的客户端具有现实意义与价值。
本文以Android系统为平台,为智能手表用户设计并实现了一个可以检测多人生理状态信息的客户端。
主要完成了以下工作:
分析了智能手表的Android平台客户端的发展状况。
对选题研究背景与国内外现状进行分析,明确该课题使用的关键技术,开展技术调研。
深入研究了Android平台的架构、Android应用架构、常用的Android编程的代码架构等各方面的知识,为系统的设计和开发做好铺垫。
认真分析了基于智能手表的Android平台客户端的需求。
概述了该系统客户端的功能需求以及非功能需求。
其中使用UML用例图详细分析系统的功能用例,并且描述了用户在实际使用客户端必须要实现的各种操作,为之后对客户端的设计与实现打下了基础。
对该系统客户端的各项功能进行了设计。
将系统的功能大致分为登录、接收处理数据、实时地理信息、显示心率脉搏等模块。
对几个重要的功能模块给出了详尽的类图,并分析了各个类的联系以及类中的方法的功能,并且结合Android的实际开发设计了显示在屏幕的功能模块的大致布局。
对该系统客户端的各项功能进行了实现。
详尽描述了数据接收模块、数据处理模块、实时地理模块、地理围栏等功能模块的实现方法,介绍了实现以上几个重要模块的活动图。
对实现的系统进行了测试,给出了测试用例以及通过后完成的界面。
对各个模块进行了性能测试,分析了每个模块的hotspot方法。
然后进行系统的压力测试。
最后得出结论:
该客户端软件能够流畅的显示多人的生理状态信息,基本满足了用户对于智能手表的客户端的需求。
关键词:
智能手表,客户端,Android,多人监测
ABSTRACT
Withtherapiddevelopmentofsmartwearabledevices,asoneofthewidelyusedconsumerelectronicsproducts,smartwatcheshaveahugemarket.Nowadaysthemajormanufacturershavelaunchedtheirownsmartwatches,smartwatcheshavebeenintothelivesofpeople.Therearethreepartsofthedemandforthesewatches:
themonitoringoftheheartrate,thenumberofstepsandreal-timedisplayoflocation.Inthiscase,theresearchonthesmartwatchonAndroidplatformhaspracticalsignificanceandvalue.
Inthispaper,theauthordesignsandimplementsanAndroidsystemwhichcandetecttheinformationofthephysiologicalstateofthemultiusers.TheauthoranalyzesthedevelopmentofAndroidplatformforsmartwatchanddomesticandforeignpresentsituation,thewriterresearchesthearchitectureofAndroidplatform,Androidapplicationarchitectureandotheraspectsofknowledgetolayagoodfoundation.TheauthoranalyzestheneedsoftheAndroidplatformbasedonsmartwatches,thewriteroutlinesthesystemfunctionalrequirementsandnonfunctionalrequirements,whichtheUMLusecasediagramsareanalyzedindetail.Thefunctionofthesystemcanbedividedintomodules,suchaslogin,receiveandhandledata,implementthegeographicinformationanddisplaythepsychologyandsoon,somedetailedclassdiagramisgivenforseveralimportantfunctionalmodules.Theauthorimplementsthefunctionofthissystemanddescribethealgorithmforthefunctionofthegeofenceandteststhefunctionsofthedevelopedsystem,thetestisdividedintofunctionaltesting,performancetesting,stresstesting.
Thisclientsoftwareisabletodisplaytheinformationofthephysiologicalstateofthemultipersonsmoothly,basicallymeettheneedsoftheclientforthesmartwatch.
Keywords:
smartwatches,clientsoftware,Android,multi-user
插图索引
表格索引
符号对照表
符号符号名称
缩略语对照表
缩略语英文全称中文对照
ANRApplicationNotResponding应用程序无响应
XMLExtensibleMarkupLanguage可扩展标记语言
SDKSoftwareDevelopmentKit软件开发工具包
ADTAndroidDevelopmentTools安卓开发工具
DDMSDalvikDebugMonitorServiceDalvik虚拟机调试监控服务
第一章绪论
选题意义及背景
近年来智能手机、智能平板的发展程度已经趋于饱和,现在最受人们关注的移动端的设备就是智能可穿戴设备。
人们越来越对这一个新兴事物表示极大的兴趣,很多人预测智能可穿戴设备将会成为智能终端产业的下一个热点。
智能可穿戴设备是移动端设备以及医疗健康的融合点。
所以,目前在智能可穿戴设备主要是应用于医疗健康行业的手环、智能手表等,这些设备深受人们的关注。
通过佩戴这些移动端的设备[1],可以形成每一个用户的健康数据,这些数据上传到服务器后,可以形成大数据的支持。
这些大数据又是一个极大的潜力增长点[2]。
总之,随着人们生活水平的提高以及技术的发展,人们对自己的健康的水平的了解的需求越来越强,智能可穿戴设备的潜力巨大[3]。
智能可穿戴设备备受关注的另一个原因是与智能手机的完美融合。
由于Android系统的开发性,现在市场上大部分智能手表的系统是Andriod的。
这就与人们现在的手机操作系统相同,人们可以利用蓝牙设备或者其他手段与手机的客户端完美相连接,这就可以造成智能可穿戴设备的巨大应用。
有文章指出,下一个十年,每十部智能手机就有可能与一部可穿戴移动设备相连[4]。
智能可穿戴设备可以说是一个手表与智能手机的结合产品。
在一块小小的智能手表上就可以完成了之前智能手机所有的功能,比如与互联网连接使用可以将用户的体征数据实时上传到后台的服务器中,这可以给每个用户形成一个健康档案;也可以实时在线支付,以后可能会将一下网上支付的功能移植到这些可穿戴设备中,方便人们出行生活。
人们对智能可穿戴手表的功能需求是多种多样的,但是总结起来有如下几点。
1.对心率、脉搏的监测
人们在平时的佩戴上自然会考虑到对心率的监测,通过手表贴近皮肤的传感器的测定上传至服务器中,人们就可判断心率的一天的变化。
设定平时的正常范围,还可以对低于或者高于正常范围的时候对监护人报警。
2.对位置的监测
健康的因素自然少不了对地理位置的监测,如今智能手表的市场划分越来越细。
对老人、儿童的位置的监测也是人们十分关注的[5][6],并且人们需要对手表的佩戴人的位置是否出范围也是比较关注的。
3.对步数的监测
人们对健康的需求需要智能手表的传感器感知佩戴人的每天走路的步数,只要佩戴智能手表,就可以知道每天的步数以及卡路里等运动数据。
4.通话功能的支持
智能手表在某方面可以取代手机的作用,只要在手表屏幕上输入正确的号码,那么就可以通过手机的通话芯片、SIM卡进行通话。
国内外研究现状
目前国内外的智能手表层出不穷,AppleWatch支持电话,语音,回短信,天气、航班信息,地图导航,测量心率、计量步数等几十种功能。
AppleWatch的iOS客户端可以显示之前在手表中设置的特定运动类别所产生的运动信息,用户会获得相应的激励,然后在客户端也可以看到手表所测量的生理状态信息。
AppleWatch记录生理状态信息如心跳脉搏,地理位置,手表测量的热量消耗、锻炼时间和距离等[7]。
三星gears的智能手表只支持Android平台,它的优点是1.曲面屏设计:
紧贴手腕,不会产生压痕;滑动操作手感更佳;2.生态系统完整:
1000+款APP足够手表使用[8][9]。
但是三星的智能手表依旧缺点明显,与其他智能手表相似,续航时间不足,可能会发热等缺点依然需要改进。
国内市场与国外市场形成巨大的反差。
小米公司于2014年7月22日发布小米手环,该款手环主要功能是监测运动量、睡眠质量,以及闹钟功能。
目前国内智能手表的市场越来越细分,特别是针对年轻人、老人、儿童的智能手表的推出越来越多,同质化严重,主要是都对心率以及步数、地理显示等功能进行了支持。
但是市场上并未有检测多人的客户端出现,这方面依然是一个空白。
本论文的主要工作
本文主要旨在设计一个基于Android平台的智能手表客户端,该智能手表的客户端主要显示了多人的生理状态信息,并对生理信息进行对比。
该客户端要求可以承载显示多人的信息,特别是对实时地理的功能要求将多人的地理位置显示在同一个地图上。
为了完成客户端的功能目标,作者主要做了如下工作。
1.研究了嵌入式Android系统的系统架构、开发模式及重要组件的生命周期。
2.研究了Android应用开发的主流架构。
3.与项目中参与开发工作的人员进行充分的沟通、协调配合,完成了需求分析、总体设计。
4.设计并实现了该客户端的实时地理模块、地理围栏模块、心率脉搏模块以及设置中登录模块的设计与实现。
5.测试了上述模块的性能,发现基本达到性能的要求。
论文的组织结构
第一章绪论:
从选题背景出发,分析国内外关于智能手表以及其客户端的现状,描述了开发一个基于监测多人生理信息的智能手表客户端的意义。
第二章系统的关键技术:
系统介绍了Android应用的常用的代码架构设计、Android的大致情况、Android的SDK开发包的情况以及在Android开发时各个功能应用具体属于哪个模块等关键技术。
第三章基于Android平台的智能手表的客户端的需求分析:
分析了该系统的功能性需求以及非功能性需求,并从整个系统出发大致给出了几个系统的用例图,进一步明确了系统的需求,为下一步系统设计做好了铺垫。
第四章基于Android平台的智能手表的客户端的设计与实现:
通过划分模块,将系统分为几个重点的模块:
信息接收处理模块、实时地理模块、地理围栏模块、心率脉搏模块等,将重点的模块给出类图,其中对重要的类进行详尽的说明并给出流程图。
第五章基于Android平台的智能手表的客户端软件测试:
介绍了测试的基本环境,对系统设计并实现的各大显示功能模块进行了功能测试,随后进行了性能测试以及压力测试。
第六章总结与展望:
总结了作者完成的系统的大致情况,以及实现的系统客户端的优点和存在的不足。
第二章系统关键技术
Android概述
Google公司于2007年发布了一款基于Linux的移动操作系统,经过这几年的开发与维护,Android系统已经成为了世界上三大移动应用系统之一,另外两个是iOS、WindowsPhone。
Android系统的推出,一举取代了之前塞班系统在移动手机的垄断地位。
相比于塞班系统的复杂以及不兼容等缺点,Android系统拥有以下这几个优点。
开放性:
不同于其他两个主流系统,Android系统是开源的,提供给开发人员无限的想象,不但可以通过系统的码源进行各方面定制,而且给各大手机厂商更大的自由度。
Android的开放性给它带来了大量的开发人员以及设备终端厂商的注意,使得Android手机迅速在手机市场上占有大量份额[10]。
丰富的硬件:
由于Android系统的开放性,众多厂商都推出了自己的Android手机。
出于各种方面的考虑,每一个厂商推出了大量不同硬件环境的手机以及各种不同功能的其他产品,并且很多厂商甚至基于Android系统定制了自己的独特的半封闭系统,但是这些系统又可以互相沟通,构成了现在庞大复杂的Android系统[11]。
方便开发:
Android由于系统的开源性,很多人都在研究。
现在研究Android系统的资料非常多,方便入门者学习。
另一方面,谷歌公司给开发者巨大的权限以及方便的平台,除了谷歌公司自己的应用平台外。
很多第三方开发平台也可以让使用者进行使用,比如豌豆荚等。
谷歌的支持:
谷歌公司还在Android系统上搭载了自己的各个方面的应用,比如谷歌地图、Gmai、谷歌搜索等,给使用者巨大的方便。
Android系统的流行反映在系统版本的快速迭代中,现在AndroidSDK已经是Android6.0了。
所谓SDK(softwaredevelopmentkit)即安卓系统软件开发包,有了这个开发包就可以进行Android系统的开发工作了[12]。
AndroidSDK
安装AndroidSDK后,可以在安装的相关的目录下看到整个SDK开发包的结构[13]。
可以看到目录下有很多文件夹。
每个文件夹有着不同的内容,下面介绍一下常用的内容。
docs:
这里包含着AndroidSDK的开发文档,编程开发中出现的很多问题,首先需要阅读文档才能了解问题的症结,并且开发文档也是学习Android开发的重要资料。
platforms:
这里包含着SDK真正的文件。
它是按照安卓的版本排列的,每一个版本文件夹包含着该版本的SDK。
一般来讲,每一个版本文件夹都有android.jar,这是一个Android系统的Framework层开源代码[14][15];tools是每个版本的编译环境;ant是每一个版本的编译脚本。
Samples:
这里包含着谷歌公司对每个版本新功能的例子的展示,每一个例子相当于一个应用程序,以供研究者学习。
Tools:
这里包含着开发Android系统应用的一些小工具。
如:
draw9patch是一个使用Java语言编写的一个制作9.PNG格式图片的小工具;sqlite3是在PC端对SQLite数据库的一个增删改查的软件等。
Android代码架构
由于手机的限制,一般Android的代码架构并不如Java的其他程序复杂[16][17]。
但是,从开发的角度来讲,一个简洁有力、整齐优美的代码架构是十分重要的。
如图2.1是Android系统的一个比较常用的代码架构。
这个常用的代码架构大体上可以分为四个层次。
第一个层次是总包。
众做周知在移动开发中,包名是识别该系统的唯一方式。
在上传到第三方平台中时,包名是平台识别该系统的唯一方法。
在Android系统应用开发时,约定俗成的除了大小驼峰的标识符命名方法外,更重要的是包的命名方法。
图中,总包名的命名一般是:
com.公司名或个人名.系统应用名称,其他下级包名的命名一般com.系统应用名称.其他名称。
总的来说,Android系统的包名命名一般使用反域名命名规则,全部使用小写。
一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名[18]。
第二个层次分为两个部分。
图2.1中,在Launch包中包含着整个Android系统应用的部分。
Analysis包包含着对Android系统的日志的管理,主要是存储应用程序运行的日志,有些Android应用在此包中可以将系统崩溃的原因上传到后台服务器中[19]。
第三个层次主要就是Android系统应用的主体部分了。
其中Acitvity与Service是Android系统的一个组件的包名;AppWidget是存放一些可以周期更新的应用UI视图的组件包名,这一点每一个Android系统的都是固定的,包含着AppWidgetProvider等组件;util是一个工具包,这个根据开发者的意愿经常存放着一些常用的系统工具类等;db主要是对Android的数据库的一个访问类的组成包,与PC端不同,Android系统使用的本地数据库是SQLite。
这是一个轻量级的数据库,值得注意的是SQLite不支持并发访问;Bean是常见的Java语言的复用类,这是一个常见的模型层的一个包[20]。
第四层其实更加详细了:
BaseActvity.java是一个Android系统的Acitivty组件的一个定制,之后所有的Activty组件原则上都应该在其上进行复用开发,并且有时在比较复杂的情况下还应该有多层复用;MyApplication.java可以理解为系统的一个总进程,从一个不严谨的角度讲,Application代表着进程而Activty代表着系统下的线程,所以在Application中可以定义一些总的变量或者类等,这些变量和类的生命周期都超过了其他组件;Activity.java与Service.java代表着系统的这两大组件;xxxUtils.java代表着系统常用的一些工具类,比如在系统中经常遇到日期的格式处理以及日期的加减这些比较常用的计算,就可以定义一个日期工具类,包含着大量日期处理的方法,方便使用;xxxAdapter.java使用Android系统列表组件的适配类,它控制着这些列表的显示刷新等,单独把其写出来主要是为了清晰方便,否则将这个类作为Actvity的一个内部类对日后的开发有很大的隐患;xxxView.java与其他PC的前端不同,这里这个类主要是显示类型控件的自定义,当今用户不但对系统的性能提出来更大的要求,还要求好看,这个类就是对系统的视图的一个定义类。
图二.1一个常用的Android系统的代码架构
以上便是一个Android系统的比较常用的代码架构,当然这里只是列出了使用Java语言编程的部分,众所周知Android系统的Layout层是使用XML标记语言进行编程的,但是这个方面所有的应用程序大致一致就不再罗列了。
以上介绍的代码架构只是常用的一种,它的主要的分类方式主要是按照组件的类型与功能模块进行分类的,层析明晰,架构明朗。
但是也有一些缺点,因为这种架构其实比较静态,不太能很好的将APP的动态性反映出来。
在现在的平板手机中,点击一个组件可能会对其他显示的组件有影响,在这种架构中,往往Activity相关的类如监听器,线程,适配器等非常多的类,这些不好直接丢在Activity包下的,而是直接写在相应的Activity中以匿名或者内部类形式定义,这就可能造成了该组件下的类比较杂类臃肿,这就需要在类中进一步的厘清层次,并且在团队编程中有一个约定俗成的层次。
当然,作者在学习中看到很多系统将监听类单列出来作为一个包,意图是不使用Android系统组件本身各类监听器,自己直接使用广播的方式或者自定义监听类的方式,但是考虑到以后的开发,这种方式我认为是见仁见智的[21]。
Android应用程序
Android应用程序有四大组件之说。
Activity:
Activity组件主要是负责的应用程序的显示、控制等[22],虽然并不是每一个界面都对应一个Activity,但是基
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 健康 智能 手表 Android 客户端 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)