【基于安卓平臺(tái)的車輛管理系統(tǒng)的設(shè)計(jì)(論文)12000字】_第1頁(yè)
【基于安卓平臺(tái)的車輛管理系統(tǒng)的設(shè)計(jì)(論文)12000字】_第2頁(yè)
【基于安卓平臺(tái)的車輛管理系統(tǒng)的設(shè)計(jì)(論文)12000字】_第3頁(yè)
【基于安卓平臺(tái)的車輛管理系統(tǒng)的設(shè)計(jì)(論文)12000字】_第4頁(yè)
【基于安卓平臺(tái)的車輛管理系統(tǒng)的設(shè)計(jì)(論文)12000字】_第5頁(yè)
已閱讀5頁(yè),還剩21頁(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)介

第四章車輛管理系統(tǒng)的設(shè)計(jì)4.1系統(tǒng)登錄模塊4.1.1車輛查看頁(yè)類VehicleltemViewActivity,是用于負(fù)責(zé)從數(shù)據(jù)庫(kù)獲取指定ID或車牌號(hào)的車輛的信息及其登記錄列表,顯示在用戶界面上,接受用戶對(duì)車輛信息和車輛登記記錄的操作。詳見圖4-1,圖4-24.1.2車輛信息編輯頁(yè)類VchicIcInfoEditActivity,負(fù)責(zé)從數(shù)據(jù)庫(kù)獲取指定ID的車輛的信息,同樣顯示在用戶界面上,接受用戶的編輯,妥善暫存,保存用戶的編輯。4.1.3車輛登記記錄編輯頁(yè)類VehicleQueryEditActivity,負(fù)責(zé)從數(shù)據(jù)庫(kù)獲取指定的車輛登錄,顯示在用戶界面上,接受用戶的信息,妥善暫存、保存用戶的編輯。圖4-1車輛系統(tǒng)登錄模塊結(jié)構(gòu)圖圖4-2車輛系統(tǒng)登錄模塊結(jié)構(gòu)圖4.1.4車輛照片異步緩沖與加載線程類ViqCachcdlmagcFctchcr,是將已經(jīng)指定路徑的圖像文件,直接可以綁定到指定的圖像視圖之中。為了提高圖像顯示的效率,在圖像綁定車輛信息庫(kù)和車輛登記單這種數(shù)據(jù)很多的情況下減少展示的時(shí)間,并在一定程度上減少對(duì)內(nèi)存空間的使用,將選擇通過綁定新的路徑來(lái)執(zhí)行圖像部分的操作,并且會(huì)使用已經(jīng)編輯過的較小圖片來(lái)取代原圖,從而加快圖片的顯示速度。4.1.5數(shù)據(jù)摩適配器類ViqSQLiteOpenHelper,繼承于類android.database.sqlite.SQLiteOpenHelper,負(fù)責(zé)數(shù)據(jù)庫(kù)的創(chuàng)建、升級(jí)和本項(xiàng)目中各大UI類數(shù)據(jù)庫(kù)的訪問。4.2車輛識(shí)別模塊車牌識(shí)別這里特指自動(dòng)車牌識(shí)別,即運(yùn)用計(jì)算機(jī)視覺手段,在包含車牌的圖像中可以自行對(duì)主要車牌的區(qū)域進(jìn)行檢測(cè)查看,再對(duì)其進(jìn)行提取后處理,留下的車牌部分為所得結(jié)果,后再對(duì)車牌的字符作適合光學(xué)字符識(shí)別(OCR)引擎的字符識(shí)別檢測(cè),檢測(cè)完成后,車牌號(hào)字符串的全部字符就會(huì)被顯示出來(lái)。在這一過程中,所有主要的核心環(huán)節(jié)在提高識(shí)別率的作用上有著顯著的影響:1)車牌探測(cè);2)車牌字符分割:3)車牌字符識(shí)別。詳見圖4-3圖4-3車牌下面對(duì)其分別進(jìn)行描述并加以實(shí)現(xiàn)。圖像處理圖像學(xué)的說(shuō)法給出,圖像處理就是指對(duì)所輸入圖像,進(jìn)行任何形式的信號(hào)處理;所以它的輸出形式不單單局限于圖像方面,字符串、參數(shù)等特殊的文字信號(hào)都可以被包含在內(nèi),而在該系統(tǒng)中,圖像處理的技術(shù)就得到了廣泛地應(yīng)用,而且對(duì)于信息的處理也至關(guān)重要。JavaCVJavaCV其實(shí)可以稱為一個(gè)OpenCV的Java接口。在計(jì)算機(jī)的視覺領(lǐng)域,使用者往往常用的庫(kù)都是由JavaCV提供封裝的。這些庫(kù)包括:QpgnCY,F(xiàn)Fmncg,libdc1394,PGRFlyCaDlurc,ODcnKincct,vidcolnput,和ARToolKilPlus等。com.googlecode.javacv.cpp包命名空間下的類便展示出了完整的API。并且,實(shí)用類還使自身的功能在Java平臺(tái)包括Android平臺(tái)邊緣檢測(cè)作為一種簡(jiǎn)單的物體檢測(cè)方法特別適合于矩形外框的車牌。本課題采用基于邊緣檢測(cè)的車牌探測(cè)技術(shù)。將原始圖像轉(zhuǎn)化為灰階圖像cvCvtColor(mVehiclelmage,vehiclelmageGray,CVHGR2GRAY);灰階圖像的平滑與增強(qiáng)處理cvSmoothfvehicle/mageGray.vehidebnageGray.CVGAUSSIAN.3):cvEqualizellistMudelmageGray.vehic/elnuigeGrci)^;灰階圖像轉(zhuǎn)化為二值圖像cvThreshold(vehicleImageGray.vehicleimageBinary,128,255,CVTHRESHBINARY)從二值圖像中提取輪廓CvSeqcontours=newCvSeq():iniobjects=cvFindContoursfvehic/elnrageBinafy.cvCreateMeniStoragef0).contours.Loader.si(CvOmSM.cMss),CV_RETRLIST.CVCHAINAPPROXSIMPLE);基于邊緣檢測(cè)的車牌探測(cè)經(jīng)檢測(cè),提取的圖像輪廓中有約1800個(gè)獨(dú)立的輪廓區(qū)域。所以選擇一種合適的方法來(lái)確定這個(gè)區(qū)域就尤為重要,例如:先通過指定的精度來(lái)讓形狀接近于曲線的輪廓,從而可以形成一個(gè)多邊形的輪廓區(qū)域;而如果剛好,這個(gè)多邊形為面積比較大的四邊形,其寬高比的范圍也在2.8到3.4之間(對(duì)于市面上普通車牌的外廓來(lái)說(shuō),一般尺寸都是在440mmxl40mm,且寬高比為3.14),就能夠初步判斷它是車牌輪廓,接下來(lái)的工作將困擾該區(qū)域展開。示例代碼如下:〃獲得多邊形輪廓CvSeqpolyContours=cvApproxPolyfcontours.Loader.sizeoffCvContour.class),cvCreaieMemSumige(O)tCV_P()LY_APPROX_DP,cvCgh)wPerimeter(cgsws)*f)J)5.0):〃檢查輪廓邊數(shù)和面積if(polyContours.lotal()==4&cvContourArea(polyContours,CVWHOLESEQ,0)>600)(〃獲得輪新外框CvRectboimdingRect=cvBoundingRectfpoiyContours.0);〃檢驗(yàn)輪廓寬高比doubleplateHWratio=((double)boundingRect.HidlhO)/((double)houndingRect.height());if(plateHWratio>2.8&plateHWratiov3.4)(〃設(shè)置原來(lái)備份的車輛灰度圖像的R3(感二趣區(qū)域)cvSetbnageROKvehiclelmageGrayClone.boundingRect):橫下來(lái):進(jìn)行車牌字符的分割//TODO:charactersegmentationonthelicenceimage于是,接下來(lái)將進(jìn)行車牌字符的分割。(車牌的偏斜矯正一般情況下沒有必要,本文不討論)車牌字符分割而原來(lái)備份的車輛的圖像,就需在對(duì)車牌的區(qū)域進(jìn)行設(shè)置和規(guī)劃之后,通過Canny進(jìn)行邊緣檢測(cè),最后對(duì)設(shè)置好的區(qū)域圖像做邊緣檢測(cè)cvCannyfIicencelmage,plate1ni(tgeCannyt128.255,3);同樣通過cvFindContours函數(shù)而找到連續(xù)的輪廓,就要求全部對(duì)車牌字符進(jìn)行檢索判斷。而采用的判斷方法為:對(duì)于車牌輪廓外框高度,需要大于車牌高度的二分之一,而其寬度方面,需要小于車牌寬度的四分之一,達(dá)到這樣標(biāo)準(zhǔn)的就可以認(rèn)定為完整的車牌字符。以此,車牌中的點(diǎn)號(hào)、孔隙和小范圍的污點(diǎn)均已被自動(dòng)去除。分割后的字符,可以單獨(dú)識(shí)別,也可以拼接后一起識(shí)別車牌字符識(shí)別車牌語(yǔ)言的訓(xùn)練車牌語(yǔ)言訓(xùn)練的過程.就是提供給計(jì)算機(jī)目標(biāo)文字圖像及相應(yīng)的文字,讓計(jì)算機(jī)自動(dòng)分析并存儲(chǔ)這一對(duì)應(yīng)關(guān)系的過程。Tesseract為訓(xùn)練過程提供了一定的支持。首先,取得帶標(biāo)準(zhǔn)車牌文字的圖像文件然后,將它們上下拼接成一幅圖像,保存成TIFF格式。圖像寬高建議為1056*2000(單位像素),圖像分辨率96dpi,命名為-lf.exp10.tif‘o之所以將三類圖像拼接成一幅圖像,一方面是應(yīng)官方文檔要求,一類字體一幅圖片,三類字符同屬一種字符(這里命名為“cnlf”);另一方面是為了簡(jiǎn)化訓(xùn)練過程,接下來(lái)開始生成中間文件。首先在計(jì)算機(jī)上安裝Tesseract引擎(目前是KsscracJocr-setup-3.01-l.exe)。然后,在命令行執(zhí)行以下命令:tesseractcnlp./pfi.exp10.tifcnlp.ipft.exp10batch.nochopmakebox該命令將使用默認(rèn)的語(yǔ)言(英文)對(duì)cnLcnlf.cxplO.tififf行識(shí)別。識(shí)別結(jié)果將生成盒子文件文件cnlp.lpft.cxplO.box,文件中每一行均為所識(shí)別出的字符、其在訓(xùn)練圖片中的坐標(biāo)(四列分別是左、下、右、下,坐標(biāo)原點(diǎn)為圖片左下角)以及頁(yè)號(hào)在使用默認(rèn)語(yǔ)言自動(dòng)生成的盒子文件時(shí),做出進(jìn)行一定的修改,然后再輸入計(jì)算機(jī),就算是在新語(yǔ)言學(xué)習(xí)的過程中完成了至關(guān)重要的一步。在盒子文件中自動(dòng)生成的字符如果可以直接和對(duì)應(yīng)正確字符相互匹配,那么接著就會(huì)大大提升文件的修改速度,因?yàn)檫@樣的話僅僅需要把錯(cuò)亂的字符改好就算完成;如若因?yàn)閠esseract的原因,單個(gè)的字符被翻譯成了幾個(gè)字符的情況(即在解析的過程中,衍生出多個(gè)結(jié)果,或者在盒子文件的解釋里得到了多行記錄),則需要采取一定的手段找到所識(shí)別行與目標(biāo)字符的則應(yīng)關(guān)系,再進(jìn)行合并。其實(shí),對(duì)于綜上所有問題,有種相對(duì)便捷的辦法。因?yàn)樵斐杀籺esseract錯(cuò)誤解釋,并被檢測(cè)成多個(gè)字符的原因在于漢字的多樣性,漢字的結(jié)構(gòu)及其偏旁部首或多或少會(huì)帶來(lái)影響;直接使用生成的盒子文件就是通過文本文件的形式,來(lái)展示目標(biāo)的字符,和這些字符的所在區(qū)域,范圍就是在訓(xùn)練圖片。所以對(duì)于字符復(fù)雜的、字符結(jié)構(gòu)特殊的或者字符的筆畫不連貫的,可以直接添加或刪減將其完整以便識(shí)別。盒子在被識(shí)別出來(lái)后就可以直接換回原圖,接下來(lái)的工作要簡(jiǎn)單得多,按步驟:〃訓(xùn)練Tessemcl:tesseractcnlp.Ipft.exp10.tifcnlp.Ipft.exp10nohatchbox.trainH訊算宇符集:unicharsetyxtraclorcnlp.IpfiexpIO.hox〃讀取字體屬性:(新建字體屬性文件竹而roperties9內(nèi)容為“IpR00100”)niftrainin^-Ffontproperties-£/unicharsetcnlp.Ipft.exp10.tr〃分類歸并:mftraining-Ffontproperties?Uunicharsei-Ocnlp.unicharsetcnlpJpfi.explO.trcnIrainingcnlp.Ipft,exp10.tr”其他文件(數(shù)據(jù)宇典、unichwambi零)均不必提供?!▍R集所有中間文件,生成語(yǔ)言包:(先須為normproto,Micmfem,inUemp,pffmtciblefthmicharset等文件加上語(yǔ)言名前綴,這里用”;語(yǔ)言名建議遵循1SQ639.2標(biāo)準(zhǔn))comhine_tessdatacnl.不出意外,專用車牌語(yǔ)言包c(diǎn)nl.traineddata即生成成功!cnl.traineddata同樣可在參考文獻(xiàn)網(wǎng)中下載得到。重要提醒:訓(xùn)練語(yǔ)言包的過程中,可能會(huì)有這樣或那樣的問題。多嘗試,多分析,查閱Tessearct項(xiàng)目的問題列表,并勇于提問,最終一定能成功。關(guān)于上述過程的討論,詳見Tessearct項(xiàng)目第557號(hào)問題討論El。343Tesseract庫(kù)在Android中的使用Tesseract庫(kù)在Android中的使用,同樣由JNI實(shí)現(xiàn)。開源項(xiàng)gtcsscract-android-tools6用于使用TesseractCR和Lcptonica圖像處理庫(kù)的一系列AndroidAPI和構(gòu)建文件。sseract??dfoftods田;com.googl^ode.leptonica.anckded£ftcom.google<ode.teefacc.ar4kc*jffld?【GenerM>dJarSAArdrod2J.3$*ArdrodDependenciesbnS^docSWcon>_0ooOcc<xJ?j8ptcHfca_/rdro(lucom_8<Rec(xje_t*eract_s&ddjfArdodff*.7^cpkadonn+日為lbsSWarrneatiibteptso;”bbte$s.soS〃.ffiffi2*obi百res.AndrodMentttt.rtbuW.xnil£C0PYW3pro^wrd.dgproject.prcpcrtiestREAWE共享庫(kù)liblept.so和libtess.so可以直接通過NDK編譯生成;目錄jin下存放的是這兩個(gè)庫(kù)的C/C+T源文件和編譯指令。有關(guān)NDK的相關(guān)知識(shí),參考Android官方文檔包c(diǎn)om.googlccodc.tesseract.android下的類TcssBascAPI即為TesseractOCR引擎的Java接口。它并沒有實(shí)現(xiàn)所有可用的JNI方法,不過實(shí)現(xiàn)的方法已經(jīng)夠用。它們主要包括:?com.googlecode.tesseract.android.TessBaseAPLTessBaseAPIf)構(gòu)造TessBaseAP實(shí)例?booleancom.googlecode.tesseract.android.TessBaseAPI.init(Stringdatapath.Stringlanguage)使用指定語(yǔ)言初始化Tesseract引擎。?voidconi.googlecode.tesseract.android.TessBaseAPLsetPageSegModefintmode)設(shè)置頁(yè)面分割模式,決定OCR引擎在識(shí)別文字之前要作多少處理。?voidcom.goog/ecode.tesseract,android.TessBaseAPI.setlmagefPiximage)設(shè)置待識(shí)別圖像。?Siringcom.googlecode.tesseract.android.TessBaseAPI.getUTF8Text()返回UTF&格式地識(shí)別出的文本。?in!com.googlecode.tesseract,android.TessBaseAPLmeanConfidence()返回文本識(shí)別結(jié)果的確定度。庫(kù)項(xiàng)目tcsscract-android-4.3車輛信息模塊(1)車輛信息庫(kù)(車牌號(hào),車型M架號(hào),車主姓名,車主電話,車主性別,車主出生年月,車主駕照號(hào),車輛備案照片,備注人)其中率礙號(hào)為候選碼。因?yàn)檐囍餍畔⒉]有其他的,并沒有為車主信息建立一個(gè)專用的表。(2)車輛登記單(車牌號(hào),時(shí)間,地點(diǎn),車輛登記照片,備注)。其中車牌號(hào),時(shí)間,地點(diǎn)為候選碼;車輛登記照片指登記時(shí)拍攝的照片。而在這些相關(guān)信息之中,車輛登記單上所登記的車牌號(hào)是不以車輛信息庫(kù)的車牌號(hào)為準(zhǔn)而參考的,因?yàn)闃I(yè)務(wù)的不同需求和業(yè)務(wù)的涉及領(lǐng)域不一樣,導(dǎo)致了登記的車輛的車牌號(hào)在車輛信息庫(kù)中可能沒有更新信息或者就并不存在;若信息并不存在的話,隨時(shí)將該車信息登記后,錄入車輛信息庫(kù)即可。在表“車輛信息庫(kù)”中,表中的全部信息是會(huì)和對(duì)應(yīng)的“車輛信息庫(kù)”列表的各個(gè)項(xiàng)相互匹配,這樣也是為了提高處理的效率和能力,讓用戶更快的瀏覽車輛登記記錄,對(duì)于已經(jīng)完成登記的車輛,其車主的姓名、聯(lián)系方式等登記過的信息也會(huì)被清晰地一一展示出來(lái)?!败囕v登記單”列表中的每一項(xiàng)中的數(shù)據(jù),除來(lái)自表“車輛信息庫(kù)”中的一行之外來(lái)以車牌號(hào)為連接條件,關(guān)聯(lián)了表“車輛信息庫(kù)”中相應(yīng)車輛的車主姓名和聯(lián)系電話等信息。因此,我們需要?jiǎng)?chuàng)建一個(gè)視圖“車輛登記信息單”,將之與類“車輛登記單”綁定:車輛登記信息單(車牌號(hào),車主姓名,車主電話,地點(diǎn),車輛登記照片,備注人)其中濟(jì)注字段來(lái)自于車輛登記單。

第五章車輛管理系統(tǒng)的實(shí)現(xiàn)5.1系統(tǒng)的開發(fā)環(huán)境為更加清楚地顯示項(xiàng)目的實(shí)現(xiàn)輪廓,首先給出項(xiàng)目的目錄結(jié)構(gòu),包括類的組成(src目錄)、引用的Jar包(lib目錄)和So共享j^Oib/amieabi目錄)、XML資源文件(心目錄)等。支撐條件支撐平臺(tái)(1)開發(fā)平臺(tái)1) EclipseIDEforJavaDevelopers最新版本。本項(xiàng)目采用IndigoServiceRelease2O2) AndroidADT最新版本,本項(xiàng)目采用ADT-16.0.1。3) AndroidSDK最新版本,本項(xiàng)目釆用android-sdk_rl8-windows.zip。4) AndroidNDK最新版本(非必需),本項(xiàng)目采用android-ndk-r8-windows.zipo5) 真實(shí)Android設(shè)備(可使用模擬器替代),本項(xiàng)目采用小米手機(jī)MI.ONEPLUS。(2)運(yùn)行平臺(tái)1)最小SDK版本:2)硬件使用a)相機(jī)(非必需),用于拍攝車輛照片,并識(shí)別出車牌號(hào)??墒止ぽ斎胲嚺铺?hào)。b)GPS(非必須),用于自動(dòng)獲取當(dāng)前地理坐標(biāo),和車輛登記庫(kù)中的數(shù)據(jù)。c)硬件感應(yīng)(非必須),用于實(shí)現(xiàn)“搖一搖''快速登記車輛功能??赏ㄟ^點(diǎn)擊按鈕或選擇菜單進(jìn)入登記車輛功能。d)移動(dòng)網(wǎng)絡(luò)或WiFi(非必需),用于輔助GPS定位,將地理坐標(biāo)轉(zhuǎn)化為實(shí)際地點(diǎn)名,以及同步車輛數(shù)據(jù)。e)通話與短信(非必需),用于快速撥打車主電話、發(fā)送車輛信息。(3)權(quán)限使用a)寫SD卡(WRITE_EXTERNAL_STORAGE),用于保存車輛照片。b)通話(CALLPHONE)c)短信(SENDSMS)d)振動(dòng)(VIBRATE),用于在識(shí)別岀“搖一搖”動(dòng)作時(shí)給出振動(dòng)反饋。e)互聯(lián)網(wǎng)(INTERNET)5.2系統(tǒng)代碼庫(kù)支撐代碼庫(kù)(1)tesseract-android-tools升源項(xiàng)目tcsscract-android-tools^jin目錄下是I冬I像識(shí)別庫(kù)Tcsscract-OCR和圖像處理庫(kù)Leptonica的C/C+本地代碼。通過AndroidNDK編譯二者,生成專用于Android設(shè)備ARM處理器的共享庫(kù)libtcss.so和liblcpl.so。當(dāng)然,也可以從本項(xiàng)目在谷歌代碼上的代碼庫(kù)中取得,以免去重新編譯的麻煩。將這兩個(gè)共享庫(kù)復(fù)制到項(xiàng)目lib/armcabi目錄下。項(xiàng)目tesseract-android-tools使用JNI技術(shù)調(diào)用上述本地代碼。其他項(xiàng)目要調(diào)用上述本地代碼,直接引用tesseract-android-tools生成的Jar包tesseract-android-tools.jar即可。建議將Jar包存放在lib目錄下。(2)javacv與開源項(xiàng)目JavaCV的引用類似。項(xiàng)目JavaCV的編譯,對(duì)平臺(tái)的要求較多。這里直接引用其JarSjavacv.jaroJavaCV采用JavaCPP技術(shù)訪問本地代碼。JavaCPP訪問本地代碼的技術(shù)尚未集成在Android代碼棧中,因此須在每個(gè)使用它的項(xiàng)目中引用;其Jar包是javacpp.jar。項(xiàng)目JavaCV為完整地支持各種圖像、視頻的處理,引用了許多共享庫(kù)。本項(xiàng)目中只需要使用libopeiicvcorc.so,libjniopencv_core.su,libopencvimgproc.so,libjniopencvimgproc.so,1ibopencv_highgui.so,1ibjniopencv_highgui.so,libtcss.so,liblept.s.八個(gè)共享庫(kù)即可。(3)支撐數(shù)據(jù)項(xiàng)目用到了圖像貝別,前文詳細(xì)講述了專用于中華人民共和國(guó)機(jī)動(dòng)車號(hào)牌的語(yǔ)言包的訓(xùn)練方法。該語(yǔ)言包名為-cnl.traineddata';大小為515KB.需要放在SD卡上,圖像識(shí)別時(shí)讀取。為了最大限度地降低用戶使用本系統(tǒng)的難度,本項(xiàng)目不使用普遍使用的從網(wǎng)絡(luò)下載SD卡上所需資源文件的方法,而是將它直接放置在項(xiàng)目assets目錄下。圖像識(shí)別過程中,如果檢測(cè)到SD卡上不存在該語(yǔ)言包則自動(dòng)將其復(fù)制到SD卡特定目錄(本項(xiàng)目使用Tesscract-OCRiS語(yǔ)言包標(biāo)準(zhǔn)目錄/sdcard/tesseract/tessdata/)T5.3系統(tǒng)的開發(fā)環(huán)境在Android中,SQLite數(shù)據(jù)庫(kù)作為應(yīng)用程序永久保存數(shù)據(jù)的重要機(jī)制,得到了Android的強(qiáng)大支持。應(yīng)用程序訪問SQLite數(shù)據(jù)庫(kù),無(wú)需事先配置好數(shù)據(jù)庫(kù),然后指定連接字符串訪問(SQLite本身是零配置、零服務(wù)的);相反,應(yīng)用程序像進(jìn)行普通文件操作一樣,通過代碼創(chuàng)建數(shù)據(jù)庫(kù),更新數(shù)據(jù)庫(kù),升級(jí)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)設(shè)計(jì)一節(jié)中已經(jīng)描述了本應(yīng)用中數(shù)據(jù)庫(kù)的表和視圖的結(jié)構(gòu)。在對(duì)表的描述中,提到了“候選碼”而非“主碼”是因?yàn)?,我們將使用一個(gè)整型自增片段作為主碼,以與更加方便地與列表適配器(ListAdapter)相匹配,在一定程度上提升代碼編寫效率和程序運(yùn)行效率。數(shù)據(jù)庫(kù)的模式創(chuàng)建如下:CREATETABLEInfo(_id.licence,type,vin.name,phone,gender,birth,drivinglicence,note,photo);CREATETABLEQueryfjd.time,place,note,photo,Jicence):CREATEVIEWQueiylnfoASSELECTQuery.JdASjd.JicenceASlicence,name.phone,time,place.Query1,noteASnote.Queiy.photoASphotoFROMQuery9LEFTOUTERJOiNInfoONJicence-licence

