盧賽 虞其凱 何鍇翔 季立寰
【摘 要】二維碼技術(shù)是當(dāng)前移動(dòng)商務(wù)中的主要技術(shù)之一,而Android平臺(tái)是當(dāng)前應(yīng)用非常廣泛的移動(dòng)終端平臺(tái)。本文介紹了QR二維碼的基本編碼原理,并在此基礎(chǔ)上基于Android平臺(tái)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)QR二維碼搜索軟件。
【關(guān)鍵詞】二維碼;QR碼;Android
0.引言
隨著3G網(wǎng)絡(luò)的普及,移動(dòng)互聯(lián)網(wǎng)時(shí)代已經(jīng)到來(lái),移動(dòng)商務(wù)得到了快速發(fā)展,給人們的生活帶來(lái)了極大的便利。無(wú)線終端(包括智能手機(jī)、平板電腦等)是移動(dòng)互聯(lián)網(wǎng)和移動(dòng)商務(wù)的重要載體。Android是用于Google公司推出的用于無(wú)線終端的操作系統(tǒng),提供了豐富的API接口,能夠方便地集成很多Google的服務(wù)。由于其開(kāi)源的特性得到了廣泛認(rèn)可,擁有較高的市場(chǎng)占有率。
移動(dòng)商務(wù)的發(fā)展離不開(kāi)二維碼技術(shù)。目前,二維碼在傳統(tǒng)商務(wù)活動(dòng)和移動(dòng)商務(wù)中都得到了較好的應(yīng)用。典型的物流行業(yè)、票務(wù)和證件防偽等都利用了二維碼技術(shù)。目前以微信、微博為代表的各種社交類應(yīng)用中已經(jīng)紛紛推出二維碼功能,二維碼形式的廣告、電子消費(fèi)券、電子交易憑證也都應(yīng)運(yùn)而生[1]。二維碼已經(jīng)成為移動(dòng)商務(wù)的重要組成部分。
1.QR二維碼的基本編碼原理
二維碼,即二維條碼,是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分布的黑白相間的圖形記錄數(shù)據(jù)符號(hào)信息的。二維碼技術(shù)是在一維碼無(wú)法滿足實(shí)際應(yīng)用需求的前提下產(chǎn)生的。由于受信息容量的限制,一維碼通常是對(duì)物品的標(biāo)識(shí),而不是對(duì)物品的描述。所謂對(duì)物品的標(biāo)識(shí),就是給某物品分配一個(gè)代碼,代碼以條碼的形式標(biāo)識(shí)在物品上,用來(lái)標(biāo)識(shí)該物品以便自動(dòng)掃描設(shè)備的識(shí)讀,代碼或一維碼本身不表示該產(chǎn)品的描述性信息。
QR(Quick-Response)二維碼是目前應(yīng)用較多的二維碼之一,解碼速度快。QR二維碼的基本結(jié)構(gòu)如圖1所示。其中:位置探測(cè)圖形、位置探測(cè)圖形分隔符及定位圖形用于對(duì)二維碼的定位,對(duì)每個(gè)QR碼來(lái)說(shuō),位置都是固定存在的,只是大小規(guī)格會(huì)有所差異。校正圖形的數(shù)量和位置根據(jù)規(guī)格確定。格式信息表示改二維碼的糾錯(cuò)級(jí)別,分為L(zhǎng)、M、Q、H。版本信息即二維碼的規(guī)格,QR碼符號(hào)共有40種規(guī)格的矩陣(一般為黑白色),從21x21(版本1),到177x177(版本40),每一版本符號(hào)比前一版本 每邊增加4個(gè)模塊。數(shù)據(jù)和糾錯(cuò)碼字實(shí)際保存的二維碼信息,和糾錯(cuò)碼字(用于修正二維碼損壞帶來(lái)的錯(cuò)誤)。[2]
圖1 QR二維碼的基本結(jié)構(gòu)
QR二維碼的編碼過(guò)程中首先確定編碼的字符類型和糾錯(cuò)等級(jí),按相應(yīng)的字符集轉(zhuǎn)換成符號(hào)字符。然后將數(shù)據(jù)字符轉(zhuǎn)換為位流,每8位一個(gè)碼字,整體構(gòu)成一個(gè)數(shù)據(jù)的碼字序列。按需要將碼字序列分塊,并根據(jù)糾錯(cuò)等級(jí)和分塊的碼字,產(chǎn)生糾錯(cuò)碼字,并把糾錯(cuò)碼字加入到數(shù)據(jù)碼字序列后面,成為一個(gè)新的序列,并按次序放如圖2所示的分塊中。最后將探測(cè)圖形、分隔符、定位圖形、校正圖形、碼字模塊、生成格式和版本信息放入相應(yīng)區(qū)域內(nèi)放入相應(yīng)的區(qū)域。
圖2 QR二維碼分塊結(jié)構(gòu)
2.QR二維碼搜索軟件的設(shè)計(jì)與實(shí)現(xiàn)
2.1開(kāi)發(fā)環(huán)境[3]
Android平臺(tái)為開(kāi)發(fā)者提供了源碼開(kāi)放的軟件開(kāi)發(fā)包(SDK),它包含了使用Java語(yǔ)言開(kāi)發(fā)Android平臺(tái)應(yīng)用的必要工具和組件(API)。Windows下開(kāi)發(fā)Android應(yīng)用程序的開(kāi)發(fā)環(huán)境主要包括:JDK、Eclipse IDE、ADT擴(kuò)展包以及Android SDK,其中ADT是一個(gè)基于Eclipse的Android開(kāi)發(fā)工具擴(kuò)展包(Android Development Tools plugin),Android SDK是Android程序開(kāi)發(fā)包(Software Development Kit),包含Android手機(jī)模擬器。
2.2系統(tǒng)設(shè)計(jì)
實(shí)際上,目前用于移動(dòng)商務(wù)中的手機(jī)端的二維碼識(shí)別軟件已經(jīng)比較多了,但是這些軟件往往是某一個(gè)電子商務(wù)平臺(tái)APP中的一項(xiàng)功能,或者是單純的掃描軟件不結(jié)合具體的商務(wù)平臺(tái)。這些軟件的局限性就在于用戶無(wú)法選擇任意的電子商務(wù)平臺(tái)搜索,換言之,用戶必須安裝多個(gè)不同電商平臺(tái)的APP,且在不同的APP之間切換才能達(dá)到目的。
基于上述原因,本文設(shè)計(jì)一個(gè)能夠跨電子商務(wù)平臺(tái)搜索的二維碼識(shí)別軟件。該軟件主要包括以下兩項(xiàng)功能:
●掃描并識(shí)別QR二維碼:通過(guò)手機(jī)攝像頭掃描二維碼圖像,解碼該圖像。
●二維碼搜索:在主流的電子商務(wù)平臺(tái)和搜索引擎中搜索,包括淘寶、當(dāng)當(dāng)、京東商城、百度和谷歌搜索。
2.3系統(tǒng)實(shí)現(xiàn)
我們采用第三方包zxing[4]進(jìn)行QR二維碼解碼。表1是QR二維碼解碼的關(guān)鍵代碼,表2是通過(guò)百度搜索的關(guān)鍵代碼,其他搜索谷歌、淘寶等的代碼類似。圖3是我們實(shí)現(xiàn)的軟件界面。
3.結(jié)束語(yǔ)
本文介紹了二維碼技術(shù)在移動(dòng)商務(wù)中的應(yīng)用概況,分析了QR二維碼的基本編碼原理,并基于當(dāng)前的主流移動(dòng)終端平臺(tái)Android設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)QR二維碼搜索軟件。該軟件能夠通過(guò)掃描二維碼的形式在當(dāng)前主流的電子商務(wù)平臺(tái)中搜索。 [科]
【參考文獻(xiàn)】
[1]季立寰,盧賽.二維碼在移動(dòng)商務(wù)中的應(yīng)用研究[J].科技致富向?qū)В?013,(11).
[2]馮漢祿,黃穎為等.QR碼糾錯(cuò)碼原理及實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2011,34(Suppl.1):40-42.
[3]張?jiān)?Windows下Android應(yīng)用程序開(kāi)發(fā)環(huán)境搭建詳解[J].計(jì)算機(jī)時(shí)代,2013,(01):32-34.
[4]ZXing ("Zebra Crossing")第三方開(kāi)發(fā)包.https://code.google.com/p/zxing/.