基于Android的乐跑APP设计_第1页
基于Android的乐跑APP设计_第2页
基于Android的乐跑APP设计_第3页
基于Android的乐跑APP设计_第4页
基于Android的乐跑APP设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

论文题目基于Android的乐跑APP目录TOC\o"1-3"\h\u基于Android的乐跑APP 4摘要: 4关键词:运动健身社交娱乐计步PK排行 41.乐跑APP的关键技术 61.1Android平台构件 61.2Android开发平台的技术特点 71.3AndroidStudio简介 72.乐跑APP的总体设计 82.1乐跑APP的功能设计 82.1.1乐跑主要功能设计 82.1.2乐跑APP界面的设计 112.2乐跑APP数据库的设计 132.2.1乐跑APP数据之间的关系 132.2.2数据库表的设计 133.乐跑APP的详细设计 173.1登陆和目标模块 173.1.1登陆/注册模块 173.1.2设置每日目标功能实现 183.2添加运动模块 193.3跑步方式 213.4动态模块 223.4.1小组动态 223.4.2动态模块功能实现 243.4.3个人动态模块 253.4.4判断是否能够PK 273.4.5动态的更新和提交 284.乐跑APP的测试 294.1引导页模考测试用例 294.2测试过程 304.3乐跑APP运行的测试 314.3.1乐跑APP兼容性测试结果 314.3.2乐跑APP兼容性测试总结 314.3.3乐跑APP性能测试的结果 325.结论 33参考文献 35致谢 36基于Android的乐跑APP摘要:随着社会的进步,人们生活水平的提高。人们渐渐的开始重视运动健身提高身体基本素质,塑造良好身体形态。跑步锻炼是人们最常采用的一种身体锻炼方式,这主要是因为跑步技术要求简单,无需特殊的场地、服装或器械。无论在运动场上或在马路上,甚至在田野间、树林都可以。随着互联网科技的发展和全民健身计划的提出,休闲体育意识逐渐深入人心。全民健身成为了一种潮流。应用市场中各类运动健身APP如雨后春笋般出现。跑步这一运动项目已经成为新时代的热门运动方式。乐跑APP可以激励在生活中的运动量普遍偏少,身体素质较低的人群多运动。乐跑APP可以让人们每天发表自己跑的步数,运动量,消耗的卡路里记录到自己的动态之中。乐跑APP的主要功能是计算用户每天的运动量进行记录和帮助用户规划每日的运动目标和计划。除此之外,乐跑APP中的动态模块,让用户随时随地发表自己的运动动态和自己的一些想法。乐跑APP的主要功能是是计算步数,另外还有动态模块,评论模块,PK排行模块,导航模块,地图轨迹模块。关键词:运动健身社交娱乐计步PK排行现在人们的运动量很少,所以身体素质普遍偏低。做一款特色的记步类APP,可以激励他们每天多运动,获得健康强壮的身体。目前国内外的跑步软件仅仅是记步的功能,功能比较单一,而且没有一些特色的模块来吸引用户的注意力,让人们喜欢上运动。所以做一款比较有特色的跑步软件有很大的发展前景。根据现在的国内外现状一些APP的不足的地方,添加了一些新的功能。例如PK,排行,动态,目标,自定义功能,做一款记步类APP可以激励他们每天多运动。用户可以发表自己每天跑的步数,运动量,消耗的卡路里到动态。软件添加了一个排行榜功能,记录跑步者名次。用户可以发表动态,查看别人的动态,关注其他用户。可以设置自己每天的跑步计划。软件可以记录用户每天跑的步数,消耗的能量。用户可以用自己的数据和其他好友PK。在科技发展迅速的今天,使用手机是比较普遍现象,做一款运动社交类的APP可以帮助人们在生活中能够记录自己运动的点点滴滴。而且能够激发自己运动的兴趣,并且可以分享自己的运动,从而可以快乐的运动,让人们的身体更加强壮。可以帮助人们制定一个运动目标,运动计划,让人们更好的分配运动的时间。系统总体功能主要实现以下几点:(1)主页模块:记录今日当前的运动量,分为运动的距离公里数,消耗的热量和运动的活跃时间,并设有计步器同步所运动的步数。(2)我的运动模块:可通过添加今日的运动目标,包括今日的体重,运动量和所需食物均可记录。(3)排行榜模块:分为运动排行和PK排行,通过每记录的记步数与其他人进行PK获得排名,运动排行显示总距离进行排名,PK排行显示用户进行PK所赢的局数,局数越高排名越高。(4)好友模块:用户添加一些有共同兴趣爱好的好友,进行交流和沟通。而且可以通过好友昵称,在搜索框中进行好友搜索,添加关注。(5)论坛模块:分为减肥瘦身、饮食搭配、饮食搭配、美容护肤、情感交流等话题,用户可以通过登录来选择话题畅所欲言。(6)设置模块:该页面分为天气状况、个人信息目标修改、我的动态、软件介绍、版本更新和退出当前登录。(7)导航模块:主要分为骑行模块、慢跑模块、步行模块,会在地图上显示当前的运动轨迹。在国内跑步类APP软件开始逐步发展。对于现在一些应用市场中各类运动类APP如雨后春笋一般出现。跑步这一项运动已经成为当今时代比较热门的运动方式,这一运动的发展以及广泛的传播展示了当今时代社会文化的新面貌,一个新起的社会运动群体。目前在Android应用中,和乐跑相关的应用有很多,最出名的几个是咕咚,悦跑圈,乐动力。但是,这几款软件都是面向大众的,乐跑中有几个模块是针对青少年而设计的。例如,可以发表自己每天跑的步数,运动量,消耗的卡路里到动态。软件添加了一个排行榜功能,记录跑步者名次。1.乐跑APP的关键技术1.1Android平台构件Android系统中主要采用了分层的设计结构,和当前主流的计算机操作系统类似。都是从低至高可分为LINUX核心层和运行库、框架层、程序层[1]。Android中核心的API框架是对开发人员都是透明开发的,所有的Android开发者都可以根据自己的需要进行调用。Android系统中的设计在很大程度上简化了组件之间互相联系,让组件之间的调用更加的轻便、灵活,任何组件在遵循架构安全的前提下可访问、使用任一组件[2]。图2.1显示了Android操作系统中主要组成部分:图2.1系统架构图以下是系统架构的详细介绍:(1)应用程序:在Android中一些核心的代码会和程序的安装包一起发布。在发布的时候应用程序先被打包成APK应用,然后通过Android系统就能打开格式文件。(2)应用程序框架:开发人员在遵循安全规范的基础上可以完全使用系统所提供的API框架,简化了组件的使用,同时也使用户可以方便的替换程序组件[3]。(3)系统运行库:在Android的核心库中主要用java语言编写来实现的,所以其中包含了许多Java编程语言的优点。(4)Linux内核:Android的核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型,Linux内核也同时作为硬件和软件栈之间的抽象层[4]。1.2Android开发平台的技术特点Android是以Linux为内核,以软件堆为层架构的开源平台,每个Android的应用都是由若干个组件构成,最基本的是Activity、Service、Broadcastreceiver、Contentprovider四个组件,每个Android应用程序中,各个组件相互调用,搭配使用,就可以用来实现Android应用的功能。[5]在Android中SQLITE数据库。SQLITE是一款符合常规数据库规范,使用简单,占据内存少的轻量级数据库[6]。Java是Android开发的基础语言。在开发完成之后,Java编译之后产生的字节码会和程序所需要的其他数据或资源[7]。通过appt工具绑定到一起,封装成Android系统可识别的APK文件,这时应用程序的开发就完成了[8]。可以这么说,每个基于Android系统的应用程序都是独立存活于自己的世界中:(1)每一个Android程序都拥有自己独立的Linux进程。当应用程序执行到某些函数是,Android系统会为其开启一条进程;而当该函数执行完毕时,系统会释放掉该进程资源[9]。(2)Android系统会为应用中的每个进程单独分布独立的Java虚拟机,也就是说,Android的应用程序与其他应用程序是相互独立的[10]。这样也减低了程序对环境的依赖性[11]。(3)Android的每一个应用程序都会被系统分配唯一的Linux用户ID,通过设置权限许可,应用程序的文件将只对该用户可见,只对该应用程序本身可见,也可通过导入其他程序,使其可见[12]。1.3AndroidStudio简介AndroidStudio这款开发工具在2013年Google大会上被首次公布,AndroidStudio的问世使开发人员的开发效率得到了大幅度的提高。相比较于Eclipse,AndroidStudio在安卓手机开发方面增加修正了更多的功能[13]。分辨率问题是Android应用开发中不得不面对的难题。使用AndroidStudio可以方便的模拟不同分辨率下,不同设备上软件的布局、样式及其他性能方面的软件运行情况,因此也就更易于开发人员调试不同分辨率设备的兼容性[14]。AndroidStudio提供的BetaTesting、多语言开发环境及收入记录功能,提高了开发人员的开发效率,也大大减轻了软件测试的压力[15]。2.乐跑APP的总体设计 2.1乐跑APP的功能设计乐跑APP主要是面向热爱运动健身的大众人群,通过记录,计划,规划,激发用户的运动兴趣,让人们快乐的运动。2.1.1乐跑主要功能设计乐跑APP主要包括记步模块,动态模块,运动模块,其对应的功能有:(1)记步模块的功能,主要包括有距离模块,热量模块,活跃度你就,步数模块,日期模块,时间模块,如图3.1所示。距离计算距离计算距离模块距离模块距离换算距离换算热量计算热量计算热量模块热量换算热量模块热量换算活跃度模块活跃度统计活跃度模块活跃度统计记步模块时间模块时间计算记步模块时间模块时间计算时间换算时间换算日期模块日期计算日期模块日期计算目标模块目标计划目标模块目标计划图3.1记步模块功能设计(2)运动模块中,用户可以通过地图导航进行绘制轨迹,选择运动方式进行记步,运动结束后会自动提交运动数据,主要包含导航模块,设置模块,运动方式模块,用户反馈模块,用户信息模块,如图3.2所示。

