基于Android的徒步轨迹记录APP设计与实现毕业论文
2020-02-14 18:42:48
摘 要
基于Android平台的徒步轨迹记录app主要是实现移动端手持设备的每日轨迹记录,然后可以进行轨迹分享,让其他的用户得知此条轨迹具体情况如何,最终的目的是让其他用户进行循迹,就是踏足其他人走过的路,发现属于自己的美,提升自我的生活品质,同时我也可以加入实时轨迹记录功能,增强用户满足感,可以将之提升为一个生活健康类的app。本APP主要完成了以下工作:
1、此app移动端的设计是调用了百度地图API。具体的实时轨迹显示使用的是鹰眼功能包的实体监听器(EntityListener),使用隔一段时间获取到的经纬度点进行画线操作就完成了实时轨迹显示。百度鹰眼为开发者提供了一系列成熟的服务,只需导入其对应的包,然后按照百度官方提供的一系列操作进行使用,主要功能包括使用鹰眼轨迹管理记录平台记录每一台设备即(Entity)的历史轨迹,然后在客户端进行显示,这样就免去开发者进行历史轨迹的自存储。
2、在使用GPS定位的方式中,往往会因为GPS信号较差,画出来的轨迹效果会比较差,即使是在空旷地带也难免出现GPS漂移的情况而造成轨迹的偏差,相应的,当位于建筑物密集区、高架、桥梁下时,GPS的信号质量就更加难以保证了,所以百度鹰眼为开发者提供了对位置点进行纠偏、去噪、抽稀的操作,使轨迹更加准确,在历史轨迹显示之中就使用了纠偏等功能。
3、在后台服务器端,本APP使用了servlet加上mysql和Tomcat的方式进行数据传输并进行处理。4、整体的数据流是使用了对象转json和json转对象的方式,其中使用的解析方式是Gson,然后是客户端使用Okhttp的方式进行传输。
5、在数据库设计方面,由于本APP功能比较简单,所以只设计了三种类型的表,一个是用户表,一种是用户分享表,还有一种是用户收藏表。在数据库的操作里,使用了可视化工具workbench,这为本APP设计带来了极大的便利。
本次毕业设计完成了任务要求,实现了一款基于Android的徒步轨迹记录APP的设计与开发。
关键词:百度鹰眼、Okhttp、servlet、JDBC、Gson
ABSTRACT
The hiking track recording app based on the Android platform mainly realizes the daily track record of the mobile terminal device, and then can share the track, so that other users can know the specific situation of the track, and the final purpose is to let other users track. It makes others discover their own beauty and improve their own quality of life. At the same time, I can also add real-time track record function to enhance the user satisfaction, and can promote it to a life-health app. This APP mainly completed the following work:
1. The design of the app mobile terminal is to call the Baidu map API. The specific real-time trajectory display uses the EntityListener of the Hawkeye function package, and completes the real-time trajectory display by using the latitude and longitude points acquired at intervals. Baidu Hawkeye provides developers with a series of mature services, just import their corresponding packages, and then use a series of operations provided by Baidu. The main functions include recording each device using the Hawkeye Track Management Recording Platform. The historical trajectory of Entity is then displayed on the client side, thus eliminating the developer#39;s self-storage of historical trajectories.
2.in the use of GPS positioning, often because the GPS signal is poor, the trajectory effect will be relatively poor, even in the open area, it is inevitable that GPS drift will cause the deviation of the trajectory, correspondingly, when located When the buildings are densely populated, elevated, and under the bridge, the signal quality of GPS is more difficult to guarantee, so Baidu Hawkeye provides developers with the operation of correcting, denoising and thinning the position points to make the trajectory more accurate. Correction and other functions are used in the historical track display.
3.in the background server side, the APP uses a servlet plus mysql and Tomcat for data transmission and processing.
4.the overall data flow is the use of the object to json and json transfer object, which uses the parsing method is Gson, and then the client uses Okhttp to transmit.
5.in the database design, because the APP function is relatively simple, so only three types of tables are designed, one is the user table, one is the user sharing table, and the other is the user collection table. In the operation of the database, the visual tool workbench is used, which brings great convenience to the APP design.
This graduation project completed the task requirements, and realized the design and development of an Android-based walking track record APP.
Keyword:Baidu Hawkeye、Okhttp、servlet、JDBC、Gson
目录
第1章 绪论 1
1.1 需求分析 1
1.1.1 研究背景 1
1.1.2 设计任务 1
1.1.3 可行性分析 1
1.2 相关技术 2
1.2.1 Android简介 2
1.2.2 Android应用开发语言 2
1.2.3 Android应用开发环境 2
1.2.4 百度地图 3
1.2.5 Okhttp与Gson(数据传输问题) 3
1.2.6 技术重难点 3
1.3进度安排 3
第2章 总体设计 4
2.1 系统总体设计 4
2.2 系统模块划分 4
2.2.1 前端模块划分 5
2.2.2 后端模块划分 5
2.3 系统详细设计 5
2.3.1 用例规约 5
2.3.2用例图 9
2.3.3 时序图 10
2.3.4 数据库设计ER图 12
2.4 系统开发环境配置 13
2.4.1 硬件配置 13
2.4.2 开发工具选择 13
2.4.3 开发配置 13
第3章功能实现及重难点 17
3.1 登陆注册功能 17
3.1.1 登录注册流程图 17
3.1.2 登陆功能实现 17
3.1.3 注册功能实现 18
3.1.4 注册登陆中出现的重难点问题及解决方法 18
3.1.5登陆注册界面 18
3.2 实时地图显示及轨迹存储功能 20
3.2.1 实时地图显示流程图 20
3.2.2 实时地图显示功能实现 20
3.2.3 实时轨迹显示中出现的重难点问题及解决方法 22
3.2.4 实时地图显示界面 23
3.3 日记记录分享功能 24
3.3.1 日记记录流程图 24
3.3.2 日记记录功能实现 24
3.3.3 日记记录界面设计 25
3.4 历史轨迹显示及收藏 26
3.4.1 历史轨迹显示及循迹流程图 26
3.4.2 分享列表显示功能实现 26
3.4.3 历史轨迹显示功能实现 26
3.4.4 历史轨迹及日记收藏功能实现 27
3.4.5 循迹功能实现 27
3.4.6 历史轨迹显示及收藏功能实现重难点及解决方法 27
3.4.7 大家界面与历史轨迹界面 29
3.5 收藏列表显示 30
3.5.1 收藏相关功能流程图 30
3.5.2 查看收藏功能实现 31
3.5.3 收藏界面设计 31
第4章 系统测试 33
4.1 功能性测试 33
4.1.1 登陆注册功能测试 33
4.1.2 实时轨迹显示功能测试 34
4.1.3 历史轨迹记录及显示功能测试 34
4.1.4 路线循迹功能测试 35
4.1.5 路线收藏功能测试 35
4.1.6 日记记录功能测试 35
4.2 兼容性测试 36
第5章 总结与展望 37
5.1 总结 37
5.2展望 37
第1章 绪论
1.1 需求分析
1.1.1 研究背景
现如今Android平台已经占据了极大的市场份额,大多数人手中都会有一台Android手机,相应的android应用也是非常热门的一个话题[1]。
在徒步旅行和徒步健身火热的今天,在Android平台上涌现了特别多的相关产品,例如“六只脚”,这是一款多用途的旅游记录类app,于是做了这款功能类似,但是更为简单的徒步轨迹记录类app,便于各类运动健身爱好者和徒步旅游爱好者可以实时上传自己的轨迹与大家一起分享自己轨迹感想[2]。
1.1.2 设计任务
完成登陆注册功能、户外徒步轨迹(GPS信息、时间信息、图片、日记)记录分享、线路收藏(个人收藏)、循迹功能(在前人的历史轨迹的基础上进行实时轨迹记录)[3]。
在数据库设计方面,由于本APP功能比较简单,所以只设计了三种类型的表,一个是用户表,一种是用户分享表,还有一种是用户收藏表。在用户表和用户收藏表之间存在联系,每新建一个用户就要新建一张用户收藏表。
1.1.3 可行性分析
首先要分析和决定本产品所涉及的相关平台和设备:一台装有Windows系统的笔记本,安装有eclipse,在eclipse中集成了Tomcat服务器软件,这是作为服务器设备,然后是一台装有MacOS的MacBook,在上面安装了最新版的Android Studio[4]。
其次要分析本APP所涉及到的具体功能应该如何实现,本app的主要功能是进行实时轨迹显示和进行上传记录,最应该考虑的是这两个功能能不能在现有条件下实现,查阅资料以后发现百度地图开发者平台完全可以满足这两个需求,然后百度鹰眼也为开发者提供了免费的轨迹记录服务,这样就可以完成历史轨迹的显示功能,所以整体的功能实现起来就比较容易了[5]。至于登陆注册、日记上传、收藏功能都是比较容易的功能,只需要将之存在自己的数据库里,实现的难度不是太大,只是在移动端和服务器端数据传输的过程中需要注意如何使数据流合适的传输就好了,这里选择的是使用json,并用Gson的方式进行解析,okhttp的方式进行传输[6]。
1.2 相关技术
1.2.1 Android简介
Android系统是由Google公司最初发布在手机上的移动端操作系统,是基于Linux的自由和开放源码的操作系统,后来渐渐扩展到平板电脑及其他领域上,如数码相机、电视机、车载中控、智能手表、游戏机等,现在最新的系统已经更新到了9.0,在世界上,4.0之前的系统应该没人再用了,在创建Android新项目,最低版本选择4.0的时候,它就意味着这个选项已经含括了世界上100%的Android终端设备[7]。最近这几年,安卓系统及其衍生品的发展出乎所有人的预料,也诞生了许多依靠安卓起家的公司,例如小米手机的定制化Android系统:MIUI便是其中的代表[8]。安卓手机的操作系统使用起来非常便利,以高度自由,开源的特性,深受用户和软件开发者的喜爱。可以看到现在国内的手机,90%以上都是Android系统,剩下10%的苹果系统,由于封闭的系统越来越不适应潮流,众多果粉也面临大面积倒戈的迹象[9]。
1.2.2 Android应用开发语言
Android应用的开发讲究的是视图与逻辑分离的策略,即视图UI使用的是XML,而相关逻辑则使用的是java语言[10]。XML语言指的是一种具有灵活文本格式的可扩展标记语言,是Internet环境中跨平台的、依赖于内容的技术[11]。Java语言是一门面向对象的高级编程语言,它不仅继承了C 的各种优点,还抛弃了C 里面难以理解的多继承、指针等概念。
1.2.3 Android应用开发环境
本APP使用的是Android Studio和Eclipse联合进行开发的, Android Studio 是谷歌公司推出的一个开发Android应用程序的集成化开发环境,它提供了集成的 Android 开发工具用于开发和调试[12]。Eclipse是一个开放源代码的、基于Java语言的可扩展开发平台。它包含了许多可用的框架与插件,极大的方便了开发人员的开发工作。
1.2.4 百度地图
百度地图的Android SDK是一套基于Android 4.0及以上版本设备的应用程序接口。通过调用这一系列的接口,可以实现手机设备的定位和轨迹记录[13]。
1.2.5 Okhttp与Gson(数据传输问题)
Okhttp是处理网络请求的开源项目,其相对于HttpURLConnection和HttpClient的极简操作吸引了许多的开发者使用。Gson是一个基于Java平台的开源库,用于将Java对象转化为json字符串或者将json字符串转换为Java对象。
1.2.6 技术重难点
最难的是百度地图定位与轨迹实时显示,还有轨迹存储并显示方面。在实时显示轨迹的时候需要注意应该借助鹰眼同时将轨迹上传到鹰眼管理平台。方便后续将轨迹显示出来[14]。在显示历史轨迹的时候应该显示轨迹纠偏、去噪、抽稀过后的结果,否则会跟实际轨迹有一定的差别[15]。其次需要注意数据的传输,由于在客户端和服务器端有比较多的数据交互,所以在使用json进行传输的过程中一定要定义好使用Gson的工具包专门进行数据解析转换。最后就是需要注意在导入百度地图API的一系列jar包的时候,需要注意导入相应的so文件,如果版本不同,则会导致错误,无法继续进行下一步。
1.3进度安排
完成任务的时间节点:
(1)2019/1/19—2019/2/28:确定选题,查阅文献,外文翻译与撰写开题报告;
(2)2019/3/1—2019/4/30:系统架构、程序设计与开发、系统测试与完善;
(3)2019/5/1—2019/5/25:撰写及修改毕业论文;
(4)2019/5/26—2019/6/5:准备答辩。
第2章 总体设计
2.1 系统总体设计
移动端:调用了百度地图API,具体是使用了百度地图的基础地图、定位功能包、轨迹绘制、百度鹰眼。具体的实时轨迹显示使用的是鹰眼功能包的实体监听器(EntityListener),设置获取经纬度的serviceID,然后启动监听,使用隔一段时间获取到的经纬度点进行画线操作就完成了实时轨迹显示。百度鹰眼为开发者提供了一系列成熟的服务,只需导入其对应的包,然后按照百度官方提供的一系列操作进行使用,主要功能包括使用鹰眼轨迹管理记录平台记录每一台设备即(Entity)的历史轨迹,然后在客户端进行显示,这样就免去开发者进行历史轨迹的自存储。在数据传输方面,移动端选择了开源的数据传输服务Okhttp,它可以以极简的方式完成数据的传输。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: