基于百度SDK的在线跑APP的设计与实现

2019-11-17 04:05苏明勇刘平
电脑知识与技术 2019年26期

苏明勇 刘平

摘要:随着生活质量的提高,人们在满足日常需求的同时,更加注重身体的健康发展。基于百度SDK的在线跑APP,其目的在于提高人们的运动兴趣,激励人们参与更多的跑步锻炼。该软件分为用户登录模块和跑步功能模块,用户可以通过手机号码登录,APP提供GPS定位、配速显示、语音提示、约跑信息发布、约跑成果分享等功能,该APP在一定程度上可以提高人的运动兴趣,改善当前同类软件的不足之处。

关键词:百度SDK;在线跑;GPS;数据库

中图分类号:TP315        文献标识码:A

文章编号:1009-3044(2019)26-0078-02

开放科学(资源服务)标识码(OSID):

1 引言

当前人们的生活水平随着经济发展和社会的进步不断提高,跑步锻炼逐渐也成为日常生活的重要组成部分,相关APP市场竞争也越发激烈[1],这些健身运动APP贡献了当年接近一半的健身市场消费额。通过跑步可以增强自己的抵抗力,使自己的身体素质得到进一步提高,与家人朋友一起跑步也是目前比较普遍的运动方式。传统意义上的约跑往往仅限于与在自己附近周边的朋友约跑,这种方式在很大的程度上受限于时间、距离、环境条件等因素的限制,这些状况不仅减少了人们投入运动的热情,还有可能会对朋友之间的友谊造成一定程度的影响。鉴于以上情况,与家人朋友能够一起进行线上跑步,减少不必要的影响因素,将会是以后跑步运动软件的一个发展方向。

基于百度SDK的在线跑APP,结合其他在线跑步软件的功能不足进行改进提高,它可以利用手机在线发布约跑消息,邀约别人一起跑步,并且可以根据自身在线跑步的实际情况及时反馈信息,使家人朋友不受地域限制可以一起跑步的需求得到了满足,能够快速地规定跑步时间与路程,通过网络发布,给运动创造了一个比较适合的氛围。

基于百度SDK的在线跑应用软件通常用于人们在解决自身跑步运动的需求时,能够提供与他人一起进行线上运动,从而促进人们的运动积极性。目前在国内外主要存在有悦跑圈[2]、咕咚[3]等比较优秀的运动类软件。总体来说,现有运行软件在一些基本功能上是完善的,基本采用了社会共享和游戏化元素,如奖金、排名等。但是一旦跑步的行为被非常强烈的外部奖励机制所触发,用户自身的内在动机就会被稀释,而这种外部奖励的效果往往会很快减弱。因此,关键还是要从用户内部激发运动的需求,才能有效地提升运动的积极性。

2 系统采用的开发技术

本软件采用Java[5]语言,基于MVC模式开发,数据库采用MySQL及SQLite。APP端开发环境基于Mac OS操作系统,使用Android Studio,运用Activity、Service、LocalBroadcastManager、BroadcastReceiver,ContentProvider和Handler消息机制进行设计实现,服务器端使用IntelliJ IDEA、DataGrip工具开发。

本APP中还使用了TTS(Text To Speech)技术,该技术目前广泛应用于语音助手,地图导航,智能音箱等场景,支持中文英文发音;百度地图SDK,该技术可以运用于网站、移动设备以及服务器等中,能够实现基本地图的展现、GPS定位、搜索、路线规划显示等功能。

3 系统分析

经过对现有同类软件的分析,同时通过朋友圈对APP功能的收集整理,确定APP应提供以下功能:一个是用户子系统,另外一个是功能子系统。用户子系统功能为实现手机登录,成功登录后可设置账号、密码及昵称等基本数据,还可查阅个人信息,好友动态,跑步记录等;功能子系统包括GPS定位、语音提示、配速显示、运动数据显示、约跑信息发布、约跑成果分享和好友列表显示等功能。同时APP在安全性方面还应考虑使用者在未注册、未进行登录或是登录失败时,不能强行使用软件的相關功能;另外,为了提高软件的安全性,软件在长期未使用时需要重新登录。

4 系统设计

4.1 系统总体设计

系统包括以下模块:

4.2 详细设计

4.2.1 数据库设计

系统数据库结构如图所示:

4.2.2 系统类设计

1)  实体类设计

管理员类(User)作用是存储管理员信息字段并通过DBOpenHelper映射到数据库,字段有编号、邮箱、姓名、密码等,此外给这些字段对应的get和set方法,以便用对象来调用。好友信息类(Friend Information)作用是存储已有的好友的信息,如好友id、好友姓名、好友编号等。用户类(User)作用是存储用户的基本信息,如性别、电话、年龄、邮箱等信息。任务类(Task)其作用是存储用户发起的活动信息,如跑步时间、跑步距离。路线类(Trace)其作用是存储用户参与活动时的信息,如时间、经纬度坐标、速度。

2)  DAO 类设计

DAO 类负责用户对数据库的增删改查等操作,使用时只需创建该类的实例,然后调用DAO类中的方法进行相关的操作。包含的接口类有:FriendDao 类,MessageDao 类,PhotoDao类,PostDao 类,SearchUserDao 类,UserDao 类。

FriendDao 类的功能有:获得好友列表,判断是否是自己的好友,添加好友等功能;MessageDao类的功能有:发送消息,通过用户的ID获得消息;PostDao类的功能有:获取提交的信息内容,添加用户信息内容;SearchUserDao 类的功能有:根据id获取用户信息,获取用户的邮箱等;UserDao 类的功能有:用户登录验证,用户注册。

3)  Activity类设计

AddGroupAty的作用为设置跑步的开始时间、结束时间等基本的信息;EndrunningAty实现跑步结束后的信息汇总;GroupAtyDetail的作用为汇总用户发起的跑步信息;GroupListActivity显示活动列表的类;MyGroupActivity创建活动;Runningaty实现跑步活动中的如语音、定位等功能;RunningatyOnline 处理线上跑的相关功能请求;StartrunActivity实现跑步之前如获取实时位置等预先功能;UserinfoAty 获取用户信息;EndrunningAty类,其功能是实现活动结束后的消息汇总等功能;RunningatyOnline类,处理线上跑的相关功能请求。

4)  Utils类设计

AppUtils保存用户登录信息,Mysqlutil实现数据库连接,TimeUtils分页类,用于数据分页,TokenTools实现字符之间的转换,AutoCheck实现导入的数据资源是否能够使用成功,util判断用户的输入数据信息是否时有效的类。

5 系统实现

系统实现后的效果如下:

6 系统测试

在测试阶段,根据系统需求,使用等价类划分和边界值分析方法设计了大量的测试用例来对系统进行测试,下面给出一个核心的测试用例,如表1所示:

7 结论

经过严格的系统测试,测试结果表明系统的设计和实现完整、准确地表达了系统的需求,但是系統还存在一些不足的地方,如软件使用时闪退、服务器登录不稳定等问题需要进一步改进。

参考文献:

[1] 刘菁,黎宇翔,陈艳. 跑步APP存在的问题及发展策略[J]. 青年记者,2017(26):20-21.

[2] 周凯,赵行瑞. 全民健身热潮下跑步类APP的SWOT分析——以悦跑圈为例[J]. 辽宁体育科技,2017,39(6):24-27.

[3] 韩丹. 国内现有跑步类APP市场现状与对策研究[D].桂林:广西师范大学,2017.

[4] 郭琳. 分析Java语言与Java技术的应用[J]. 电脑迷,2018(11):115.

【通联编辑:王力】