文/蔣東玉 田英鑫
移動物聯網的快速發展,尤其是在智能家居和智能交通等領域,移動物聯網正在不斷提高人們的生活品質。智能交通應用更多的是汽車導航,而行車其他方面的應用卻非常少,以致于行車中的各種有效信息無法交互與共享。行車助手APP不同于以往的導航應用,它實時收集路況信息進行路徑規劃,避開相對擁堵的路口,獲得最優行駛路線,車耗油量,節省了使用者的時間和燃油消耗等,減少城市擁堵或者緩解擁堵路面的車流量,而且符合節能減排、低碳生活的要求,具有一定的實用價值和社會意義。
通過對行車用戶需求分析,基于Android平臺下的行車助手APP主要分為歸屬地查詢、車流量信息查看、路況查詢、救援常識查詢和耗油量信息查詢等功能。
(1)歸屬地查詢:用戶通過車牌來查詢該車牌所屬的歸屬地,或者通過對歸屬地來查詢該地方的車牌號相關信息。
(2)車流量查看:查看某路段一公里內比較擁堵的道路。
(3)救援常識查詢:查看一些常見的緊急救援常識以及尋找最近汽車維修中心。
(4)路徑規劃:根據道路的路況和歷史車流量信息對每一段道路進行車流量預測和路況分析,給出一條最優路徑。
(5)耗油量信息查詢:耗油基本信息維護、根據公式來估算某段時間或路程內的耗油量和平時耗油量的統計與分析。
本系統架構分為四個層次,從上到下依次是應用層(Applications)、應用框架層(ApplicationFramework)、系統運行庫層(Lib和Runtime)、Linux內核層(linux kernel)。其中應用層包含數據處理、地圖設置、控件顯示和網絡連接,屬于上層的操作。Android依賴Linux內核2.6來提供核心服務,比如進程管理、網絡協議棧、硬件驅動。Linux內核則作為硬件層和系統軟件棧層之間的一個抽象層,這個操作系統并非類GNU/Linux的,系統初始化和編程接口都和標準的Linux系統是有所不同的。如圖1所示。

圖1:車行助手系統架構圖
百度提供了一套完整的地圖開發API,通過導入具體的包來布置地圖。百度地圖Android SDK是一套基于Android 2.1及以上版本設備的應用程序接口。該套SDK開發適用于Android系統移動設備的地圖應用,通過調用地圖SDK接口,可以輕松訪問百度地圖服務和數據,構建功能豐富、交互性強的地圖類應用程序。百度地圖Android SDK提供的所有服務是免費的,接口使用無次數限制。申請密鑰(key)后,就可以使用百度地圖Android SDK。
在行車最優路徑規劃中,除行駛距離外還需要考慮其它的因素,若在搜索路徑時把全部道路都考慮進去,不但浪費時間,而且其結果往往不能使駕駛員所接受。根據出行者的出行特點和道路特征,改進最短路徑的搜索策略,把某個時段的某一段道路擁擠程度分為五個等級應用到最短路徑算法當中,使算法更加合理,找到更符合駕駛員意愿的最短路徑,從而使算法更人性化。也使所得到的最短路徑更符合行車意義上的最優路徑要求。
在路徑規劃中,最短路徑算法是非常重要的環節,它決定了是否能準確、快速地給出一條合理到達目的地的路徑。因此,在最短路徑算法的設計中必須遵循運算速度快、路徑規劃合理的原則。因此在行車助手中提出了一種新的最優路徑算法,這種算法是基于經典最短路徑Dijkstra的算法。算法的基本思想就是不斷使用直接插入排序方法對最短路徑值數組進行“動態地址數組排序”,使臨時標記節點始終處于有序狀態,在求解最短路徑的過程中,容易從臨時標注節點集合中求出下一權值最小節點,從而節約了算法執行時間,使算法更加合理化。
本文基于Android平臺和Java技術,設計了一款行車助手APP軟件,實現了智能收集交通狀況信息和規避擁堵狀況的線路規劃功能,結果表明,該軟件界面簡單易用,操作便捷,為人們出行帶來了方便。