個(gè)人消費(fèi)類電子
- 首頁(yè) >> 新聞資訊 >> 博客文章 >> 個(gè)人消費(fèi)類電子
安卓行車記錄儀控制板開發(fā)
隨著我國(guó)社會(huì)經(jīng)濟(jì)的不斷發(fā)展,交通運(yùn)輸業(yè)得到了快速發(fā)展,機(jī)動(dòng)車數(shù)量急劇增加,其中私家車隊(duì)伍也在不斷壯大,交通管理的規(guī)模和等級(jí)逐步擴(kuò)大,由此帶來(lái)的問(wèn)題也不斷增多。為此,實(shí)施智能交通管理,提高駕駛安全性能,改善交通亂象,越來(lái)越為行業(yè)所關(guān)注。作為保障汽車行駛安全的智能汽車行駛記錄儀APP應(yīng)運(yùn)而生,因?yàn)樵谛熊囘^(guò)程中,可能會(huì)遇到很多突發(fā)事件,保留合適的現(xiàn)場(chǎng)資料成為應(yīng)對(duì)突發(fā)事件不可缺少的環(huán)節(jié),對(duì)其的研究、開發(fā)和應(yīng)用也吸引了部分IT從業(yè)者。
本論文的研究基于Android平臺(tái),在該平臺(tái)下,進(jìn)行智能行車記錄儀APP的設(shè)計(jì)與實(shí)現(xiàn),即不單獨(dú)設(shè)計(jì)硬件,借用安卓手機(jī)實(shí)現(xiàn)智能行車記錄功能。當(dāng)前,手機(jī)的更新?lián)Q代速度越來(lái)越快,很多人有兩個(gè)及兩個(gè)以上的手機(jī),二手手機(jī)買賣的價(jià)格較低,回收處理較復(fù)雜,而且目前國(guó)內(nèi)手機(jī)回收處理產(chǎn)業(yè)不發(fā)達(dá),所以可以利用淘汰的舊手機(jī)作為智能行車記錄儀APP的硬件平臺(tái),節(jié)省硬件成本。目前,人們對(duì)手機(jī)的操作比較熟練,開發(fā)智能行車記錄儀APP某種程度上也方便了人們的使用。
基于以上結(jié)論,本文設(shè)計(jì)一種基于Android平臺(tái)的智能行車記錄儀APP,下面進(jìn)行詳細(xì)闡述。
一、行車記錄儀系統(tǒng)功能設(shè)計(jì)
Android系統(tǒng)底層是基于Linux 2.6版本的內(nèi)核,如進(jìn)程管理、文件系統(tǒng)等,內(nèi)核是上層軟件與底層硬件通信的橋梁。An?droid系統(tǒng)框架大致可分為四個(gè)部分:應(yīng)用程序?qū)?、?yīng)用框架層、庫(kù)和Android運(yùn)行時(shí)、Linux內(nèi)核。
本系統(tǒng)是在Android應(yīng)用程序?qū)娱_發(fā),根據(jù)需求,該手機(jī)應(yīng)用主要有以下幾種功能,一是根據(jù)出行方式的不同給出路線規(guī)劃,二是根據(jù)起點(diǎn)和終點(diǎn)給出實(shí)時(shí)導(dǎo)航,三是根據(jù)手機(jī)的方向傳感器給出方向和經(jīng)緯度,四是拍照和錄像功能,五是活動(dòng)的展示,六是音樂(lè)播放界面和功能的實(shí)現(xiàn),七是新聞和周邊頁(yè)面的查看,八是文件管理功能,包括圖片和視頻的縮略圖、列表展示功能,圖片的查看和視頻的播放功能,圖片和視頻文件的一鍵清理和分享功能,再者是連接到電腦,使用電腦管理手機(jī)文件。
二、行車記錄儀系統(tǒng)功能實(shí)現(xiàn)
該系統(tǒng)客戶端使用Activity、Service兩大組件,充分利用In?tent通信機(jī)制,并輔以SharedPreferences存儲(chǔ)數(shù)據(jù),HTTP協(xié)議和服務(wù)器通信,同時(shí)使用Mob移動(dòng)開發(fā)者服務(wù)平臺(tái)和百度地圖開發(fā)平臺(tái)提供的服務(wù),成功構(gòu)建了一款功能豐富的智能行車記錄儀APP。
該系統(tǒng)服務(wù)端使用Servlet接收客戶端發(fā)送的請(qǐng)求,由于只需要返回給客戶端數(shù)據(jù),而不需要通過(guò)瀏覽器展示圖形界面,所以不需要編寫jsp。該系統(tǒng)采用MySQL數(shù)據(jù)庫(kù),在服務(wù)器和數(shù)據(jù)庫(kù)之前使用jdbc橋連接。
2.1導(dǎo)航
(1)百度地圖SDK:百度地圖Android SDK是一套基于Android 2.1及以上版本設(shè)備的應(yīng)用程序接口,通過(guò)調(diào)用SDK接口,可以訪問(wèn)百度地圖的服務(wù)和數(shù)據(jù),其提供的所有服務(wù)都是免費(fèi)的,接口使用可以無(wú)次數(shù)限制。使用時(shí),必須先申請(qǐng)密匙(key),并在Mainfest.xml中設(shè)置Accesskey,在application標(biāo)簽中加入<meta-data android:name="com.baidu.lbsapi.API_KEY"android:value="key"/>,并聲明相應(yīng)權(quán)限,同時(shí)要導(dǎo)入相應(yīng)的資源Jar包,.so動(dòng)態(tài)庫(kù)。百度地圖提供普通的2D、3D地圖、衛(wèi)星圖,同時(shí)支持POI檢索,地理編碼與反編碼,線路規(guī)劃,地圖覆蓋物,位置定位等特色服務(wù)。下面簡(jiǎn)單介紹本系統(tǒng)使用到的技術(shù)。
百度地圖Android定位SDK是為Android移動(dòng)端應(yīng)用提供的一套簡(jiǎn)單易用的LBS(Location Based Service,基于位置的服務(wù))定位服務(wù)接口,可以提供GPS、基站、WiFi等定位方式。使用需先在xml文件中添加MapView,然后開啟定位圖層。定位初始化過(guò)程中,首先實(shí)例化LocationClient,然后注冊(cè)定位監(jiān)聽,最后設(shè)置定位參數(shù),如坐標(biāo)系的選擇,定位時(shí)間間隔的控制等。定位監(jiān)聽函數(shù)會(huì)返回位置信息,通過(guò)對(duì)位置信息的設(shè)置,即可顯示在界面上。在退出定位界面時(shí)應(yīng)關(guān)閉定位圖層,銷毀LocationClient,防止內(nèi)存泄露。百度地圖Android導(dǎo)航SDK與之原理類似,不再贅述。
(2)功能實(shí)現(xiàn):首先,人們使用導(dǎo)航功能時(shí),更多的是需要找到從當(dāng)前位置到某一地點(diǎn)的路線,所以,本系統(tǒng)首先使用百度地圖定位SDK獲取到當(dāng)前位置,并在頁(yè)面上繪制出來(lái)街道、熱點(diǎn)等標(biāo)志,給用戶提供導(dǎo)航依據(jù)。然后,在頁(yè)面上起點(diǎn)和終點(diǎn)輸入框可以輸入地點(diǎn),在輸入時(shí)會(huì)觸發(fā)聯(lián)想詞功能(Sug?gestionSearch),智能提示用戶相應(yīng)地點(diǎn)。
2.2文件管理
本系統(tǒng)需要管理的文件為視頻和圖片文件,視頻文件為調(diào)用系統(tǒng)攝像機(jī)錄像生成的,圖片文件為調(diào)用系統(tǒng)照相機(jī)拍攝生成的,生成的文件都存儲(chǔ)在自定義的文件下,這是為了把行車記錄儀文件和手機(jī)中的其他文件區(qū)分開來(lái),便于管理。為了提高用戶體驗(yàn),在文件管理界面,提供列表和縮略圖展示功能,點(diǎn)擊列表中的文件和縮略圖都可以進(jìn)行播放,同時(shí)常按縮略圖會(huì)跳出自定義對(duì)話框,自定義對(duì)話框功能為分享、刪除文件等。
(1)縮略圖實(shí)現(xiàn):無(wú)論圖片還是視頻縮略圖均使用GridView布局,為Grid?View添加Adapter便可根據(jù)文件的個(gè)數(shù)動(dòng)態(tài)添加縮略圖個(gè)數(shù)。此處為采用回調(diào)的方式自定義Adapter繼承BaseAdapter,要實(shí)現(xiàn)的有四個(gè)方法,其中最重要的有兩個(gè),getCount()和getView(),getCount()返回縮略圖的個(gè)數(shù),getView()返回縮略圖,在返回縮略圖的過(guò)程中需要?jiǎng)?chuàng)建一個(gè)ImageView對(duì)象,而利用ViewHold?er和convertView結(jié)合便可以不重復(fù)創(chuàng)建ImageView對(duì)象,con?vertView.setTag()便是把創(chuàng)建的ImageView對(duì)象保存在convert?View中,以待復(fù)用,convertView.getTag()便是把保存在convert?View中的ImageView取出,進(jìn)行復(fù)用。以上是把生成的縮略圖顯示在界面上,而生成圖片的縮略圖文件則用到了位圖工廠BitmapFactory,通過(guò)BitmapFactory可以生成一個(gè)原圖片的拷貝,同時(shí)其格式為bitmap,便可以修改大小了,這樣最終得到的圖片便是需要的縮略圖文件。而生成視頻的縮略圖文件則先通過(guò)ThumbnailUtils來(lái)創(chuàng)建一個(gè)視頻的縮略圖,然后再利用ThumbnailUtils來(lái)生成指定大小的縮略圖。生成縮略圖是一個(gè)耗時(shí)操作,這時(shí)可以利用異步加載,在子線程中處理生成縮略圖的部分,而主線程負(fù)責(zé)顯示在界面上。本系統(tǒng)利用自定義異步類繼承AsyncTask,重寫doInBack?ground和onPostExecute兩個(gè)方法,便可以實(shí)現(xiàn)想要的功能。
(2)查看圖片功能:為了能夠全屏顯示,首先通過(guò)DisplayMetrics獲得屏幕分辨率,然后把獲得到的圖片經(jīng)過(guò)BitmapFactory生成全屏的圖片。
(3)視頻播放功能:首先播放時(shí)通過(guò)WindowManager把狀態(tài)欄隱藏,而播放視頻,首先需要解碼,原生的Android視頻播放框架支持的格式很小,這時(shí)可以利用一些開源的框架,如百度的Android播放器SDK或者vitamio這種全能多媒體開發(fā)框架,支持硬件解碼與GPU渲染。本系統(tǒng)采用的是百度的Android播放器SDK,通過(guò)BVid?eoView為媒體播放顯示提供支持,BMediaController為媒體播放控制提供支持,在使用這些時(shí),需導(dǎo)入Jar包、.so動(dòng)態(tài)庫(kù)和相應(yīng)的資源文件。
2.3音樂(lè)播放器
為了實(shí)現(xiàn)音樂(lè)播放功能,首先自定義服務(wù),通過(guò)繼承An?droid四大組件之一的Service來(lái)實(shí)現(xiàn)后臺(tái)音樂(lè)服務(wù),Service可以理解為沒(méi)有界面的Activity,但Service比Activity有更高的優(yōu)先級(jí)。在定義服務(wù)中通過(guò)Handler機(jī)制實(shí)現(xiàn)刷新進(jìn)度條、持續(xù)時(shí)間、當(dāng)前音樂(lè)名稱等UI界面,同時(shí)提供了播放當(dāng)前音樂(lè),播放下一首,暫停播放等方法,實(shí)現(xiàn)這些方法需要調(diào)用Android的MediaPlayer類。而獲取音樂(lè)信息需要另一個(gè)組件ContentResolver,ContentProvider和ContentResolver是一對(duì),Con?tentProvider用來(lái)提供內(nèi)容給其他應(yīng)用來(lái)操作,ContentResolver用來(lái)操作自己或其他應(yīng)用數(shù)據(jù)。通過(guò)ContentResolver查詢到Media信息,然后把這些信息封裝到一個(gè)Parcelable類中,提供給Service進(jìn)行處理。音樂(lè)列表的展示則通過(guò)ListView來(lái)實(shí)現(xiàn)。在Activity中調(diào)用Service服務(wù)時(shí),首先通過(guò)ServiceConnec?tion獲得自定義服務(wù)通過(guò)onBind返回的IBinder對(duì)象,通過(guò)IB?inder對(duì)象可以調(diào)用Service中的所有public訪問(wèn)權(quán)限的方法,還可以通過(guò)注冊(cè)BroadcastReceiver接收Service發(fā)送的廣播執(zhí)行相應(yīng)操作。Android的IPC通信采用了更適合自己的IBinder機(jī)制,而不是Linux的信號(hào)量、共享內(nèi)存、消息隊(duì)列等通信方式。
2.4天氣情況
對(duì)于天氣情況這種需要獲取實(shí)時(shí)數(shù)據(jù)的服務(wù),需要找提供穩(wěn)定且準(zhǔn)確數(shù)據(jù)的數(shù)據(jù)服務(wù)商,本系統(tǒng)選擇的是百度天氣API。首先通過(guò)百度地圖定位返回手機(jī)使用者所在的城市,然后創(chuàng)建一個(gè)子線程,使用Http協(xié)議獲取到天氣數(shù)據(jù),百度天氣返回的天氣數(shù)據(jù)為xml格式,通過(guò)解析xml即可獲得實(shí)時(shí)天氣數(shù)據(jù),然后利用Handler刷新主線程,把天氣情況顯示在主界面上。
2.5個(gè)人中心
個(gè)人中心采用WebService和Android結(jié)合的C/S結(jié)構(gòu)方法設(shè)計(jì),要實(shí)現(xiàn)個(gè)人中心頁(yè)面,必須要實(shí)現(xiàn)注冊(cè)、登陸功能,首先要搭建數(shù)據(jù)庫(kù),存儲(chǔ)用戶名、密碼等信息,本系統(tǒng)采用MySQL數(shù)據(jù)庫(kù),具體數(shù)據(jù)結(jié)構(gòu)如下表1所示。首先,在MyEclipse中新建一個(gè)Web Project,其中通過(guò)JDBC橋連接數(shù)據(jù)庫(kù),JDBC橋是java提供的一套訪問(wèn)數(shù)據(jù)庫(kù)的統(tǒng)一API。然后新建兩個(gè)Servlet,一個(gè)為客戶端登陸提供響應(yīng),一個(gè)為客戶端注冊(cè)提供響應(yīng),都是部署在Tomcat下客戶端發(fā)送請(qǐng)求,服務(wù)器端完成注冊(cè)或登陸驗(yàn)證的操作,這之間通過(guò)Request和Re?sponse來(lái)攜帶數(shù)據(jù),最終實(shí)現(xiàn)客戶端登陸、注冊(cè)功能。
總結(jié)
針對(duì)當(dāng)前行車安全的現(xiàn)狀,設(shè)計(jì)并實(shí)現(xiàn)了基于Android的行車記錄儀APP,這種設(shè)計(jì)不但有助于改善交通亂象,同時(shí)節(jié)省了硬件成本。在功能設(shè)計(jì)上,該系統(tǒng)不僅可以對(duì)路徑進(jìn)行定位和導(dǎo)航,可以拍照、攝像,并對(duì)圖片和視頻文件進(jìn)行管理,同時(shí)提供音樂(lè)播放等功能,充分滿足用戶駕駛過(guò)程中的需要。隨著用戶空間的不斷完善,使用者會(huì)體驗(yàn)到更滿意的服務(wù)。
以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的基于Android的智能行車記錄儀的設(shè)計(jì)與開發(fā)示例。如果您有行車記錄儀方案開發(fā)需求,可以放心交給我們。我們代理多種單片機(jī)、語(yǔ)音芯片、雙模藍(lán)牙IC、wifi芯片。品牌有松翰單片機(jī)、應(yīng)廣單片機(jī)、杰理藍(lán)牙、安凱藍(lán)牙、全志、瑞昱(realtek)。我們的技術(shù)服務(wù)范圍有:PCB設(shè)計(jì)、單片機(jī)開發(fā)、藍(lán)牙方案、軟硬件定制開發(fā)、APP開發(fā)、小程序開發(fā)、微信公眾號(hào)開發(fā)等。還可以承接智能電子產(chǎn)品方案設(shè)計(jì)、生活電器開發(fā)、美容儀器研發(fā)、物聯(lián)網(wǎng)平臺(tái)應(yīng)用、智能家居控制系統(tǒng)、TWS耳機(jī)、藍(lán)牙耳機(jī)音箱開發(fā)、兒童益智玩具方案開發(fā)、電子教育產(chǎn)品方案設(shè)計(jì)等。
- 返回頂部