張曉艷 孫天宇 孫遜
摘 要:經(jīng)濟的發(fā)展使得車輛保有量不斷增加,汽車已經(jīng)成為當(dāng)今社會極為普遍的出行工具。國內(nèi)車輛多、行人多,道路交通狀況復(fù)雜,因此,提高行車安全是交通出行的首要原則。文章設(shè)計和實現(xiàn)了一個基于Android的行車助手APP,該APP除了常規(guī)行車過程視頻錄制和分享功能外,還實現(xiàn)了高架出入口、洗手間和加油站提示等常用地址導(dǎo)航等功能。
關(guān)鍵詞:Android;行車助手;行車記錄;導(dǎo)航
經(jīng)濟水平的提高和信息技術(shù)的發(fā)展使得國內(nèi)交通運輸業(yè)取得了快速發(fā)展[1],汽車已經(jīng)逐漸成為人們主要的出行工具。但由于國內(nèi)道路狀況復(fù)雜,機非混行、人車混行現(xiàn)象極為常見,而伴隨著汽車數(shù)量的不斷增加,交通事故發(fā)生率也在大幅攀升。在事故發(fā)生后,保存交通事故現(xiàn)場圖片和視頻等多媒體資料對事后分析、責(zé)任認(rèn)定具有重要意義。
目前,硬件行車記錄儀市場繁榮,品牌豐富,但許多記錄儀存在功能單一、布線繁瑣和價格昂貴等缺點?,F(xiàn)在應(yīng)用市場中也有較多基于Android操作系統(tǒng)的行車輔助類APP,功能各有側(cè)重,如劉寬等[2]開發(fā)的行車記錄儀具有行車視頻錄制、音樂播放的功能,段永成等[3]在行車記錄儀視頻處理中實現(xiàn)了去霧算法,岳曉慶[4]開發(fā)的行車服務(wù)助手具有撥打電話、定位等功能。
Android于2007年11月由Google公司推出,是一個基于Linux系統(tǒng)的開源移動操作系統(tǒng)。Android操作系統(tǒng)最大的優(yōu)勢在于平臺的開放性,開源的代碼也使其擁有更多的開發(fā)者,使其成為目前受歡迎的手機操作系統(tǒng)[5]。許多行車輔助APP選擇基于Android開發(fā),是因為其易與多數(shù)手機匹配,平臺開放性高。
本文針對現(xiàn)有常見硬件行車記錄儀和行車輔助類APP存在的問題,設(shè)計和實現(xiàn)了一套基于Android系統(tǒng)的行車助手APP。該APP除了硬件行車記錄儀視頻錄制等功能外,還實現(xiàn)了視頻分享、常用地址一鍵導(dǎo)航等功能。用戶可在閑置的Android手機中部署行車助手APP,可以提高閑置資源的再利用率,也節(jié)約了用戶資金。
1 系統(tǒng)設(shè)計
1.1 模塊設(shè)計
系統(tǒng)模塊設(shè)計之初,分別從駕駛員角度、交通管理部門角度考慮用戶需求,并結(jié)合交通法規(guī)、道路分類、常見交通場景、事故種類及發(fā)生原因等因素,調(diào)研了大量不同駕齡的駕駛員,充分研究了《中華人民共和國道路交通安全法》的各項條例,從交通管理部門查閱了多項事故案例、處理過程和處理結(jié)果。在收集了足夠數(shù)量的數(shù)據(jù)后,以符合國內(nèi)交通現(xiàn)狀、依法依規(guī)行駛、尊重駕駛習(xí)慣為前提,基于人、車、管理等角度進行分析,得出系統(tǒng)整體模塊結(jié)構(gòu)。
該行車助手APP分成行車記錄、行車記錄分享、行車導(dǎo)航和系統(tǒng)設(shè)置4個一級模塊,一級模塊下共設(shè)有9個二級模塊。
(1)行車記錄模塊:該模塊包含的二級模塊為行車圖片拍攝、行車視頻循環(huán)錄制、突發(fā)情況視頻存儲。
行車記錄主要的功能是記錄汽車前方實時影像,可實現(xiàn)行車視頻的循環(huán)錄制。為控制視頻文件大小,同時又保證視頻的清晰度,在該模塊中設(shè)定分辨率為1 024×1 024,調(diào)用手機內(nèi)置攝像頭,并指定手機內(nèi)部存儲路徑,循環(huán)錄制時間默認(rèn)為10 s允許用戶自行在指定范圍內(nèi)設(shè)置。行車過程中大部分時間為非事故狀態(tài),因此無需長久保存,以設(shè)定的時間間隔循環(huán)錄制。
但在行車遇到異常情況時,有永久保留視頻的需要,因此設(shè)有異常情況視頻存儲二級模塊。通過對傳感器狀態(tài)的偵測,通常當(dāng)汽車遭遇事故,會發(fā)生與普通行車狀態(tài)相異的振動,手機置于車內(nèi),會同步異常振動。設(shè)置加速傳感器檢測的振動閾值,當(dāng)偵測的手機傳感器振動值大于等于閾值時,則進入該模塊,將該部分視頻進行永久存儲,保留異?,F(xiàn)場情況。
(2)行車記錄分享模塊:該模塊包含的二級模塊為行車視頻瀏覽、行車視頻評論。
行車記錄分享模塊的設(shè)計意圖是增加APP的社交功能,也是增加用戶使用樂趣的一個模塊。通過分享平臺,用戶可將本人手機中存儲的視頻,分類分享行車過程的趣事、交通事故教訓(xùn)等,其他注冊用戶可瀏覽分享平臺中的行車視頻,同時也可對行車視頻進行點贊、評論,討論行車方法,增強自身行車安全意識。
(3)行車導(dǎo)航模塊:該模塊包含的二級模塊為高架助手、加油站導(dǎo)航、洗手間導(dǎo)航。
該模塊包含高架助手、加油站導(dǎo)航和洗手間導(dǎo)航3大功能。考慮到許多司機不熟悉外地路況,在該APP專門設(shè)置高架助手功能,對城市中高架道路的出入口進行詳細全面的標(biāo)注,用戶通過該功能可以在行車前查看高架出入口信息,解決司機用戶對高架出入口不熟悉的問題。另外,行車途中需要加油或休息,加油站導(dǎo)航功能和洗手間功能列出了當(dāng)前行車點附近的加油站和洗手間信息,用戶可以一鍵導(dǎo)航,無需另外啟動百度、高德地圖中再完成輸入、查詢和導(dǎo)航,提高用戶使用系統(tǒng)的便捷性。
(4)系統(tǒng)設(shè)置模塊:該模塊包含的二級模塊為錄制模式設(shè)置、導(dǎo)航設(shè)置。
該模塊針將錄制模式、默認(rèn)導(dǎo)航等多個參數(shù)設(shè)置成動態(tài)可變,提高系統(tǒng)的靈活性,滿足不同類型用戶的需求,提高用戶的使用體驗度。
1.2 客戶端界面設(shè)計
行車助手APP客戶端的界面設(shè)計設(shè)有啟動歡迎頁面,經(jīng)5 s等待時間,自動進入顯示有4個按鈕的主界面,通過按鈕分別進入主頁、分享、導(dǎo)航和設(shè)置4個一級模塊界面,每一級使用Intent方式跳轉(zhuǎn)至二級模塊界面。在每個界面中均添加“視頻錄制”懸浮按鈕,實現(xiàn)視頻錄制的一鍵啟用。
2 系統(tǒng)實現(xiàn)
2.1 行車視頻錄制
行車視頻錄制采用MediaRecorder和Camera組件實現(xiàn),MediaRecorder是基于底層OpenCore(Packet Video)庫而實現(xiàn)。循環(huán)錄制視頻采用可自定義錄制時間以及文件大小的方式。針對手機拍攝視角窄的問題,通過給手加裝魚眼鏡頭,提高拍攝角度寬度,加裝廣角鏡頭的手機或平板拍攝角度最大可擴展120°左右,相對行車記錄儀普通的鏡頭,能夠捕捉到更多的細節(jié)。
2.2 行車記錄分享
行車記錄分享采用OkHttp開發(fā)庫實現(xiàn),OkHttp庫是由Square公司提供的基于HTTP協(xié)議的開發(fā)庫[6],用于實現(xiàn)APP對網(wǎng)絡(luò)的訪問。APP采用兩種視頻上傳模式,一種由用戶自主選擇上傳,一種是緊急備份上傳,在行車錄制發(fā)生緊急碰撞時,系統(tǒng)會將緊急視頻上傳至服務(wù)器,避免手機內(nèi)存卡的損壞導(dǎo)致視頻的丟失,判斷是否為緊急碰撞同樣通過對手機的傳感器振動值變化的監(jiān)測實現(xiàn)。
2.3 行車導(dǎo)航
行車導(dǎo)航功能基于百度地圖SDK,接入百度地圖的開放接口。APP首先在地圖數(shù)據(jù)庫中將高架入口、行車點附近的加油站和洗手間等功能點標(biāo)注出來。
而后通過GPS定位讀取的手機當(dāng)前位置信息,如果判斷用戶的當(dāng)前位置信息顯示低于位置閾值,附近的加油站和洗手間等信息將顯示在APP界面上,獲取定點坐標(biāo)主要代碼如下。
//獲取查詢到的POI詳情的poi坐標(biāo)
LatLng poiDetailResultLocation =poiDetailResult.getLocation();
poiDetailLat=poiDetailResultLocation.latitude;
poiDetailLong=poiDetailResultLocation.longitude;
//獲取查詢到的POI詳情的poi地址
String poiDetailAddress =poiDetailResult.getAddress();
//計算距離
distance=DistanceUtil.getDistance(myPosition,poiDetailResultLocation);
3 結(jié)語
移動互聯(lián)的各項技術(shù)為駕駛員便捷行車提供了新的實現(xiàn)途徑,該APP基于應(yīng)用數(shù)量占市場主導(dǎo)的Android技術(shù)設(shè)計與實現(xiàn)了行車助手APP。APP主要實現(xiàn)了行車視頻錄制、視頻分享社交功能和標(biāo)注點導(dǎo)航功能,其中行車視頻錄制功能和導(dǎo)航功能是該APP的核心功能。
[參考文獻]
[1]趙娜,袁家斌,徐晗.智能交通系統(tǒng)綜述[J].計算機科學(xué),2014(11):7-11,45.
[2]劉寬,譚大禹.基于Android的智能行車記錄儀的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2017(3):211-214.
[3]段永成,趙曙光,王建強,等.基于安卓手機的行車記錄儀設(shè)計[J].信息通信,2018(9):73-74.
[4]岳曉慶.基于Android的行車服務(wù)助手的設(shè)計與實現(xiàn)[D].北京:首都經(jīng)濟貿(mào)易大學(xué),2017.
[5]黃婧,張林,季刊,等.基于Android平臺的GPRS流量統(tǒng)計系統(tǒng)[J].計算機系統(tǒng)應(yīng)用,2011(12):141-143.
[6]李群.基于OkHttp的文件傳輸設(shè)計與實現(xiàn)[J].電子技術(shù)與軟件工程,2018(13):180-181.