手機(jī)二維碼識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-徐玲_第1頁(yè)
手機(jī)二維碼識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-徐玲_第2頁(yè)
手機(jī)二維碼識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-徐玲_第3頁(yè)
手機(jī)二維碼識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-徐玲_第4頁(yè)
手機(jī)二維碼識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-徐玲_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

收稿日期:2011-10-28;修回日期:2011-12-19?;痦?xiàng)目:科技部國(guó)家重大專(zhuān)項(xiàng)(2009ZX07315-006-5;國(guó)家自然科學(xué)基金資助項(xiàng)目(60975015。作者簡(jiǎn)介:徐玲(1975-,女,安徽廬江人,副教授,博士,主要研究方向:軟件工程、數(shù)據(jù)挖掘;蔣欣志(1988-,男,重慶綦江人,碩士研究生,主要研究方向:軟件工程、數(shù)據(jù)挖掘;張杰(1977-,女,遼寧阜新人,碩士,主要研究方向:網(wǎng)絡(luò)通信、軟件技術(shù)。文章編號(hào):1001-9081(201205-1474-03doi:10.3724/SP.J.1087.2012.01474手機(jī)二維碼識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)徐玲1*,蔣欣志1,張杰2(1.重慶大學(xué)軟件學(xué)院,重慶400030;2.重慶理工大學(xué)電子信息與自動(dòng)化學(xué)院,重慶400054(*通信作者電子郵箱xuling@cqu.edu.cn摘要:在研究二維碼及其手機(jī)識(shí)別技術(shù)的基礎(chǔ)上,開(kāi)發(fā)了基于Android平臺(tái)的手機(jī)二維碼識(shí)別系統(tǒng),在系統(tǒng)架構(gòu)設(shè)計(jì)中將二維碼識(shí)別系統(tǒng)的平臺(tái)支撐層、客戶(hù)端應(yīng)用層、云端處理層進(jìn)行分層設(shè)計(jì),保證了系統(tǒng)的安全性,根據(jù)需求給出系統(tǒng)的功能模塊劃分和用例分析,最后實(shí)現(xiàn)了手機(jī)二維碼的編碼解碼的核心功能。關(guān)鍵詞:二維碼識(shí)別;手機(jī);QR碼;J2EE;SSH2;Android中圖分類(lèi)號(hào):TP311.52文獻(xiàn)標(biāo)志碼:ADesignandimplementationoftwo-dimensionalcoderecognitionsysteminmobilephoneXULing1*,JIANGXin-zhi1,ZHANGJie2(1.SchoolofSoftwareEngineering,ChongqingUniversity,Chongqing400030,China;2.SchoolofElectronicInformationandAutomation,ChongqingUniversityofTechnology,Chongqing400054,ChinaAbstract:Basedontheresearchoftwo-dimensionalcodeandrecognitionofmobilephone,theauthorshavedevelopedatwo-dimensionalcoderecognitionsystemonAndroidplatform.Inthesystemarchitecturedesign,thetwo-dimensionalcoderecognitionsystemplatformsupportlayer,clientapplicationlayer,cloudhandlelayerwerehierarchicallydesignedtoensurethesystemsecurity.Accordingtotherequirements,thesystemfunctionmodelsandcasesanalysesweregiven.Finally,thetwo-dimensionalcodecoreencodeanddecodefunctionsofmobilephonewereachieved.Keywords:two-dimensioncoderecognition;mobilephone;QuickResponse(QRcode;J2EE;SSH2;Android0引言二維碼(2-dimensionalcode作為一種信息存儲(chǔ)和傳遞技術(shù),是按照特定的編碼規(guī)則形成的平面幾何圖形[1-4]。二維碼能夠在橫向和縱向兩個(gè)方位同時(shí)表達(dá)信息,因此能在很小的面積內(nèi)表達(dá)大量的信息。它具有儲(chǔ)存容量大、可靠性高、保密防偽性強(qiáng)、成本低等優(yōu)點(diǎn),可以用來(lái)存儲(chǔ)多國(guó)文字、數(shù)據(jù)文件、圖像等信息。隨著3G時(shí)代的來(lái)臨,手機(jī)二維碼的應(yīng)用越來(lái)越豐富[5-8]。Android系統(tǒng)作為目前最為流行的智能手機(jī)平臺(tái),其與二維碼技術(shù)的結(jié)合使二維碼信息以各類(lèi)業(yè)務(wù)的形式在手機(jī)中存儲(chǔ)、閱讀和傳播。手機(jī)既可作為二維碼信息的載體結(jié)合二維碼識(shí)讀設(shè)備加以應(yīng)用,也可在手機(jī)中內(nèi)置或下載二維碼識(shí)讀引擎來(lái)識(shí)讀商品上的二維碼標(biāo)識(shí),從而獲取二維碼內(nèi)隱含的有效信息來(lái)進(jìn)行相關(guān)應(yīng)用的開(kāi)發(fā)。在許多種類(lèi)的二維碼中,常用的碼制有:DataMatrix,MaxiCode,Aztec,QRCode,Vericode,PDF417,Ultracode,Code49,Code16K等[9]。其中快速響應(yīng)碼(QuickResponsecode,QR碼[10-11]是應(yīng)用最為成功的一種二維碼,QR碼是一種矩陣式二維碼,信息容量大,一張條碼可以放入1817個(gè)漢字,或7089個(gè)數(shù)字,或4200個(gè)英文字母;支持字母、數(shù)字、漢字、照片、指紋、音/視頻等信息嵌入。跟其他二維碼相比,QR碼具有識(shí)讀速度快、數(shù)據(jù)密度大、占地空間小的優(yōu)勢(shì)。把QR碼運(yùn)用在手機(jī)平臺(tái)上,開(kāi)發(fā)基于Android手機(jī)系統(tǒng)的二維碼識(shí)別系統(tǒng)具有重要的理論意義和實(shí)際價(jià)值。1二維碼識(shí)別系統(tǒng)的設(shè)計(jì)本文設(shè)計(jì)并實(shí)現(xiàn)了基于Android平臺(tái)的二維碼識(shí)別系統(tǒng)。系統(tǒng)采用C/S模式,系統(tǒng)客戶(hù)端采用Android平臺(tái),服務(wù)器端基于J2EE[12-13]體系架構(gòu),該系統(tǒng)具有良好的穩(wěn)定性、靈活性、可伸縮性和易維護(hù)性。1.1系統(tǒng)體系架構(gòu)圖1為基于Android平臺(tái)的二維碼識(shí)別系統(tǒng)的系統(tǒng)架構(gòu)。系統(tǒng)采用C/S架構(gòu)設(shè)計(jì),把二維碼詳情數(shù)據(jù)庫(kù)內(nèi)容放在遠(yuǎn)程的服務(wù)器上,在手機(jī)客戶(hù)端上安裝相關(guān)軟件。采用這種設(shè)計(jì)主要是考慮到了手機(jī)端的數(shù)據(jù)處理能力有限,當(dāng)需要對(duì)數(shù)據(jù)作出復(fù)雜分析與處理時(shí)可以借助遠(yuǎn)程服務(wù)器的運(yùn)算處理能力,這樣就大大減輕了手機(jī)終端的運(yùn)行壓力。服務(wù)器端采用J2EE三層架構(gòu),基于SSH(Struts+Spring+Hibernate框架,整個(gè)服務(wù)器端擴(kuò)展性強(qiáng),穩(wěn)定性好,可維護(hù)性高。圖2所示是二維碼識(shí)別的體系結(jié)構(gòu)設(shè)計(jì)。整個(gè)體系結(jié)構(gòu)包括管理系統(tǒng)安全性的安全防護(hù)機(jī)制、權(quán)限控制機(jī)制、云端處理層、客戶(hù)端應(yīng)用層和平臺(tái)支撐層,作為一個(gè)C/S系統(tǒng),其服務(wù)器端安全性要求是非常重要的,安全防護(hù)機(jī)制可以防止大部分非安全性操作包括越權(quán)訪(fǎng)問(wèn)、跨用戶(hù)操作等,權(quán)限控制機(jī)制同樣起到相似作用。而在系統(tǒng)架構(gòu)方面主要分為三層:云端處理層、客戶(hù)端應(yīng)用層和平臺(tái)支撐層。云端處理層即為系統(tǒng)中間服務(wù)器,整個(gè)服務(wù)器端是基于J2EE架構(gòu)移植性好,可以與所有平臺(tái)的客戶(hù)端兼容,即使將來(lái)程序移植到其他平臺(tái)也可以在不修改服務(wù)器端代碼的情況下與服務(wù)器端正常交互;客戶(hù)端應(yīng)用層主要是系統(tǒng)在Android客戶(hù)端上的應(yīng)用,包JournalofComputerApplications計(jì)算機(jī)應(yīng)用,2012,32(5:1474-1476ISSN1001-9081CODENJYIIDU2012-05-01http://www.joca.cn括生成二維碼和解碼二維碼圖片;平臺(tái)支撐層主要是Android2.1系統(tǒng)平臺(tái),整個(gè)二維碼識(shí)別系統(tǒng)都是以它為基礎(chǔ)進(jìn)行開(kāi)發(fā)的。最后用戶(hù)通過(guò)客戶(hù)端界面表示層與本系統(tǒng)取得交互。圖1系統(tǒng)架構(gòu)圖2系統(tǒng)體系結(jié)構(gòu)1.2系統(tǒng)功能設(shè)計(jì)系統(tǒng)從功能角度來(lái)分析,分為客戶(hù)端和服務(wù)器端,能夠利用手機(jī)生成和識(shí)別出二維碼圖片。生成的二維碼圖片應(yīng)支持多種信息格式,如商品信息格式、網(wǎng)頁(yè)標(biāo)簽格式、聯(lián)系人信息等,識(shí)別二維碼圖片是指系統(tǒng)從SD卡上選擇二維碼圖片并解碼,而且可以對(duì)解碼出來(lái)的信息作出不同響應(yīng)。系統(tǒng)總體功能模塊如圖3所示。其中JSON(JavaScriptObjectNotation[14-15]是一種輕量級(jí)的數(shù)據(jù)交換格式,易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成。它基于JavaScript的一個(gè)子集,是一種理想的數(shù)據(jù)交換語(yǔ)言。本系統(tǒng)開(kāi)發(fā)以JSON作為標(biāo)準(zhǔn)的客戶(hù)端與服務(wù)器端數(shù)據(jù)交換格式,以便于將來(lái)將客戶(hù)端移植到其他智能手機(jī)平臺(tái)時(shí)也可以方便地與服務(wù)器端通信。圖3系統(tǒng)功能模塊1.3系統(tǒng)用例分析系統(tǒng)用例分析如圖4所示,從圖中可以看出注冊(cè)用戶(hù)可以使用系統(tǒng)全部功能,包括生成商品信息、電話(huà)號(hào)碼、網(wǎng)絡(luò)標(biāo)簽三種格式的二維碼信息,彩信分享自己生成的二維碼圖片、解碼本地二維碼圖片,對(duì)解碼出來(lái)的信息進(jìn)行智能處理(包括直接撥號(hào)、添加至聯(lián)系人、直接瀏覽、添加至?xí)灐⒔獯a出來(lái)的商品信息上傳至服務(wù)器并查看詳情等功能。未注冊(cè)用戶(hù)必須先注冊(cè)才能使用注冊(cè)用戶(hù)的功能。圖4系統(tǒng)整體用例圖2二維碼識(shí)別系統(tǒng)的實(shí)現(xiàn)2.1客戶(hù)端實(shí)現(xiàn)整個(gè)客戶(hù)端是基于Android2.1、Eclipse3.6、ADT8.0.0??蛻?hù)端的頂層包如圖5所示。圖5客戶(hù)端頂層包圖其中,com.hp.qrcode包放置的是系統(tǒng)的主要界面的Activity類(lèi);com.hp.qrcode.decode包主要是關(guān)系系統(tǒng)解碼部分操作,包括解碼時(shí)的文件選擇瀏覽器以及解碼二維碼圖片類(lèi);com.hp.qrcode.encode包負(fù)責(zé)生成二維碼相關(guān)操作及頁(yè)面;com.hp.qrcode.util包主要是負(fù)責(zé)系統(tǒng)的工具類(lèi),主要包括三個(gè)工具類(lèi)(GeneralUtils.java類(lèi)、HttpUtils.java類(lèi)和ListUtils.java類(lèi)和一個(gè)QRCODE圖像擴(kuò)展類(lèi);com.hp.qrcode.view包負(fù)責(zé)系統(tǒng)自定義視圖組件類(lèi),主要是系統(tǒng)下方菜單基類(lèi)和菜單中使用的標(biāo)簽欄類(lèi);com.hp.qrcode.view.a(chǎn)dapter包負(fù)責(zé)自定義視圖的內(nèi)容適配器,主要包括下方菜單項(xiàng)和菜單圖標(biāo)的適配;com.hp.qrcode.view.base包負(fù)責(zé)自定義視圖的基礎(chǔ)類(lèi);com.hp.qrcode.view.entity包主要包括菜單項(xiàng)的實(shí)體類(lèi)MenuItems.java;com.hp.qrcode.view.static_data包主要包括菜單項(xiàng)的數(shù)據(jù)類(lèi)Data.java,里面主要是菜單標(biāo)題內(nèi)容及對(duì)應(yīng)的圖標(biāo)資源ID。2.2服務(wù)器端實(shí)現(xiàn)系統(tǒng)服務(wù)器端是搭建在基于Web的J2EE平臺(tái)之上,采用SSH框架進(jìn)行開(kāi)發(fā)的。對(duì)于整個(gè)開(kāi)發(fā)平臺(tái)環(huán)境的簡(jiǎn)單搭建描述如下:運(yùn)行時(shí)環(huán)境JDK1.6,集成開(kāi)發(fā)環(huán)境Myeclipse6.5,服務(wù)器tomcat6,數(shù)據(jù)庫(kù)MySQL5.0。整個(gè)服務(wù)器端頂層包如圖6所示。其中,com.hp.qr_server.domain:該包內(nèi)放置的是普通JavaBean,系統(tǒng)運(yùn)用Hibernate技術(shù)將這些JavaBean對(duì)象映射到數(shù)據(jù)庫(kù)中;com.hp.qr_server.util包內(nèi)放置的是系統(tǒng)的工具類(lèi)GeoIP.java,該類(lèi)主要是通過(guò)IP地址在GeoLiteCity.dat中查詢(xún)并獲得IP對(duì)應(yīng)的經(jīng)緯度、所屬?lài)?guó)家、所屬城市名信息;com.hp.qr_server.a(chǎn)ction包內(nèi)放置的是系統(tǒng)的所有action類(lèi),處理前端的各類(lèi)請(qǐng)求,包括登錄、注冊(cè)、接收客戶(hù)端信息等操作均是提交給這里的action處理。com.hp.qr_server.service包內(nèi)放置的是系統(tǒng)的所有service接口,定義了所有用到的業(yè)務(wù)邏輯方;com.hp.qr_server.serviceImpl包內(nèi)放置的是系統(tǒng)的所有service實(shí)現(xiàn)類(lèi),實(shí)現(xiàn)了所有的業(yè)務(wù)邏輯方法的具體行為;com.hp.qr_server.dao:包內(nèi)放置的是系統(tǒng)的所有數(shù)據(jù)訪(fǎng)問(wèn)的數(shù)據(jù)持久化方法的實(shí)現(xiàn)的接口;com.hp.qr_server.daoImpl:包內(nèi)放置的是系統(tǒng)的所有dao接口的實(shí)現(xiàn)類(lèi),直接操作數(shù)據(jù)庫(kù)數(shù)據(jù),包括各類(lèi)數(shù)據(jù)的增、刪、改、查等。圖6服務(wù)器端頂層包圖2.3二維碼生成功能實(shí)現(xiàn)二維碼的生成主要是通過(guò)MyView類(lèi)的AndroidQREncode方法,當(dāng)前端將需要生成二維碼圖片的信息和QRCODE版本號(hào)分別以字符串類(lèi)型參數(shù)和整型參數(shù)的形式傳遞給AndroidQREncode方法,方法內(nèi)容使用第三方包SwetakeQRCode.jar以傳入的參數(shù)構(gòu)建QRCODE對(duì)象,再對(duì)QRCODE對(duì)象轉(zhuǎn)化為布爾類(lèi)型的二維數(shù)組,通過(guò)對(duì)數(shù)組進(jìn)行循環(huán)用畫(huà)筆在畫(huà)布中繪出二維碼圖形,最后生成Bitmap類(lèi)型的二維碼圖像對(duì)象。publicBitmapAndroidQREncode(StringstrEncoding,intqrcodeVersion{Log.i("wwj","QREncode";BitmapcanvasBmp=null;try{//構(gòu)建QRCode編碼對(duì)象com.swetake.util.QrcodetestQrcode=newcom.swetake.util.Qrcode(;/*'L','M','Q','H'*/estQrcode.setQrcodeErrorCorrect('M';/*"N","A"orother*/testQrcode.setQrcodeEncodeMode('B';/*0-20*/testQrcode.setQrcodeVersion(qrcodeVersion;//getBytesbyte[]bytesEncoding=strEncoding.getBytes("utf-8";if(bytesEncoding.length>0{//轉(zhuǎn)化成boolean數(shù)組bEncoding=testQrcode.calQrcode(bytesEncoding;intw=240;inth=240;canvasBmp=Bitmap.createBitmap(w,h,Config.ARGB_8888;Canvascn=newCanvas(canvasBmp;onDraw(cn;//將二維碼圖像繪制到新建的畫(huà)布上cn.save(Canvas.ALL_SAVE_FLAG;cn.restore(;}}catch(Exceptione{e.printStackTrace(;}returncanvasBmp;}2.4二維碼識(shí)別功能實(shí)現(xiàn)通過(guò)調(diào)用第三方庫(kù)SourceForgeQRCode.jar,只需要將二維碼圖片以AndroidQRCodeImage類(lèi)型作為參數(shù)調(diào)用jp.sourceforge.qrcode.QRCodeDecoder的decode方法即能得到解析出來(lái)的字符串?dāng)?shù)據(jù),最后對(duì)字符串?dāng)?shù)據(jù)根據(jù)已經(jīng)設(shè)定的信息類(lèi)型標(biāo)準(zhǔn)進(jìn)行比較以判斷是哪種信息格式再給用戶(hù)對(duì)應(yīng)的操作。圖7顯示的是解碼成功的顯示頁(yè)面。圖7解碼成功頁(yè)面3結(jié)語(yǔ)本文設(shè)計(jì)并實(shí)現(xiàn)了基于Android手機(jī)二維碼識(shí)別系統(tǒng)。系統(tǒng)在研發(fā)過(guò)程中結(jié)合了現(xiàn)代軟件工程理論和先進(jìn)的智能手機(jī)應(yīng)用,充分考慮到了移動(dòng)終端的優(yōu)缺點(diǎn)并采用揚(yáng)長(zhǎng)避短的方式以便能夠開(kāi)發(fā)出一套完全符合手機(jī)終端用戶(hù)行為習(xí)慣的系統(tǒng),系統(tǒng)將二維碼的識(shí)別與生成相結(jié)合,實(shí)現(xiàn)對(duì)QR二維碼的編碼和解碼,使用戶(hù)能夠通過(guò)二維碼的使用更加方便自己的生活、學(xué)習(xí)和工作,具有非常大的實(shí)用價(jià)值。通過(guò)實(shí)踐應(yīng)用和測(cè)試結(jié)果表明,該系統(tǒng)能夠識(shí)別QR碼信息,并滿(mǎn)足時(shí)間和準(zhǔn)確度的要求。參考文獻(xiàn):[1]PAVLIDIST,SWARTZJ,WANGYP.Informationencodingwithtwo-dimensionalbarcodes[J].IEEEComputer,1992,25(6:18-28.[2]周曉偉.二維條碼識(shí)別技術(shù)研究[D].上海:上海交通大學(xué),2007.[3]RUSSA.Twodimensionalbarcodes[J].AdamsCommunications,2002,27(4:15-18.[4]王毅.二維條碼技術(shù)應(yīng)用及標(biāo)準(zhǔn)化狀況介紹[J].中國(guó)標(biāo)準(zhǔn)化,2006(5:25-26.[5]KATOH,TANK.2Dbarcodesformobilephones[C]//2ndInter-nationalConferenceonMobileTechnology,ApplicationsandSys-tems.Washington,DC:IEEEComputerSociety,2005:15-17.[6]LYCONS,KSCHISCHANFR.Two-dimensionalbarcodesformobilephones[C]//20102

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論