郭杰,錢康
(南京交通職業(yè)技術學院電子信息工程學院,江蘇南京211188)
基于聚合數據的車管家系統的設計與實現
郭杰,錢康
(南京交通職業(yè)技術學院電子信息工程學院,江蘇南京211188)
傳統汽車車載導航系統設備昂貴,無法實時聯網升級,功能單一,需要專業(yè)人員進行安裝,制約了智慧出行的發(fā)展。隨著移動互聯網的發(fā)展,智能手機的普及,“互聯網+”理念的提出促進了車與互聯網的整合。聚合數據開放平臺的誕生,使得獲取停車場、加油站、車輛違章等信息的成本大大降低?;贏ndroid平臺的APP應用軟件開發(fā)可以利用聚合數據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
隨著移動互聯網的普及,傳統的車載導航系統以及現有的手機導航APP功能單一,無法滿足車主出行、車輛管理、維修保養(yǎng)等方面的需求。出行涉及導航、定位、路線規(guī)劃、停車場位置和車位信息、加油站位置和油價信息,而汽車管理涉及車輛保養(yǎng)信息、車輛違章信息、配件商品價格銷量評論信息等等,涉及大量實時數據的獲取,如何低成本、高效率獲得高質量的數據成為系統開發(fā)的關鍵。
Android Studio是Google公司推出的專門針對Android原生APP開發(fā)的集成開發(fā)環(huán)境,與Eclipse開發(fā)環(huán)境相比智能化程度更高,輸入單詞會自動預測并給出提示。
此外,Android Studio對第三方插件的集成度更高,只需在插件設置中搜索相關插件,直接下載后即可動態(tài)安裝,大大提高了開發(fā)效率。
聚合數據的主要業(yè)務是為智能手機開發(fā)者、網站站長、移動設備開發(fā)人員及圖商提供原始數據API服務的綜合性云數據平臺。這個平臺包含手機聚合,網站聚合,LBS聚合三部分,其功能類似于Google APIS。聚合數據是國內最早開始做數據服務的平臺之一[1]。
聚合數據提供了包括:VIN車架號查詢接口、全國車輛違章信息查詢接口、汽車維修保養(yǎng)記錄接口、駕駛證核查接口、違章代繳接口、駕駛員累計積分查詢接口、全國加油站信息接口、全國省市今日油價接口、違章高發(fā)地接口、尾號限行接口、車輛故障碼DTC查詢接口、駕照題庫接口等十多種常用的車輛管理和出行的數據查詢接口,系統中直接嵌入的聚合數據SDK即可低成本使用各種數據。
聚合數據API使用方法如下:
1)在聚合數據官方網站申請APPKey;
2)根據需求,獲取請求接口地址;
3)使用HashMap封裝請求查詢的參數;
4)查詢并獲得JSON格式的數據結果;
5)解析后將結果顯示在UI界面中。
百度地圖Android SDK是一套基于Android 2.3及以上版本設備的應用程序接口。開發(fā)適用于Android系統移動設備的地圖應用,通過調用地圖SDK接口,訪問百度地圖服務和數據,構建功能豐富、交互性強的地圖類應用程序。還可以適配An?droid Wear,支持Android穿戴設備,新增室內圖相關功能。百度地圖Android SDK提供的所有服務是免費的,接口使用無次數限制[2]。
百度地圖API使用方法如下:
1)在百度地圖API官方網站申請密鑰API_KEY;
2)根據需求,下載相應的API文件;
3)在Android Studio中進行配置jar包和so文件;
4)在AndroidManifest中添加開發(fā)密鑰、所需權限等信息;
5)在布局xml文件中添加地圖控件;
6)在應用程序創(chuàng)建時初始化SDK引用的Context全局變量;
7)創(chuàng)建地圖Activity,管理地圖生命周期;
8)添加定位、導航、檢索等功能。
系統包括車管理、車出行、車消費三大模塊,各個模塊中包含具體子功能,系統總體功能設計如下圖所示:
圖1 系統功能設計圖
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接口,用于地圖定位、路徑規(guī)劃,查詢汽車配件信息、停車場信息、加油站信息、車輛違章等信息。用戶注冊信息、車輛信息通過OkHttp發(fā)送至服務器端保存。
3.2.2 服務器端
服務器端用于存放車主注冊信息、車輛信息、加油訂單信息、通知推送信息。服務器端通過個推推送消息至APP客戶端。服務器使用Java Web開發(fā),采用SSH框架,即Spring,Struts2,Hibernate框架搭建而成。具體架構見下圖:
圖3 服務器程序系統架構圖
視圖層(View)。JSP頁面采用BootStrap框架布局,使用Struts2標簽綁定數據。
控制層(Controller)。采用Struts2框架,通過Action類控制頁面調度、并對客戶端數據請求作出響應。通過Spring注入業(yè)務邏輯層接口的實現類。
模型層(Model),由業(yè)務邏輯層(Service接口,ServiceImpl實現類)、數據訪問層(DAO接口,DAOImpl實現類)和實體層(Java Bean)組成。由Spring注入接口的實現類。DAO層實現類調用Spring框架的HibernateDaoSupport類,對Hibnate框架做進一步封裝,最終將數據保存在服務器端MySQL數據庫中。
Android APP應用程序安裝在手機端,調用第三方API接口,訪問第三方數據庫,獲取JSON數據,在APP應用程序中進行解析。例如:通過百度地圖API獲取地圖、定位、路徑規(guī)劃,通過聚合數據獲取停車場車位信息、加油站油價信息、車輛違章信息等。
服務器端負責向APP推送消息,部署在MoPaaS服務器的Docker容器中,運行環(huán)境是Tomcat和MySQL數據庫。車主注冊信息、車輛信息、訂單信息、消息通知等存放在MySQL數據庫中。
系統物理架構如圖4所示。
系統客戶端采用SQLite數據庫,存放車輛信息、用戶信息、收到的推送信息、加油訂單信息、路徑規(guī)劃信息。服務器端采用MySQL數據庫,存放用戶注冊信息、車輛信息、保養(yǎng)維護推送信息、加油訂單信息。
圖4 系統物理架構圖
系統客戶端采用Android Fine開源框架,主界面上方為功能按鈕,單擊按鈕切換至相應的功能頁面,例如:實時路況界面,加油站界面。主界面下方為淘寶汽車配件商品信息,單擊商品跳轉到商品詳細信息頁面,顯示商品價格,銷量,評論數等。
加油站界面默認自動定位當前位置,并顯示周圍的加油站,也可以在查詢輸入框中輸入名稱,查詢相關地點的加油站信息。單擊某個加油站定位點,下方顯示該加油站的地址、名稱、油品和油價信息,同時出現路線、導航和預約加油按鈕,可以直接預約加油并使用銀聯支付,通過導航功能幫助車主到達目的地。
圖5 APP客戶端界面設計圖
本文分析了現有汽車出行管理類APP設計存在的問題,通過闡述技術基礎、功能體系、系統架構設計、數據庫設計、界面設計,給出了基于聚合數據開放平臺的解決方案,并闡述了使用聚合數據和百度地圖API的具體實現步驟,指導實際項目開發(fā),并取得了較好的效果。
[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開發(fā),Android開發(fā);錢康(1995—),男,江蘇鹽城人,主要研究方向為Android開發(fā)。