李沁璘
基于Android的車輛監(jiān)控系統(tǒng)設(shè)計
李沁璘
(桂林電子科技大學(xué)信息與通信學(xué)院,廣西 桂林 541002)
近年來飛速發(fā)展的社會經(jīng)濟(jì)和與日俱增的交通運(yùn)輸擁擠,使得現(xiàn)有的交通運(yùn)輸服務(wù)與管理手段已經(jīng)無法滿足人們對公路交通的需求。文章基于Android設(shè)計并實現(xiàn)了車輛監(jiān)控系統(tǒng),通過結(jié)合衛(wèi)星定位和移動互聯(lián)網(wǎng)技術(shù)實現(xiàn)了車輛目標(biāo)實時定位,并擴(kuò)展了電子?xùn)艡诠δ堋嶋H測試效果表明,文章中設(shè)計的Android的車輛監(jiān)控系統(tǒng)定位坐標(biāo)地圖匹配準(zhǔn)確性高,擴(kuò)展性強(qiáng)。
GPS;Android系統(tǒng);無線通信網(wǎng)絡(luò);智能交通
近年來由于我國經(jīng)濟(jì)力量與科技實力的壯大,城市發(fā)展十分迅猛,城市規(guī)模不斷變大,同時車輛數(shù)量也不斷增加,交通系統(tǒng)網(wǎng)絡(luò)愈來愈龐大[1]。由此致使交通擁堵,事故頻發(fā),使得經(jīng)濟(jì)遭受著巨大損失的同時也給人們的生活帶來了不可預(yù)測的隱患[2]。同時由于Wi-Fi、3G、4G等無線網(wǎng)絡(luò)的全面覆蓋,智能手機(jī)的用戶群體日漸壯大,這也為通過智能手機(jī)實時監(jiān)控交通信息提供了便利[3]。互聯(lián)網(wǎng)調(diào)研中心的數(shù)據(jù)表格表明,2014年Android操作系統(tǒng)占據(jù)著中國83%的市場份額,在手機(jī)的中、低、高檔次中都占據(jù)著巨大的份額。
基于上述背景,在目前智能交通系統(tǒng)上,結(jié)合GPS和北斗定位系統(tǒng),以及3G、4G、Wi-Fi無線通信網(wǎng)絡(luò),開發(fā)基于移動設(shè)備的車載智能交通系統(tǒng)。在車載上安裝終端,通過3G、4G網(wǎng)絡(luò)將車輛的實時的經(jīng)度以及緯度、行駛的速度、行駛方向回傳到服務(wù)器數(shù)據(jù)中心處理與存儲,控制中心的前臺界面就可以對車輛進(jìn)行實時的監(jiān)控,同時還能夠?qū)囕v的歷史軌跡線路、相關(guān)信息進(jìn)行查詢。同時為了隨時隨地地使用此系統(tǒng),在Android操作系統(tǒng)中開發(fā)出相應(yīng)的應(yīng)用程序,通過手機(jī)端應(yīng)用程序客戶可以隨時隨地的使用。
本文綜上各項技術(shù),設(shè)計基于Android的車輛監(jiān)控系統(tǒng),通過開發(fā)Android操作系統(tǒng)的手機(jī)客戶端應(yīng)用程序,以實現(xiàn)車輛位置的實時定位,車輛的歷史路線回放,車輛信息的查看和電子?xùn)艡趫缶?,同時保護(hù)用戶信息安全。
2.1Android系統(tǒng)
Android是Google于2007年底開發(fā)出來的開源手機(jī)操作系統(tǒng),是首個為移動終端打造的真正開放和完整的移動軟件。選擇Android操作系統(tǒng)的原因不僅僅是因為它所占有的市場份額之大,同時還因為它具有以下優(yōu)點。首先,目前在世界上大多數(shù)手機(jī)廠商都加入到了Android系統(tǒng)的陣營,各個手機(jī)廠商都全力推出了多款A(yù)ndroid操作系統(tǒng)的智能手機(jī)。終端越來越多,同時大部分廠商都建立了Android平臺的技術(shù)聯(lián)盟。其二,Android操作系統(tǒng)價廉但是性能不低,Android操作系統(tǒng)的手機(jī)價錢從高低都有,大部分的Android手機(jī)都處于中等價位,這樣有利于普及,使得在Android操作系統(tǒng)開發(fā)出來的應(yīng)用能讓大多數(shù)人使用。同時Android操作簡便,便于人們使用。第三,Android操作系統(tǒng)是開放的,允許開發(fā)人員對源代碼進(jìn)行修改,進(jìn)行二次開發(fā),并且對Android進(jìn)行修改和發(fā)行都不受許可證的限制,同時國內(nèi)有大量的Android開發(fā)論壇以及眾多的Android開發(fā)者,這也有利于開發(fā)資料的查找。
Android操作系統(tǒng)采用的是分層的架構(gòu),共分為4個層次。從高到低分別為,應(yīng)用程序,應(yīng)用程序框架,系統(tǒng)運(yùn)行庫和Linux內(nèi)核[4-5]。每個層分別有著不同的作用。
Android操作系統(tǒng)的應(yīng)用程序框架為開發(fā)者提供API,它實際上是一個應(yīng)用程序的框架[6]。因為上層的應(yīng)用程序是以Java構(gòu)建的,因此在這個層次上首先提供的是包含了UI程序中所需要的各種控件。例如:視圖組件(View)、包括列表(lists)、柵格(grids)、文本框(text boxes)、按鈕(buttons)等;一個嵌入式的Web瀏覽器。 一個Android應(yīng)用程序可以利用應(yīng)用程序框架中的以下幾個部分[7]:
Activity(活動);
Broadcast Intent Receiver(廣播意圖接收者);
Service(服務(wù));
Content Provider(內(nèi)容提供者)。
2.2百度地圖API
百度地圖于2010年正式對外宣布開放地圖API,同時百度地圖API的免費(fèi)開放不僅可以提供給PC端,而且還可以提供給移動設(shè)備端[8]。如今百度地圖API已經(jīng)廣泛應(yīng)用到各行各業(yè)中。例如移動設(shè)備、車廠以及互聯(lián)網(wǎng)等行業(yè)。涉及團(tuán)購、移動應(yīng)用、生活服務(wù)等各個領(lǐng)域。百度地圖API相對與其他的地圖API有許多優(yōu)勢,例如,較小的文件,可以提高地圖使用的流暢性。其次百度地圖其獨有的應(yīng)用封裝,可以有效的降低GIS應(yīng)用程序的開發(fā)成本和開發(fā)周期。第三百度地圖API有著超過70多個類,同時還擁有著400多個豐富的接口,可以讓開發(fā)者能夠輕松、簡便地構(gòu)建出各種豐富的地圖應(yīng)用。
在本文中,采用百度地圖來構(gòu)建監(jiān)控系統(tǒng)以及歷史回放功能,開發(fā)中需要用到百度地圖API提供的多種類和方法。其中百度地圖API提供了包括核心、控件、覆蓋物、基礎(chǔ)、工具、地圖圖層、服務(wù)等多種類方法[9]。
核心類:主要是實現(xiàn)一個地圖的對象。所有的地圖應(yīng)用功能的實現(xiàn)都是基于地圖的對象來實現(xiàn)的,例如地圖的顯示以及地圖的縮放與平移等。
服務(wù)類:地圖的空間查詢與空間分析是地圖應(yīng)用系統(tǒng)的最基本功能,同時也是其最重要的功能。百度地圖API提供了例如公交檢索類、駕車檢索類、本地搜索類等多種服務(wù)類用來實現(xiàn)空間的查詢和空間的分析功能。
覆蓋物類:地圖覆蓋物指的是疊加和覆蓋在地圖上的內(nèi)容,覆蓋物可以擁有屬于自己的地理坐標(biāo),同時可以隨時隨地進(jìn)行拖動和縮放操作來實現(xiàn)覆蓋物的相應(yīng)的移動。地圖覆蓋物的主要作用就是對地圖里面內(nèi)容的有效補(bǔ)充,可以根據(jù)自身的需求來選擇是否實際的顯示出來。同時百度地圖的API還提供許多的包括圖像標(biāo)注,線條等多種覆蓋物。
由于百度地圖API的開放性和免費(fèi)性,致使目前有眾多的開發(fā)者利用百度地圖的API進(jìn)行二次開發(fā),也正因此便于開發(fā)者相互間技術(shù)的交流和資源的共享。
3.1移動智能交通系統(tǒng)的整體構(gòu)架
移動車載智能交通系統(tǒng)主要分為三個部分,即車載終端、無線通信網(wǎng)絡(luò)、監(jiān)控中心應(yīng)用程序端。整個移動車載智能交通系統(tǒng)的結(jié)構(gòu)圖如圖1所示。
圖1 移動車載智能交通系統(tǒng)的結(jié)構(gòu)圖
車輛終端通過單片機(jī)獲得GPS數(shù)據(jù)解析后,獲得相關(guān)的GPS信息,例如時間、經(jīng)度、緯度等,然后通過GPRS網(wǎng)絡(luò)將終端信息回傳到監(jiān)控中心,監(jiān)控中心的服務(wù)端將獲取的數(shù)據(jù)進(jìn)行處理存儲,再發(fā)送到手機(jī)端,顯示在GIS應(yīng)用電子地圖上[10-11]。
3.2客戶端軟件設(shè)計
客戶端軟件設(shè)計主要包括系統(tǒng)界面、實時監(jiān)控、歷史軌跡查詢和電子?xùn)艡趫缶瘞讉€模塊。
3.2.1系統(tǒng)界面
系統(tǒng)界面包括登陸注冊界面、功能選擇界面。安全功能是任何一款軟件都必須可少的,因此在使用APP應(yīng)用程序時,首次使用需要注冊賬戶,之后的每一次使用都需要輸入已經(jīng)注冊過的用戶名和密碼,才能登錄進(jìn)入到應(yīng)用程序中使用。登錄驗證功能主要分為2個部分,第一個部分是客戶端,也就是用戶在手機(jī)應(yīng)用程序端進(jìn)行注冊;第二個部分為服務(wù)器端,服務(wù)器端對客戶端發(fā)送過來的注冊或者是登錄信息進(jìn)行處理,同時與服務(wù)器端的數(shù)據(jù)庫進(jìn)行寫入或者匹配,完成注冊和登錄的功能。具體的流程圖如圖2所示。
圖2 系統(tǒng)登錄注冊流程圖
3.2.2 實時監(jiān)控模塊
當(dāng)車載終端開啟之后,終端會不斷地獲取定位信息并將其發(fā)送至服務(wù)端,服務(wù)端再將其存入數(shù)據(jù)庫。當(dāng)用戶在手機(jī)上打開客戶端時,便可實時地查詢到這些信息,為了能更為直觀地讓用戶看到,客戶端每5秒向服務(wù)端請求一次定位信息,同時將其顯示到地圖上。具體流程圖如圖3所示。
圖3 實時監(jiān)控流程圖
3.2.3歷史軌跡回放
所謂歷史軌跡,即在地圖上顯示出一段時間內(nèi)定位終端的運(yùn)動軌跡。當(dāng)用戶點擊歷史軌跡按鈕時,進(jìn)入到歷史軌跡顯示界面時,首先加載地圖,同時向服務(wù)端發(fā)送獲取歷史定位信息的請求,拿到這些點后,將其連接起來,并在地圖上顯示出來。其中,起點和終點用特殊的圖標(biāo)標(biāo)識出來,以便用戶能夠更為直觀地觀看整條運(yùn)動軌跡線。具體流程圖如圖4所示。
圖4 歷史軌跡回放流程圖
3.2.4車輛信息查看
車輛信息查看功能的查看過程相對簡單,客戶端訪問數(shù)據(jù)庫,查找用戶所需要的車輛信息,如果找到匹配的車輛信息,數(shù)據(jù)庫則把車輛信息的數(shù)據(jù)表格顯示在客戶端的界面供用戶查看。
3.2.5電子?xùn)艡趫缶?/p>
電子?xùn)艡趫缶墓δ苁怯脩艨梢灾付ㄒ粋€坐標(biāo)點,以這個點為圓心50米為半徑的圓作為電子?xùn)艡诘膮^(qū)域。當(dāng)定位終端離開電子?xùn)艡诘膮^(qū)域時,客戶端將會以震動、響鈴的方式發(fā)出提示,并在通知欄顯示警告提示。該坐標(biāo)點的操作是用戶在地圖上完成的操作,針對不同的定位終端,可以設(shè)置不同的坐標(biāo)點。根據(jù)定位數(shù)據(jù)的上傳頻率,客戶端每5秒向服務(wù)端請求一次定位信息,然后計算該定位終端與圓心坐標(biāo)點的距離,根據(jù)該距離是否大于50米來做判斷條件。關(guān)鍵代碼如下:
nManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nBuilder = new NotificationCompat.Builder(this);
nBuilder.setContentText("title")
.setContentText("目標(biāo)已離開指定區(qū)域")
.setContentIntent(getDefalutIntent(Notification.FLAG_SHOW_LIGHTS
| Notification.FLAG_AUTO_CANCEL))
.setTicker("notification").setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setVibrate(new long[] { 0,300,500,700 })
.setSmallIcon(R.drawable.icon_gcoding);
;
系統(tǒng)設(shè)計完成后,對本系統(tǒng)進(jìn)行了測試以驗證系統(tǒng)功能的正確性。用于測試的手機(jī)參數(shù)為:Android版本2.3.6,內(nèi)核版本2.6.35.11se.infra@sep-50#2,內(nèi)部版本號GINGERBREAD.FH10。實際APP功能界面效果如圖5(a)所示。
圖5(a) 系統(tǒng)功能界面實際效果圖
圖5(b) 車載監(jiān)控系統(tǒng)車輛信息管理數(shù)據(jù)庫
以上測試結(jié)果表明:該系統(tǒng)能完成實時監(jiān)控、歷史軌跡回放、電子?xùn)艡诘裙δ?,程序運(yùn)行穩(wěn)定可靠,定位和查詢精度較高,滿足了車輛監(jiān)控系統(tǒng)設(shè)計要求。
本文實現(xiàn)了基于Android手機(jī)的車輛監(jiān)控系統(tǒng),服務(wù)器端使用開源的Tomcat服務(wù)器,客戶端軟件采用模塊化設(shè)計,利用開源的Android系統(tǒng)和百度地圖API開發(fā)客戶端程序。同時該系統(tǒng)可根據(jù)需要擴(kuò)展其他功能,具有成本低、便于攜帶以及系統(tǒng)升級和維護(hù)方便等特點,能夠穩(wěn)定、可靠地運(yùn)行于絕大多數(shù)Android手機(jī)或其他Android設(shè)備,具有較好的應(yīng)用前景。
[1] 任克強(qiáng),李曉亮,謝斌.基于Android的手機(jī)導(dǎo)航系統(tǒng)設(shè)計與實驗[J].實驗技術(shù)與管理, 2014, 31(5):131-135.
[2] 張丹娜.基于GPS的車載監(jiān)控終端的設(shè)計及其實現(xiàn)[D].杭州:浙江工業(yè)大學(xué), 2013.
[3] 袁寧.基于Android智能手機(jī)的車輛遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計與開發(fā)[D].重慶:重慶大學(xué),2014.
[4] 黃宏程.Android移動應(yīng)用設(shè)計與開發(fā)[M].北京:人民郵電出版社, 2012.
[5] 雷鳴,靳婷,徐曉亮,等.面向龍芯平臺的Android系統(tǒng)移植研究[J].計算機(jī)工程與應(yīng)用,2012,48(22):70-73.
[6] 姚昱旻,劉衛(wèi)國.Android的架構(gòu)與應(yīng)用開發(fā)研究[J].計算機(jī)系統(tǒng)應(yīng)用,2008, 17(11):110-112.
[7] 蔡建平.軟件綜合開發(fā)案例教程[M].北京:清華大學(xué)出版社,2011.
[8] 孫迪,李沛鴻.百度地圖API在WebGIS中的應(yīng)用[J].河南科技,2013,(22):165-166.
[9] 柳林.移動終端導(dǎo)航系統(tǒng)中地圖匹配技術(shù)的研究與應(yīng)用[D].山東:山東科技大學(xué),2007.
[10] Pan F,Zhang L,Wang F.GIS and GPS Based Vehicle Guidance System[C].Intelligent Computation Technology and Automation,International Conference on.IEEE, 2008:251-254.
[11] Wang D,Song X,Zhu S, et al. Merging Assistance Method Based on Vehicle-infrastructure Cooperative Technology[J]. Journal of Highway & Transportation Research & Development,2012,29(7):50-52.
Design of vehicle monitoring system based on Android
In recent years, the rapid development of the social economy and the growing traffic congestion, making the existing transport services and management tools have been unable to meet the needs of people on the road traffic. In this paper, based on the Android design and implementation of the vehicle monitoring system, through the combination of satellite positioning and mobile Internet technology to achieve the goal of real-time vehicle positioning, expand the electronic fence function. The actual test results show that the design of the vehicle monitoring system based on Android is of high accuracy in coordinate map matching and strong expansibility.
GPS; Android system; wireless communication network; intelligent transportation
TP393
A
1008-1151(2016)02-0017-04
2016-01-10
教育部重點實驗室2015年主任基金資助項目“認(rèn)知無線電與信息處理”(CRKL150111)。
李沁璘(1989-),女,廣西桂林人,桂林電子科技大學(xué)信息與通信學(xué)院助教,研究方向為衛(wèi)星導(dǎo)航。