高德API下基于SMM架構(gòu)的車輛疏導(dǎo)系統(tǒng)搭建分析,計(jì)算機(jī)應(yīng)用技術(shù)論文_第1頁(yè)
高德API下基于SMM架構(gòu)的車輛疏導(dǎo)系統(tǒng)搭建分析,計(jì)算機(jī)應(yīng)用技術(shù)論文_第2頁(yè)
高德API下基于SMM架構(gòu)的車輛疏導(dǎo)系統(tǒng)搭建分析,計(jì)算機(jī)應(yīng)用技術(shù)論文_第3頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

高德API下基于SMM架構(gòu)的車輛疏導(dǎo)系統(tǒng)搭建分析,計(jì)算機(jī)應(yīng)用技術(shù)論文摘要:隨著社會(huì)經(jīng)濟(jì)的發(fā)展,人民生活水平的提高,車輛扎堆寸步難行,這是我們國(guó)家“城市病〞的典型異常感覺(jué)和狀態(tài)。堵車很大原因是車輛行駛沒(méi)有全局規(guī)劃,本項(xiàng)目在高德API下二次開(kāi)發(fā),設(shè)計(jì)并搭建了基于SMM架構(gòu)的車輛疏導(dǎo)系統(tǒng)。本文從軟件技術(shù)出發(fā),完成車輛管理服務(wù)器端的設(shè)計(jì)和終端APP開(kāi)發(fā),再使用相應(yīng)指標(biāo)對(duì)該系統(tǒng)進(jìn)行了效率分析與性能檢測(cè)。本文關(guān)鍵詞語(yǔ):車輛疏導(dǎo);系統(tǒng)搭建;效率分析;SpringBoot是一個(gè)基于Spring框架,可供快速開(kāi)發(fā),十分合適構(gòu)建微服務(wù)系統(tǒng)。其另外還封裝了各類套件,比方mybatis、hibernate、redis、mongodb等。該框架搭建起來(lái)的應(yīng)用,它會(huì)嵌入Tomcat、Jetty或者Undertow等服務(wù)器,并且不需要傳統(tǒng)的WAR文件進(jìn)行部署,也就是講搭建SpringBoot項(xiàng)目并不需要單獨(dú)下載Tomcat等傳統(tǒng)的服務(wù)器;同時(shí)提供通過(guò)Maven〔或者Grandle〕依靠的starter,這些starter能夠直接獲取開(kāi)發(fā)所需的相關(guān)包,通過(guò)這些starter項(xiàng)目就能JavaApplication的形式運(yùn)行SpringBoot的項(xiàng)目,而無(wú)須其他服務(wù)器配置;對(duì)于配置,SpringBoot提供Spring框架的最大自動(dòng)化配置,大量使用自動(dòng)配置,使得開(kāi)發(fā)者對(duì)Spring的配置盡量減少;除此之外還提供了一些監(jiān)測(cè)、自動(dòng)檢測(cè)的功能和外部配置,與此同時(shí)沒(méi)有附加代碼和XML的配置要求。1、系統(tǒng)介紹本項(xiàng)目在高德API下二次開(kāi)發(fā),設(shè)計(jì)并搭建了基于SMM架構(gòu)的車輛疏導(dǎo)系統(tǒng),本次設(shè)計(jì)是在Windows平臺(tái)下,使用SpringBoot作為系統(tǒng)的后臺(tái)整體基礎(chǔ)架構(gòu),使用Java語(yǔ)言完成終端安卓APP的編寫(xiě),項(xiàng)目使用阿里云服務(wù)器部署并上線。系統(tǒng)功能包括車輛報(bào)備、車輛定位、道路規(guī)劃、路程反應(yīng)等,疏導(dǎo)系統(tǒng)會(huì)根據(jù)目的地、出發(fā)地以及途徑策略設(shè)置,為用戶量身設(shè)計(jì)出行方案。同時(shí)可結(jié)合實(shí)時(shí)交通,幫助用戶繞開(kāi)擁堵路段,提供更貼心、更人性化的出行體驗(yàn)。2、軟件設(shè)計(jì)2.1、服務(wù)器搭建。后臺(tái)采取stringboot+mysql+mybatis搭建服務(wù)器接口,實(shí)現(xiàn)數(shù)據(jù)傳輸及存儲(chǔ)。stringboot來(lái)管理整個(gè)應(yīng)用中所有對(duì)象的開(kāi)創(chuàng)建立、初始化、銷毀,及對(duì)象間關(guān)聯(lián)關(guān)系的維護(hù)。同時(shí)作為View層的實(shí)現(xiàn)者,完成用戶的請(qǐng)求接收功能,完成用戶請(qǐng)求的轉(zhuǎn)發(fā)及對(duì)用戶的響應(yīng)。mysql是服務(wù)器數(shù)據(jù)庫(kù),MyBatis作為Dao層的實(shí)現(xiàn)者實(shí)現(xiàn)對(duì)用戶車輛信息、車輛軌跡、信息推送等數(shù)據(jù)庫(kù)的增刪改查功能。2.2、APP的開(kāi)發(fā)。APP由主應(yīng)用服務(wù)中間層以及后臺(tái)管理系統(tǒng)相配合,通過(guò)app、數(shù)據(jù)庫(kù)的設(shè)計(jì),以及對(duì)服務(wù)器和支付api的引用,實(shí)現(xiàn)一套完好的車輛疏導(dǎo)。終端采取MVP架構(gòu)搭建app框架,使用面向接口編程思想將View層與Model層進(jìn)行完全分離,業(yè)務(wù)代碼和邏輯代碼解耦;主界面UI采用ViewPager嵌套Fragment的方式,進(jìn)行完全lazyLoad,根據(jù)Fragment生命周期的可見(jiàn)性來(lái)判定界面的可見(jiàn)性來(lái)加載網(wǎng)絡(luò)數(shù)據(jù),優(yōu)化網(wǎng)絡(luò)api的設(shè)置,減少數(shù)據(jù)解析時(shí)間和網(wǎng)絡(luò)訪問(wèn)時(shí)間,提高性能;界面內(nèi)的通信均采用jetpackliveData,以及l(fā)ifecycleHandler進(jìn)行通信,有效防止數(shù)據(jù)丟失及不必要的內(nèi)存泄露;網(wǎng)絡(luò)模塊使用Retrofit加載網(wǎng)絡(luò)數(shù)據(jù),對(duì)獲取到的數(shù)據(jù)進(jìn)行解析并序列化,結(jié)合DiskLruCache實(shí)現(xiàn)二級(jí)緩存,到達(dá)節(jié)省流量的同時(shí),也能免去重復(fù)地解析數(shù)據(jù)的步驟,提高APP整體的閱讀流暢度。圖片顯示基于glide做了圖片顯示的優(yōu)化,尤其對(duì)gif圖片的優(yōu)化,在原生基礎(chǔ)上進(jìn)行了NDK層面優(yōu)化,提升了glide性能,配合PhotoView實(shí)現(xiàn)圖片緩存同時(shí),也實(shí)現(xiàn)圖片的放大縮小,防止OOM現(xiàn)象。3、技術(shù)關(guān)鍵3.1、環(huán)信即時(shí)通訊集成全類型消息:支持文字、表情、圖片、語(yǔ)音、視頻、附件、地理位置、擴(kuò)展消息、透?jìng)飨?、自定義消息等全類型消息收發(fā);實(shí)時(shí)音視頻:支持1對(duì)1、多對(duì)多音視頻、音視頻連麥等場(chǎng)景。低成本低延時(shí)、高品質(zhì)、抗丟包抗抖動(dòng)、百萬(wàn)級(jí)并發(fā)、全球多節(jié)點(diǎn)覆蓋;推送服務(wù):服務(wù)端支持對(duì)接APNS〔蘋(píng)果〕、Google、華為、小米、OPPO、VIVO、魅族等各大消息推送平臺(tái);3.2、高德地圖獵鷹軌跡服務(wù)多種道路規(guī)劃:駕車道路規(guī)劃、公交道路規(guī)劃、騎行道路規(guī)劃、步行道路規(guī)劃;自定義避讓區(qū)域或道路:想不走哪里就不走哪里;軌跡糾偏:針對(duì)定位偏移、定位缺失、定位間隔大等情況造成的軌跡異常,獵鷹提供基于路網(wǎng)和途徑規(guī)劃的軌跡糾偏補(bǔ)路功能,可將偏移點(diǎn)糾正到正確的道路上,呈現(xiàn)連貫、平滑的軌跡;空間檢索:提供多種空間檢索能力,支持檢索圓形、多邊形、行政區(qū)范圍內(nèi)的終端,可實(shí)現(xiàn)搜索當(dāng)下地圖視野內(nèi)終端或指定區(qū)域內(nèi)終端的功能;軌跡存儲(chǔ):基于成熟穩(wěn)定的阿里云服務(wù),對(duì)用戶上傳的軌跡數(shù)據(jù)進(jìn)行存儲(chǔ),保證數(shù)據(jù)穩(wěn)定;軌跡查詢:針對(duì)用戶已經(jīng)上傳成功的軌跡,我們提供高性能的軌跡查詢服務(wù),開(kāi)發(fā)者可隨時(shí)查詢?nèi)我鈺r(shí)間段的軌跡。3.3、騰訊優(yōu)圖車輛屬性辨別集成準(zhǔn)確率高:準(zhǔn)確率高于90%,基于海量大數(shù)據(jù)持續(xù)迭代,不斷優(yōu)化辨別精度;適用場(chǎng)景廣:對(duì)于道路卡口、出入口、街拍圖片均具有較好的辨別效果,同時(shí)支持車身正向、側(cè)向等不同角度情況下的辨別;交通車輛信息構(gòu)造化:對(duì)于道路、停車場(chǎng)等各種監(jiān)控場(chǎng)景,構(gòu)造化車輛信息數(shù)據(jù),可用于相關(guān)數(shù)據(jù)檢索或信息挖掘。3、碰到的問(wèn)題以及解決方案3.1、問(wèn)題1:電量消耗過(guò)大系統(tǒng)集成多組件開(kāi)發(fā),多耗電大戶同時(shí)運(yùn)行。電量?jī)?yōu)化程度在一定程度上決定了用戶的體驗(yàn)感。我們需要考慮的是怎樣優(yōu)化電量使用,讓我們的App不會(huì)由于電量消耗過(guò)高被用戶排擠,或者被其他安全應(yīng)用報(bào)告,以此確保用戶黏性。問(wèn)題解析:(1〕優(yōu)化應(yīng)用的后臺(tái)耗電:避免后臺(tái)長(zhǎng)時(shí)間獲取WakeLock、WiFi和藍(lán)牙的掃描等。(2〕網(wǎng)絡(luò)優(yōu)化:指定三種不同狀態(tài)消耗方案〔Fullpower:高功率狀態(tài),移動(dòng)網(wǎng)絡(luò)連接被激活,允許設(shè)備以最大的傳輸速率進(jìn)行操作;Lowpower:低功耗狀態(tài),對(duì)電量的消耗差不多是Fullpower狀態(tài)下的50%;Standby:空閑態(tài),沒(méi)有數(shù)據(jù)連接需要傳輸,電量消耗最少?!?3〕計(jì)算優(yōu)化〔在native層開(kāi)發(fā)時(shí),能夠利用ARMneon指令集做并行運(yùn)算〕(4〕界面優(yōu)化〔離開(kāi)界面后停止相關(guān)活動(dòng),例如關(guān)閉動(dòng)畫(huà),耗電操作判定前后臺(tái),假如是后臺(tái)則不執(zhí)行相關(guān)操作?!?5〕定位優(yōu)化〔根據(jù)場(chǎng)景慎重選擇定位形式:對(duì)定位準(zhǔn)確度沒(méi)那么高的場(chǎng)景能夠選擇低精度形式。能夠考慮網(wǎng)絡(luò)定位代替GPS。使用后務(wù)必及時(shí)關(guān)閉,減少更新頻率,例如定位開(kāi)啟一定時(shí)間后超過(guò)某個(gè)閾值能夠執(zhí)行一個(gè)兜底策略:強(qiáng)迫關(guān)閉GPS?!?.2、問(wèn)題2:系統(tǒng)崩潰1〕確定重點(diǎn):A確認(rèn)嚴(yán)重程度。B優(yōu)先解決Top崩潰或?qū)I(yè)務(wù)有重大影響的崩潰:如啟動(dòng)、支付經(jīng)過(guò)的崩潰cJava崩潰:假如是OOM,需進(jìn)一步查看日志中的內(nèi)存信息和資源信息,下面會(huì)分析。CNative崩潰:查看signal、code、faultaddr以及崩潰時(shí)的Java堆棧2〕查找共性:機(jī)型、系統(tǒng)、ROM、廠商、ABI這些信息都能夠作為共性參考,對(duì)于下一步復(fù)現(xiàn)問(wèn)題有明確指引。3〕嘗試復(fù)現(xiàn):復(fù)現(xiàn)之后再增加日志或使用Debugger、GDB進(jìn)行調(diào)試。使用以上步驟,我們解決了幾個(gè)常見(jiàn)的異常:異常1:Android7.0ToastBadTokenException解決:代理Toast里的mTN(handler〕就能夠?qū)崿F(xiàn)捕獲異常異常2:SharedPreferenceapply引起的ANR問(wèn)題解決:拿到HookActivityThrad的Handler變量,給其設(shè)置一個(gè)Callback,Handler的dispatchMessage中會(huì)先處理callback。最后在Callback中調(diào)用隊(duì)列的清理工作,注意隊(duì)列清理需要反射調(diào)用QueuedWork。異常3:TimeoutExceptin異常解決:它是由系統(tǒng)的FinalizerWatchdogDaemon拋出來(lái)的,我們對(duì)該異常進(jìn)行了躲避。stop方式方法,在Android6.0之前會(huì)有線程同步問(wèn)題。由于6.0之前調(diào)用threadToStop的interrupt方式方法是沒(méi)有加鎖的,所以可能會(huì)有線程同步的問(wèn)題。3.3、問(wèn)題3:內(nèi)存抖動(dòng)需求:在APP中需要加載大量服務(wù)器圖片難點(diǎn):我們的APP需要申請(qǐng)一塊內(nèi)存來(lái)存放圖片的時(shí)候,系統(tǒng)以為我們的程序需要的內(nèi)存過(guò)大,不分配給我們的APP,拋出OOM異常解決方案:1.異步開(kāi)啟子線程進(jìn)行耗時(shí)的操作,通過(guò)Handler+Message在子線程發(fā)送消息到主線程進(jìn)行更新UI;2.對(duì)于加載圖片太多時(shí)導(dǎo)致的OOM內(nèi)存溢出問(wèn)題,引入ImageLoader開(kāi)源框架解決,ImageLoader里的線程使用了線程池,進(jìn)而避免了太多的線程頻繁的開(kāi)創(chuàng)建立和銷毀;3.對(duì)圖片采用軟引用,及時(shí)進(jìn)行recycle〔〕操作及等比例縮小圖片;4.listview每次僅加載屏幕能顯示的內(nèi)容,其余數(shù)據(jù)處于準(zhǔn)備顯示狀態(tài)。本文主要研究車輛疏導(dǎo)系統(tǒng)的搭建及優(yōu)化問(wèn)題。系統(tǒng)搭建完后,在電量?jī)?yōu)化、崩潰分析、內(nèi)存抖動(dòng)三個(gè)方面對(duì)系統(tǒng)進(jìn)行了效率測(cè)試、異常捕捉及問(wèn)題分析,并提供解決方案。實(shí)驗(yàn)結(jié)果表示清楚,經(jīng)過(guò)我們的優(yōu)化,到

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論