速度统计 速度统计时间统计时间统计卡路里统计卡路里统计导航模块路程轨迹导航模块路程轨迹提交运动提交运动查看运动查看运动修改目标修改目标个人信息修改 个人信息修改运动资料运动资料设置模块我的动态设置模块我的动态检查更新检查更新运动模块软件介绍运动模块软件介绍PK竞技PK竞技步行模式步行模式骑行模式骑行模式运动方式运动方式慢跑模式慢跑模式快跑模式快跑模式反馈信息反馈信息用户反馈 用户反馈添加反馈添加反馈登陆登陆用户信息注册用户信息注册图3.2管理员主要功能设计(3)动态模块中用户可以发表自己的运动动态,查看别人的运动动态,评论别人的运动动态,交流运动经验,主要包含发表模块,点赞模块,评论模块,收藏模块,好友模块,如图3.3所示。动态查看动态查看发表模块发表模块动态修改动态修改点赞模块用户点赞点赞模块用户点赞用户评论用户评论评论模块用户回复动态模块评论模块用户回复动态模块收藏模块用户收藏 收藏模块用户收藏添加好友好友模块添加好友好友模块图3.3动态模块主要功能设计2.1.2乐跑APP界面的设计(1)在程序的主界面中包括,记步数模块,小组模块,发现模块,设置模块。如图3.4所示。图3.4主界面(2)在程序的小组界面中包括,情感交流模块,饮食搭配模块,减肥瘦身模块,跑步健身模块,低卡饮食模块,美容护肤模块,骑车旅行模块,畅所欲言模块。如图3.5所示。图3.5小组模块(3)在程序的设置界面中包括,检测跟新模块,修改个人信息模块,软件介绍模块,我的动态模块,手动提交模块,修改个人目标模块,退出登录模块。如图3.6所示。图3.6设置模块(4)在程序的发现界面中包括PK竞技场模块,排行榜模块,查看运动模块,查找好友模块,我的排名模块,我的运动模块,我的好友模块,我的战绩模块。如图3.7所示。图3.7发现模块2.2乐跑APP数据库的设计2.2.1乐跑APP数据之间的关系在数据库中所包含的主要表包括:用户模块实体表,评论模块实体表,文章模块实体表,点赞模块实体表,好友模块实体表,PK模块实体表,动态模块实体表,小组模块实体表,话题模块实体表,运动数据模块实体表。数据之间的关系:(1)当初次登陆进行注册,注册成功以后就会在User表中添加一条数据,注册的时候在EditView中填写Name,Password,Mail等信息。用户点击注册的提交按钮,就会在User表单中新增加一条用户信息。注册成功后,便会弹出注册成功的信息;(2)发表的动态,可以是仅文字类型的动态,也可以是图片和文字混合的动态。用户在发布动态以后,就会在Dynamic表中添加一条新的数据;(3)发表动态以后,其他人可以对这条动态进行评论。在Comment表中会存储用户的评论信息。其中评论信息表中包括内容字段,时间字段,评论用户字段等相关的字段信息。(4)在小组表Group中,可以根据小组中的话题发表自己的意见和看法,小组表中包含标题字段,内容字段,时间字段,ID字段;(5)运动信息SportInfo表,主要用于存储运动详情的数据。表中包括速度字段,运动模式字段,热量字段,时间字段,ID字段;(6)在PK表中主要包含,排行字段,用户信息字段,时间字段,PK值字段,ID字段。2.2.2数据库表的设计(1)User表(用户表)主要存放用户的相关信息,其中关系如表3.1所示:表3.1用户表(User)字段名称类型长度允许空值主键说明IDVARCHAR50否是用户IDUserNameVARCHAR50否否用户昵称PassWordVARCHAR50否否用户密码PhoneVARCHAR30是否用户手机EmailVARCHAR50是否用户邮箱CreateTimeDATE50是是创建时间(2)Group表(小组表)主要用于存放不同讨论的话题的表,如表3.2所示:表3.2小组表(Group)字段名称类型长度允许空值主键说明IDVARCHAR50否是小组IDGroupIconVARCHAR100是否小组图标GroupTypeVARCHAR10是否小组类型GroupNameVARCHAR50是否小组名字GroupContentVARCHAR200是否小组内容GroupGeyanVARCHAR200是否小组格言CreateTimeDATE50是否创建日期(3)Commit表(评论表)用于存放评论的表,其中表的字段如表3.3所示;表3.3评论表(Commit)字段名称类型长度允许空值主键说明IDVARCHAR50否是评论IDUsersVARCHAR50是否评论用户TopicVARCHAR200是否评论话题CommentVARCHAR1000是否评论内容CreateTimeDATE50是否创建时间(4)Person表(好友表)主要用于存放用户添加的好友信息,如表3.4所示:表3.4好友表(Pserson)字段名称类型长度允许空值主键说明IDVARCHAR50否是好友IDUserNameVARCHAR50是否好友名字HobbyVARCHAR50是否用户爱好CreateTimeDATE50是否创建时间(5)Dynamic表(动态表)主要用于存放用户发表的动态信息,如表3.5所示:表3.5动态表(Dynamic)字段名称类型长度允许空值主键说明IDVARCHAR50否是动态idContentVARCHAR200是否动态内容TitleVARCHAR200是否动态标题BiaotiVARCHAR400是否副标题CommitVARCHAR400是否动态评论CreateTimeDATE50是否创建时间(6)SportInfo表(运动信息表)用于用户的运动信息的表,其中的关系字段如表3.6所示:表3.6运动信息表(SportInfo)字段名称类型宽度允许空值主键说明IDVARCHAR50否是运动IDSport_wayVARCHAR100是否运动方式Sport_aimCHAR1是否运动目标Sport_timeVARCHAR20是否运动时间CreateTimeDATE50是否创建时间(7)PK_DoMain表(PK信息表),是用于存放用户PK信息的表,其中表的字段如表3.7所示:表3.7PK信息表(PK_DoMain)字段名称类型宽度允许空值主键说明IDVARCHAR50否是PK的IDPK_numberVARCHAR200是否PK值PK_infoVARCHAR200是否PK信息CreateTimeDATE50是否创建时间(8)Pedometer表(记步表)用于存放用户每日的步数和每日的运动计划,其中表的字段如表3.8所示:表3.8记步表(Pedometer)字段名称类型宽度允许空值主键说明IDVARCHAR50否是记步IDPedo_nmberVARCHAR200是否记步数值Pedo_wayVARCHAR3是否记步方式Pedo_contentVARCHAR2是否记步内容CreateTimeDATE50是否创建时间(9)Ranking(排行榜表)用于存放用户的排行信息,其中的字段关系如图3.9所示:表3.9排行榜表(Ranking)字段名称类型宽度允许空值主键说明IDVARCHAR50否是排行榜IDRun_titleVARCHAR100否是排行榜标题Run_contentVARCHAR200是否排行榜内容Run_numberVARCHAR200是否排行榜数值Run_userVARCHAR50否是排行榜用户CreateTimeDATE50是否创建时间(10)Trticle表(文章表)用于存放管理员发表的文章信息,其中表中的字段关系如表3.10所示:表3.10文章表(Trticle)字段名称类型宽度允许空值主键说明IDVARCHAR50否是文章IDTitleVARCHAR200否否文章标题SubtitleVARCHAR200否否文章副标题SignatureVARCHAR100是否文章简介CommentsDATE500是否文章内容UserCHAR50是否发布用户replyInfoCHAR200是否回复信息CreateTimeDATE50是否创建时间3.乐跑APP的详细设计3.1登陆和目标模块3.1.1登陆/注册模块用户第一次登陆的时候需要注册一个账号,或者使用第三方登录的方法。在登陆界面中获取有两个数据参数,用户名和密码(密码采用MD5加密技术)。点击注册账号以后进入注册界面(注册界面中有三个参数,分别是用户名,用户密码,用户昵称),点击注册以后便云服务器User表单中添加一条用户的数据。注册完成以后,便可登陆。图4.1登陆界面图4.2注册界面第三方登陆功能是调用的第三方的API接口,通过在第三方开发平台上注册开发者以后,获得APPID和APPKEY。然后,调用第三方的接口,获取到用户的昵称和头像信息。程序的一个子线程进行自动注册,注册完成以后便可以直接进入登陆的界面。普通登陆使用的的是Bmob云服务器,用户在输入账号和密码以后,点击注册按钮以后,便将数据通过Get方式将数据上传到云服务器中。在注册的同时也是做一下判断,账号,密码的格式是否符合,在云服务其中是否已经有该昵称等等。/***登陆初始化核心代码**/privatevoidLoginInit(){ivQQ=(ImageView)findViewById(R.id.ivQQ);ivWeChat=(ImageView)findViewById(R.id.ivWeChat);ivSinaWeibo=(ImageView)findViewById(R.id.ivSinaWeibo);ivPortrait=(ImageView)findViewById(R.id.iv_icon);tvName=(TextView)findViewById(R.id.tv_name);videoview=(CustomVideoView)findViewById(R.id.videoview);edt_user=(EditText)findViewById(R.id.edt_user);edt_pass=(EditText)findViewById(R.id.edt_pass);btn_login=(Button)findViewById(R.id.btn_login);btn_register=(TextView)findViewById(R.id.btn_register);probation=(TextView)findViewById(R.bation);probation=(TextView)findViewById(R.bation);currentMonth=String.valueOf(month_c);currentDay=String.valueOf(sys_day);currentWeek=String.valueOf(week_c);getWeek(Integer.parseInt(currentYear),Integer.parseInt(currentMonth),Integer.parseInt(currentWeek));}3.1.2设置每日目标功能实现设置每日目标,当第一次安装上应用的时候,导航页会提示设置自己的每日目标,这个目标也可以在设置界面里面修改。每日的目标计划,便于激励用户更好的运动。图4.3目标设置/***目标模块核心代码**/caseR.id.gxs_next:SPUtils.put(SetAim.this,"max",pb2.getBushuMax());info.setMax(pb2.getBushuMax());Userinfoold=DataSupport.find(Userinfo.class,1);if(old==null){SPUtils.put(SetAim.this,ConstantValues.isFirstIn,false);doubleibm=info.getWeight()/Math.pow((double)info.getHeight()/100,2);info.setIbm(ibm);info.saveThrows();//保存Intentintent=newIntent(SetAim.this,LoginActivity.class);startActivity(intent);}else{//修改}3.2添加运动模块在添加运动模块中,可以添加活动到后台。添加活动的目的的的卢自己生活中运动的点点滴滴,帮你更好的记录自己的生活。在添加运动的时候,可以上传自己的体重,这样方便观察自己的体重的变化波动。上传自己的信息的同时,可以发布自己此时想法,和图片信息,来记录自己在生活中快乐的运动。添加运动模块中,会记录每日发表的运动信息,用户可以后期的时候,查看自己的动态。添加运动模块中主要采用了一个自定义日期的算法。图4.4添加活动图4.5添加界面/***运动模块的核心代码**/publicLookSport_adapter(Contextcontext,Resourcesrs,intyear_c,intmonth_c,intweek_c,intweek_num,intdefault_postion,booleanisStart){this.default_postion=default_postion;this.week_c=week_c;this.isStart=isStart;lastDayOfWeek=DateUtils.getWeekDayOfLastMonth(year_c,month_c,currentYear=String.valueOf(year_c);;currentMonth=String.valueOf(month_c);currentDay=String.valueOf(sys_day);currentWeek=String.valueOf(week_c);getWeek(Integer.parseInt(currentYear),Integer.parseInt(currentMonth),Integer.parseInt(currentWeek));}3.3跑步方式在导航记步模块中分为3中运动方式,包括步行,骑车,慢跑三种跑步方式。导航采用的是百度地图API,以用户开始跑步的地方为始点,在跑步的过程,能够绘制轨迹。经过GPS模块获取的经纬度数据在百度地图上绘制轨迹,能够将经纬度转换成百度地图坐标标准的GPS经纬度坐标直接在地图上绘制的时候会有偏移,将坐标再转换成轨迹。图4.6运动方式/***运动方式模块的核心代码**/If(!TextUtils.isEmpty(items.get(position).getPhoto1())){v.weigth_lay.setVisibility(View.GONE);}//3运动if(items.get(position).getItems()!=null&&items.get(position).getItems().size()>0){v.sport_lay.setVisibility(View.VISIBLE);v.item_value.setText(items.get(position).getItems().size()+"");doublesum=0.0;currentYear=String.valueOf(year_c);;currentMonth=String.valueOf(month_c);for(Sport_itemi:items.get(position).currentWeek=String.valueOf(week_c);getItems()){sum+=i.getQianka();}}3.4动态模块3.4.1小组动态动态模块中,通过ListView将多个主题展示在小组界面中。动态模块中有很多主题,例如,饮食搭配,畅所欲言,骑行旅行,减配瘦身,运动知识,低卡饮食,跑步健身等等。用户可以自己发表感兴趣的主题,也可以去主题区和其他用户一起畅所欲言的讨论。进入主题里面用户可以发表自己的想法,其他的用户可以相互的评论。用户不仅可以在小组主题里面发表动态,而且可以发布自己的动态,好友可以进行查看或者是进行点赞。图4.7小组界面图4.8畅所欲言使用RecyclerView实现列表效果,其Item由一个TextView和一个ImageView和ListView组成。用户在发表动态的时候可以选择图文发表或者是文字发表方式。用户点击提交以后,变获取用户输入的信息上次到服务器中,首先想到的是使用RecyclerView提供的方法,getChildAt(position),一一获取对应的子view的信息,通过recyclerView.getChildCount()方法来实现。/***记步圈方法的初始化**/privatevoidselectDate(){//查找的组数据BmobQuery<group>query=newBmobQuery<group>();query.order("groupType");query.findObjects(getActivity(),newFindListener<group>(){@OverridepublicvoidonSuccess(List<group>lists){if(lists!=null){groups.clear();groups.addAll(lists);gridadapter=newGroup_gridAdapter(groups,getActivity());group_view.setAdapter(gridadapter);}}@OverridepublicvoidonError(intarg0,Stringarg1){Toast.makeText(getActivity(),"出错了",Toast.LENGTH_LONG).show();}});//查找健康知识BmobQuery<health_domain>query2=newBmobQuery<health_domain>();query2.findObjects(getActivity(),newFindListener<health_domain>(){@OverridepublicvoidonSuccess(List<health_domain>lists){if(lists!=null){domains.clear();domains.addAll(lists);group_name.setText("运动小知识");BmobQuery<group>query=newBmobQuery<group>();query.order("groupType");health_adapter=newHealth_adapter(domains,getActivity());listView.setAdapter(health_adapter);}3.4.2动态模块功能实现在动态模块功能中,用户可以发布自己的动态,查看动态,编辑动态,删除动态。其他用户也可以评论被别人的动态,实现良好用户交互相关。图4.9低卡饮食图4.10情减肥瘦身/***动态数据的初始化的核心代码**/privatevoidinitDate(){//加载动态和记录BmobQuery<Topic>query=newBmobQuery<Topic>();query.order("-createdAt");BmobDatedate=newBmobDate(newDate(System.currentTimeMillis()));query.addWhereLessThan("createdAt",date);query.addWhereEqualTo("author",user);query.include("author");query.findObjects(context,newFindListener<Topic>(){@OverridepublicvoidonSuccess(finalList<Topic>lists){topics.addAll(lists);adapter=newLookTopic_adapter(context,topics);listView.setAdapter(adapter);if(user.getObjectId().equals(BmobUser.getCurrentUser(AttentionInfoActivity.this)}}3.4.3个人动态模块个人中心模块,能够看看自己的动态,也可以查看好友的动态,除了动态以外,还可以通过时间轴查看自己的运动详情。其中自定义时间轴中,设计每个列表项的布局在item_trace.xml中。图4.11个人动态图4.12个人记录/***动态模块核心代码**/ok.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){intposition1=n1.getValue();intposition2=n2.getValue();Stringposition1_str=n1.getDisplayedValues()[position1];position1=Integer.parseInt(position1_str.substring(0,Stringposition2_str=n2.getDisplayedValues()[position2];position2=Integer.parseInt(position2_str.substring(position2_str.lastIndexOf("分钟")));inttime_sum=position1*60+position2;doubleqianka=list.get(position).getHeat();doubleqianka_sum;//设置时间为0时,需要改变列表项的图标if(time_sum==0){//更改数据,设置为记录图标//判断是否选择过,选择过则清空之if(list.get(position).getItem()!=null){Sport_itemitem=list.get(position).getItem();list.get(position).setItem(null);//改变activity的布局if(onSubmitClickListener!=null){//回调activity的方法,null则减一onSubmitClickListener.onSubmitListener(item,false);}}}else{//设置空qianka_sum=(double)time_sum/60*qianka;DecimalFormatfnum=newDecimalFormat("0.00");Stringqianka_str=fnum.format(qianka_sum);qianka_sum=Double.parseDouble(qianka_str);//更改数据,设置单项的数值Sport_itemitem=newSport_item();item.setPosition(position);item.setQianka_value(qianka);item.setName(list.get(position).getMode());item.setQianka_value(qianka);item.setHour(position1);item.setMinute(position2);item.setQianka(qianka_sum);item.setType(1);//列表项展示list.get(position).setItem(item);//改变activity的布局if(onSubmitClickListener!=null){//回调activity的方法,为其提供数据onSubmitClickListener.onSubmitListener(item,true);}}//刷新adapter.notifyDataSetChanged();dialog.dismiss();}});3.4.4判断是否能够PK在PK的时候,判断一下,是否为好友,加入已经是好友,就可以进行PK。若两个人不是好友,可以先添加成为好友,然后在进行PK。图4.13好友PK图4.14附近的人PK/***PK核心代码**/Viewv=View.inflate(getActivity(),R.layout.dialog_pk_result,null);dialog=CommonUtils.getAlertDialog(getActivity(),v);TextViewpk_result=(TextView)v.findViewById(R.id.pk_result);Buttonbtn=(Button)v.findViewById(R.id.pk_btndialog);intstr_result=0;//结果if(msg.what==1){//胜利pk_result.setText("你赢了");str_result=1;}3.4.5动态的更新和提交动态的更新和提交中,用户可以先编辑好所有发布的信息,点击提交按钮,然后会将数据上传到服务器中。客户端本地刷新,便会更新动态的信息。图4.15发表动态/***动态模块的核心代码**/privatevoidinitEvent(){//动态status.setOnClickListener(newOnClickListener(){//查看战绩look_success.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){Viewlayout=View.inflate(AttentionInfoActivity.this,R.layout.dialog_score,null);getAlertDialog(AttentionInfoActivity.this,layout);}4.乐跑APP的测试在对程序进行详细设计之后,通过AndriodStudio将程序编译成APK文件,并安装到手机上进行测试。4.1引导页模考测试用例通过软件测试流程,程序在首次打开乐跑APP的时候,会进行一下用户数据的收集。首先第一个导航Fragment界面会出现两张图片,让用户选择性别,如图5.1所示。第二个导航Fragment会让用户选择自己的身高(通过一个高度的量尺)如图5.3所示,第三个导航Fragment会让用户选择自己的体重(通过一个体重的量尺)如图5.2所示,第四个导航Fragment会让用户选择自己的年龄(通过一个时间的量尺)如图5.4所示。第五个导航Fragment会让用户现在自己的每日跑步目标。只有在首次登陆的时候才会出现导航界面,会出现引导界面。在第二次以后登陆的时候,都会跳过引导界面。图5.1引导界面图5.2引导界面图5.3引导界面图5.4引导界面若不是第一次登陆的情况是,通过欢迎界面如图5.5所示,直接跳转到登陆界面中,如图5.6所示。图5.5引导界面图5.6引导界面4.2测试过程打开AndriodStudio,选择乐跑APP的项目,开始进行编译。等环境初始化以后,将编译好的乐跑APK文件安装到手机上,打开运行测试。程序都是调试出来的,测试的目的是为了完善软件,优化性能。在软件测试阶段,本着严格认真的态度对软件进行了以下测试工作。乐跑测试内容如下:需求测试:对比需求分析文档和程序说明文档,看现在实现的功能是否和需求分析文档中的一致。模块测试:对程序的各个模块逐一测试,包括界面兼容性测试、程序处理压力测试、逻辑测试。尽可能发现程序所存在的问题。接口测试:对各功能模块之间的衔接进行测试,看是否有衔接不稳定的情况。集成测试:根据用户的需求习惯,将程序的各个模块串联成一个完整的流程进行集成测试。分析用户的各种操作可能,尽可能发现系统漏洞。4.3乐跑APP运行的测试4.3.1乐跑APP兼容性测试结果兼容性测试是指测试软件在特定的硬件产台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能很好地运行的测试。通过大量真机实验的结果,如图5.7所示。图5.7兼容性测试4.3.2乐跑APP兼容性测试总结通过对乐跑APP进行了机型的测试。首先选择多款目前比较流向Android机型进项测试。具体的详情信息如图5.9所示。图5.8兼容总览一图5.9兼容总览二4.3.3乐跑APP性能测试的结果性能测试是手机应用测试中很重要的一个模块。一般情况下,性能测试主要关注的指标有:CPU、内存占用、电量消耗、GPU、FPS、网络流量、电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论