基于聚合数据的车管家系统的设计与实现
2017-09-28郭杰钱康
郭杰,钱康
(南京交通职业技术学院电子信息工程学院,江苏南京211188)
基于聚合数据的车管家系统的设计与实现
郭杰,钱康
(南京交通职业技术学院电子信息工程学院,江苏南京211188)
传统汽车车载导航系统设备昂贵,无法实时联网升级,功能单一,需要专业人员进行安装,制约了智慧出行的发展。随着移动互联网的发展,智能手机的普及,“互联网+”理念的提出促进了车与互联网的整合。聚合数据开放平台的诞生,使得获取停车场、加油站、车辆违章等信息的成本大大降低。基于Android平台的APP应用软件开发可以利用聚合数据API和百度地图API帮助车主管理车辆信息,高效出行。
Android;聚合数据;百度地图
Abstract:The traditional vehicle navigation system is expensive,can not be real-time networking upgrade,single function,the need for professional staff installed,restricting the development of intelligent travel.With the development of mobile Internet,the popularity of smart mobile phone,"the Internet plus"concept to promote the integration of the car and the internet.The birth of the open platform of aggregated data has greatly reduced the cost of obtaining parking lots,gas stations,vehicle violation and oth⁃er information.APP application software development Based on Android platform,you can use aggregated data API and Baidu maps API help owners manage vehicle information,efficient travel.
Key words:Android;aggregate data;Baidu maps
1 背景
随着移动互联网的普及,传统的车载导航系统以及现有的手机导航APP功能单一,无法满足车主出行、车辆管理、维修保养等方面的需求。出行涉及导航、定位、路线规划、停车场位置和车位信息、加油站位置和油价信息,而汽车管理涉及车辆保养信息、车辆违章信息、配件商品价格销量评论信息等等,涉及大量实时数据的获取,如何低成本、高效率获得高质量的数据成为系统开发的关键。
2 技术基础
2.1 Android Studio
Android Studio是Google公司推出的专门针对Android原生APP开发的集成开发环境,与Eclipse开发环境相比智能化程度更高,输入单词会自动预测并给出提示。
此外,Android Studio对第三方插件的集成度更高,只需在插件设置中搜索相关插件,直接下载后即可动态安装,大大提高了开发效率。
2.2 聚合数据API
聚合数据的主要业务是为智能手机开发者、网站站长、移动设备开发人员及图商提供原始数据API服务的综合性云数据平台。这个平台包含手机聚合,网站聚合,LBS聚合三部分,其功能类似于Google APIS。聚合数据是国内最早开始做数据服务的平台之一[1]。
聚合数据提供了包括:VIN车架号查询接口、全国车辆违章信息查询接口、汽车维修保养记录接口、驾驶证核查接口、违章代缴接口、驾驶员累计积分查询接口、全国加油站信息接口、全国省市今日油价接口、违章高发地接口、尾号限行接口、车辆故障码DTC查询接口、驾照题库接口等十多种常用的车辆管理和出行的数据查询接口,系统中直接嵌入的聚合数据SDK即可低成本使用各种数据。
聚合数据API使用方法如下:
1)在聚合数据官方网站申请APPKey;
2)根据需求,获取请求接口地址;
3)使用HashMap封装请求查询的参数;
4)查询并获得JSON格式的数据结果;
5)解析后将结果显示在UI界面中。
2.3 百度地图API
百度地图Android SDK是一套基于Android 2.3及以上版本设备的应用程序接口。开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。还可以适配An⁃droid Wear,支持Android穿戴设备,新增室内图相关功能。百度地图Android SDK提供的所有服务是免费的,接口使用无次数限制[2]。
百度地图API使用方法如下:
1)在百度地图API官方网站申请密钥API_KEY;
2)根据需求,下载相应的API文件;
3)在Android Studio中进行配置jar包和so文件;
4)在AndroidManifest中添加开发密钥、所需权限等信息;
5)在布局xml文件中添加地图控件;
6)在应用程序创建时初始化SDK引用的Context全局变量;
7)创建地图Activity,管理地图生命周期;
8)添加定位、导航、检索等功能。
3 系统设计
3.1 功能设计
系统包括车管理、车出行、车消费三大模块,各个模块中包含具体子功能,系统总体功能设计如下图所示:
图1 系统功能设计图
3.2 逻辑架构设计
3.2.1 Android APP客户端
Android APP客户端总体采用MVC模式,搭建多层架构组成系统。系统架构见下图:
图2 Android APP系统架构图
视图层(View)。Android UI由Activity,Fragment构建,内容由各种控件组成。
控制层(Controller)。UIHelper类封装了所有Activity的调用,核心控件由单独的适配器(Adapter)进行装配。
模型层(Model)包括了数据持久化层(DAO)和实体层(Entity)组成。DAO层采用第三方Ormlite封装,将访问获取的数据保存在本地SQLite数据库。
视图层调用聚合数据、百度地图等第三方API接口,用于地图定位、路径规划,查询汽车配件信息、停车场信息、加油站信息、车辆违章等信息。用户注册信息、车辆信息通过OkHttp发送至服务器端保存。
3.2.2 服务器端
服务器端用于存放车主注册信息、车辆信息、加油订单信息、通知推送信息。服务器端通过个推推送消息至APP客户端。服务器使用Java Web开发,采用SSH框架,即Spring,Struts2,Hibernate框架搭建而成。具体架构见下图:
图3 服务器程序系统架构图
视图层(View)。JSP页面采用BootStrap框架布局,使用Struts2标签绑定数据。
控制层(Controller)。采用Struts2框架,通过Action类控制页面调度、并对客户端数据请求作出响应。通过Spring注入业务逻辑层接口的实现类。
模型层(Model),由业务逻辑层(Service接口,ServiceImpl实现类)、数据访问层(DAO接口,DAOImpl实现类)和实体层(Java Bean)组成。由Spring注入接口的实现类。DAO层实现类调用Spring框架的HibernateDaoSupport类,对Hibnate框架做进一步封装,最终将数据保存在服务器端MySQL数据库中。
3.3 物理架构设计
Android APP应用程序安装在手机端,调用第三方API接口,访问第三方数据库,获取JSON数据,在APP应用程序中进行解析。例如:通过百度地图API获取地图、定位、路径规划,通过聚合数据获取停车场车位信息、加油站油价信息、车辆违章信息等。
服务器端负责向APP推送消息,部署在MoPaaS服务器的Docker容器中,运行环境是Tomcat和MySQL数据库。车主注册信息、车辆信息、订单信息、消息通知等存放在MySQL数据库中。
系统物理架构如图4所示。
3.3 数据库设计
系统客户端采用SQLite数据库,存放车辆信息、用户信息、收到的推送信息、加油订单信息、路径规划信息。服务器端采用MySQL数据库,存放用户注册信息、车辆信息、保养维护推送信息、加油订单信息。
图4 系统物理架构图
3.4 界面设计
系统客户端采用Android Fine开源框架,主界面上方为功能按钮,单击按钮切换至相应的功能页面,例如:实时路况界面,加油站界面。主界面下方为淘宝汽车配件商品信息,单击商品跳转到商品详细信息页面,显示商品价格,销量,评论数等。
加油站界面默认自动定位当前位置,并显示周围的加油站,也可以在查询输入框中输入名称,查询相关地点的加油站信息。单击某个加油站定位点,下方显示该加油站的地址、名称、油品和油价信息,同时出现路线、导航和预约加油按钮,可以直接预约加油并使用银联支付,通过导航功能帮助车主到达目的地。
图5 APP客户端界面设计图
4 结束语
本文分析了现有汽车出行管理类APP设计存在的问题,通过阐述技术基础、功能体系、系统架构设计、数据库设计、界面设计,给出了基于聚合数据开放平台的解决方案,并阐述了使用聚合数据和百度地图API的具体实现步骤,指导实际项目开发,并取得了较好的效果。
[1]向坤.聚合数据85后海归的数据梦想[J].互联网经济,2017(3):98-101.
[2]Android地图SDK[EB/OL].http://lbsyun.baidu.com/index.php?title=androidsdk/.
Design and Implementation of Vehicle Manager System Based on Aggregated Data
GUO Jie,QIAN Kang
(School of Electronic and Information Engineering,Nanjing Communications Institute of Technology,Nanjing 211188,China)
TP311
A
1009-3044(2017)24-0091-03
2017-07-06
郭杰(1975—),男,江苏淮安人,讲师,工程硕士,主要研究方向为Web开发,Android开发;钱康(1995—),男,江苏盐城人,主要研究方向为Android开发。