本科最后一次安卓开发:毕业设计~花状路径跑步APP的设计与实现

博主是2019级本科毕业生,毕业设计选择了自己较为熟悉的安卓开发项目,同时因为对地图API的应用比较熟悉,所以选择了会用到高德API的跑步APP开发。
本项目安卓端开发均由博主完成,其中使用了一些开源的安卓组件(具体跑步路径规划算法本文不详细介绍),本项目跨度时间较长,从2018/12-2019/05一直断断续续进行开发和优化。
本项目架构采用三层架构模式(数据层、业务层、应用层),本文会逐步介绍本项目的体系结构

应用层

安卓客户端的设计和实现:

主界面为三屏设计,可以通过左右滑屏实现切换,这一逻辑交互的通过Fragment+ViewPager实现。
正一屏是本APP的主要交户结满,其中用户可以选择跑步距离(自定义滑动刻度尺组件)和跑步形状(PopWindow),同时可以和下半部的地图交互。其中比较特殊的是,我将滑动刻度尺和地图的缩放关联在一起,滑动刻度尺时,地图也会随之缩放。

正一屏

负一屏是用户的跑步记录浏览,跑步记录是利用自定义RecylerView实现,添加了滑动删除的功能。同时对RecylerView下部添加了层叠效果

负一屏

正二屏很简单,用户中心界面,点击可以跳转到不同的功能界面。本文的图片控件是使用Fresco,可以直接加载网络图片已经调整图片的形状,关于Fresco,可以自行百度,博主之前也介绍过。
规划路径选择、规划导航界面的设计较简单,在此略过。

正二屏

调用的API

本项目的登陆功能是调用微博API实现,同时可以通过相关接口,获取微博用户的Token信息。微博API同时提供了分享功能,可以直接分享在登录用户的微博中。


微博登录

本项目的地图使用高德API,博主参考了几家不同的地图API,功能大同小异,最终采用了较为熟悉的高德API。高德API提供了地图显示、定位蓝点、路线规划、路径导航等基本功能,配合使用效果更佳,具体实用参考官方文档。


高德地图

本项目的数据库使用云数据库Bmob,调用了Bmob API。

业务层

路径规划

本项目是我的毕设导师连续三年都在进行的项目,路径规划算法也是从第一代不断改进,直至在我这改进成花状路径规划算法,第一代即圆形路径规划算法。
路径规划算法的基本思想是在地图上寻找图形关键点,然后在关键点之间寻找真实路径。最终连接这些路径即为所需的规划路径。

数据库连接

本项目采用Bmob云数据库,同时因为省去了服务器端,所以是直接通过安卓端和云数据库进行连接。云数据库Bmob的使用参考官方文档。

数据层

Bmob云数据库

Bmob云数据库使用简单,维护便捷。可以直接通过网页直接对数据库表进行维护。
数据库中主要有两个数据表:用户信息表、跑步记录表,两个表通过外键-微博账号进行关联。
Bmob数据表中自带主键ObjectId,我将微博账号也设成了主键。

项目GitHub地址:花状路径规划APP

你可能感兴趣的:(本科最后一次安卓开发:毕业设计~花状路径跑步APP的设计与实现)