第六章車輛管理系統(tǒng)的測(cè)試6.1測(cè)試方法應(yīng)用程序在開發(fā)設(shè)備上運(yùn)行良好,能滿足需求分析中所研究各大使用場(chǎng)景和用例的基本需求。下面將結(jié)合需求設(shè)計(jì)中的幾個(gè)用例給出具有代表性的程序運(yùn)行截屏。6.1.1瀏覽車輛信息庫(kù)“車輛信息庫(kù)”這一頁(yè)的內(nèi)容中,會(huì)以車牌號(hào)排序來(lái)展示一共52條車輛信息。在列表項(xiàng)的左側(cè)會(huì)顯示的是車牌號(hào)、車主姓名與電話等信息,右側(cè)則是該車輛在備案時(shí)記錄的照片。單擊“車輛登記單”按鈕,可切換至“車輛登記單”項(xiàng)面;單擊“查詢,登記車輛”按鈕,可切換至“查詢/登論車輛”頁(yè)面;單擊列表項(xiàng)可切換至“查看車輛”頁(yè)面。單擊“快速會(huì)找”按鈕,標(biāo)題欄將變?yōu)榭删庉嫚顟B(tài),可輸入任一已知字段中的文本片段進(jìn)行查找,列表項(xiàng)實(shí)時(shí)更新。長(zhǎng)按列表項(xiàng),將彈出上下文菜單,可對(duì)車輛信息進(jìn)行查看(切換至“查看車輛”頁(yè)面)、編輯、刪除操作,可快速聯(lián)系車主,可短信發(fā)送車輛信息,可復(fù)制部分或全部字段至剪切板。6.1.2瀏覽車輛登記單“車輛登記單”頁(yè)以列表形式顯示了所有共53條車輛登記記錄,以登記時(shí)間逆序排序。列表項(xiàng)中,左側(cè)是車輛的登記照片,右側(cè)是所識(shí)別或輸入車牌號(hào)、通過車牌號(hào)所得的車主姓名和電話等信息。在車輛登記單這一頁(yè)中,還會(huì)單獨(dú)記錄下車輛的登記時(shí)間和所在地點(diǎn),而在記錄登記時(shí)間時(shí),會(huì)以相對(duì)時(shí)間(如“剛才”“10分鐘前”“35分鐘前”等)的形式展示給用戶,這部分的內(nèi)容對(duì)于在特定的環(huán)境和情況下會(huì)起到很大的作用?!盀g覽車輛登記單”頁(yè)面中的操作,和前述“瀏覽車輛信息庫(kù)”頁(yè)面的操作十分類似,這里不再贅述。6.1.3查看車輛“查看車輛''頁(yè)顯示了指定車輛的信息以及其所有登記記錄。同樣可對(duì)該車輛的登記實(shí)施編輯、刪除操作。同時(shí),還可以新建登記記錄;系統(tǒng)將自動(dòng)填入登記的時(shí)間和經(jīng)緯度信息。6.1.4查詢/登記車輛“查詢登記車輛頁(yè)取得用拍攝或選擇的車輛照片,自動(dòng)檢測(cè)到車牌并對(duì)其圖像進(jìn)行加工,最后完成識(shí)別并等待用戶進(jìn)行確認(rèn)。用戶在確認(rèn)了信息之后,這次登記將會(huì)被系統(tǒng)自動(dòng)保存所得車牌號(hào)碼將會(huì)被送往車輛信息庫(kù)進(jìn)行檢索查找,查詢是否有相匹配的。如若并沒有,那沒在“查看車輛”這一頁(yè)的上方就是空白項(xiàng),無(wú)任何的車輛信息,空白的區(qū)域?qū)⒘艚o用戶對(duì)該車的車輛進(jìn)行登記,并記錄下信息。6.2系統(tǒng)的測(cè)試軟件的測(cè)試的方法主要就是白盒測(cè)試和黑盒測(cè)試這兩種,而在對(duì)Android應(yīng)用進(jìn)行白盒測(cè)試,AndroiAPI提供了ActivitylnstnimcntationTcstCasc2等測(cè)試專用的類,用以模擬用戶和系統(tǒng)對(duì)應(yīng)用的操作或調(diào)用,對(duì)應(yīng)用實(shí)施快速自動(dòng)地測(cè)試。本次設(shè)計(jì)的系統(tǒng)選用了手工測(cè)試的測(cè)試方法。對(duì)于之前所敘述的不同案例和數(shù)據(jù)進(jìn)行測(cè)試。對(duì)可能的路徑進(jìn)行估計(jì)后再做測(cè)試,這樣在發(fā)現(xiàn)有任何問題戶可以第一時(shí)間找到所屬類型,再將其逐一解決。在設(shè)置規(guī)劃邊界條件時(shí),如對(duì)列表項(xiàng)目的規(guī)劃、不同項(xiàng)目的實(shí)施編輯或刪除、項(xiàng)目的設(shè)置,而在對(duì)函數(shù)編寫的過程中遇到的空白字符、參數(shù),或者其他方面有的異常情況,例如GPS無(wú)響應(yīng)、SD卡受損、文件空白或不存在等,該程序都已有充足的準(zhǔn)備可以應(yīng)對(duì)硬件和軟件等不同情況。此外,代碼中關(guān)鍵部分都設(shè)置了日志記錄,遇到問題可迅速定位并解決。6.3測(cè)試總結(jié)針對(duì)關(guān)鍵技術(shù)車牌識(shí)別,由于本項(xiàng)目目前的主要工作只是將車牌識(shí)別技術(shù)在Andreid

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論