基于安卓平台的二维码扫描器的研究与开发

 2024-02-06 10:02

论文总字数:17086字

摘 要

课题基于Android开发平台在Windows环境下采用面向对象方法研究和开发了二维码识别系统。该二维码识别软件基于Google提供的Windows平台上的开发工具在Android平台下开发完成,最终可以实现在线二维码识别业务,并通过在线二维码生成器验证了二维码识别的准确性。论文首先介绍了课题的背景和意义以及国内外研究现状,并详细分析了二维码的原理和识别技术基础,然后根据二维码识别的技术特点和实际应用对二维码识别软件进行了需求分析论证和软件功能的分析与设计,总体按照需求分析、总体设计、详细设计、实现和测试几个阶段完成系统的设计与实现并对其进行了详细地描述。

关键词:Android开发,二维码,QR码

Abstract:Android development platform based on the subject of object-oriented methods of research and development of two-dimensional code identification system uses the Windows environment. The two-dimensional code recognition software development tools based on Google"s Windows platform developed under the Android platform, the final two-dimensional code recognition can be achieved online business and online two-dimensional code generator to verify the accuracy of the two-dimensional code recognition. The paper introduces the background and significance of the research status at home and abroad, and a detailed analysis of the principles and the basis of two-dimensional code recognition technology, and according to the technical characteristics and the actual two-dimensional code recognition of the two-dimensional code recognition software demand analysis and design analysis and appraisal and software functions, in accordance with the general requirements analysis, design, detailed design, system design and implementation stages of implementation, and testing is completed and described it in detail.

Keywords: Android Develop, Two-Dimensional Code, QR Code

目 录

1 前言

1.1 研究背景以及意义

随着科学技术的发展,物联网已成为当今信息技术当中一门炙手可热的方向。物联网是指通过信息传感设备实时采集需要的信息并与互联网结合而成的一个大型网络。物联网的目的在于实现物与物、物与人以及所有的物品与网络的连接,以方便识别、管理和控制。物联网由感知层、网络层和应用层三层组成。感知层由各种传感器以及传感器网关构成,其作用在于识别物体和采集信息。

条形码技术是集条码理论、光电技术、计算机技术、通信技术等技术于一体的综合性技术。它具有采集信息量大、可靠性高、输入速度快、成本低等特点,近年来发展速度迅猛,在国际上广泛应用于物流仓储、商品流通、信息服务等领域,极大地提升了生产效率。从寻呼机到目前3G手机的面市,中国人已经习惯了手中的移动手机不停地更新变化。也正是由于这些现实因素,本课题以理论为基础,方便人们生活,提高工作效率为根本目标。

QR码具有抗损性、强可靠性高、全方位、信息容量大、全方位和超高速识读等特点,而且能高效的表示中国汉字。随着信息技术的进步,条形码识别设备愈来愈智能化、网络化和微形化。可以应用于物流、广告宣传等领域。另一方面Android已成为第一大嵌入式操作系统,适合我国的国情以及汉字编码的特点[1]。综上QR码在手机中的应用有着非常好的前景和潜力,因此研究基于Android嵌入式平台下的条码识别有着非常重要的现实意义。

1.2 国内外研究与发展现状

条码技术是信息技术的基础上发展起来的,集编码、印刷、鉴定为集成的数据采集与处理技术。目前由于增加的工业数据信息量大,传统的一维条码技术已经无法满足社会的需求,因此二维码技术得到了广泛的应用。随着内置摄像头手机的日益普及,手机作为数据采集装置使二维条码扫描和识别变得更加方便。该密钥加密算法通过明文为不能直接读取代码。为了使QR码识别更具有保密性,在企业物料智能采集系统采用DES算法加密数据字写。

我国的条码自动识别技术起步比较晚,尤其是二维条码,但是其发展很快。目前二维条码以其特有的技术优势在我国的许多领域得到了广泛的应用,并且展现出良好的发展和应用前景。在二维条码技术的研究和发展方面,为了解决汉字说这困难的问题,在中国进入了快速响应矩阵码国家标准新世纪(即QR码),并添加了独特的汉字在QR码系统的编码方式,有助于我国二维条码的应用。二维条码在应用中也存在着一些问题如汉字表示效率低、识别设备价格过高等等,这些不利因素不同程度的制约着二维条码技术在我国向纵深发展。为了解决这些问题中国物品编码中心与多所高校和企业开展新的编码系统和国内设备识别研究。

在国外手机二维码技术是一种成熟的技术,广泛应用在日常生活中信息的快速交换领域,如移动互联网、电子门票,在亚太地区日本、韩国、中国的香港已经大规模应用。手机二维码在中国的应用相对较晚,北京和上海从最初的2006中国移动通讯八月推出,然后逐渐扩展到全国。从此二维条码成为业界关注的焦点。

目前我国在该技术领域方面的应用都还还远谈不上成熟,国内企业应该抓住商机,加大投入力度,推动整个行业的发展。

二维条码是由黑色和白色模块根据一定的规则在水平和垂直方向的两个是几何,黑白模块记录信息”二维条码模块与计算机逻辑0。使用二进制相应的几何形图像输入设备的信息、光学扫描设备自动识别自动化信息处理。和其他自动化识别技术相比,二维条码有其独特的优势。美国、日本、韩国和其他国家的二维条码技术已经应用到各种文件、应用报表、票据、邮寄包裹、生产线的管理等。在标准化研究方面,国际标准化组织/国际电工委员会定了DF417、DataMatrix、Maxicode、QR码等二维条码的国际标准[2]。在条码识读设备的开发研制和生产方面,日本的OPtion等设备制造商生产的识读设备和符号生成设备已经广泛应用于各类应用系统。可以说基于Android平台的二维码识别软件发布促进手机大多数消费者的生活,为用户提供了方便。因此二维码识别技术在安卓手机上应用其前景明朗,对相关理论及科学技术的研究的影响意义也十分深远。

1.3 论文主要研究内容

该软件基于Android开发平台在windows环境下采用面向对象方法进行开发。严格按照软件工程的思想,根据需求分析、总体设计、详细设计、实现和测试阶段,划分整个系统的设计与实现。进行需求分析和可行性分析、在概要设计中建立了系统功能模型、在详细设计阶段对图片处理过程进行设计、对软件进行编码和测试。该软件实现对二维码的扫描与识别,具有很强的实用性。

设计实现的主要功能应包括:

(1)能够通过摄像头扫描识别二维码、商品条码。

(2)若二维码内容是网址信息,那么通过浏览器浏览该网站。

(3)若二维码隐藏的普通文本信息,那么显示该文本信息。

(4)若是商品条码,则显示条码序号,不显示商品价格(如果要显示价格需要跟商家合作,所以该功能不打算实现)。

(5)可以自定义生成二维码,路径默认设置在手机SDCard相关文件夹中。

2 课题相关理论与技术

2.1 二维码技术原理

二维码作为一种全新的条码技术,已被广泛应用于国防、医疗保健、商业、金融、后勤管理等领域。由于大型QRcode二维条形码的信息容量和安全性能好、成本低,适合人口众多、计算机建设不完善的情况,所以有着非常广阔的应用前景。预计应用推广的二维码技术对信息产业的发展带来可观的经济效益和社会的现代化经济建设益处。

一个二维码(二维条形码)按一定规律,平面几何的黑色和白色的资料信息分布方向图形记录2D。在许多种类的二维条码常用的编码系统有:方形、Maxicode、阿兹特克、QR码、vericode、PDF417、ultracode、code49、CODE16K等[2,3,4,5,6]

1)堆叠式/行排式二维条码,如,Code16K、Code49、PDF417等。

2)矩阵式二维码,最流行莫过于QRCODE。

QR(Quick-Response) code是被广泛使用的一种二维码,解码速度快,它可以存储多用类型。现在使用的QRCODE二位条形码的规范一直遵循OMIA(Open Mobile Internet Alliance)的规范,QRCode基本结构如图2.1所示[5]

图2.1 QRCode基本结构

其中位置探测图形、位置探测图形分隔符和定位图形用于对二维码的定位;对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异;规格确定,校正图形的数量和位置也就确定了;格式信息表示改二维码的纠错级别,分为L、M、Q、H;了二维代码规格的QR码象征,版本信息,一共40种基质的(通常为黑白)规格的,从21x21为(Version 1)177x177,(Version 4)各个版本的符号比,每边增加四模块版本。了实测数据和纠错编码来保存的信息二维码(二维码的纠错编码用来矫正错误造成损害)。简要的解码过程:二维码图像,图像解析出01编码,按照规则解释为相应的内容[7,8,9,10]

2.2 Android手机平台

2.2.1 Android简介

Android的意思是“机器人”,是谷歌在2007年11月5日发布了一个基于Linux的开源移动操作系统。该系统是由Linux操作系统的底层、中间件和核心应用形式。Android应用程序由功能强大的Java语言编写的,而且还支持一些其他的语言如C、Perl等。

2.2.2 Android平台特点

Android为移动设备设置了一个特殊的软件,包括Linux操作系统的底层、中间层和上层Java应用中间件。Android平台的开发特点如下:

应用程序框架支持组件的重用与替换。这在之前的手机操作系统当中是很难想象的。这意味着我们可以把系统中不喜欢的应用程序替换掉,安装我们喜欢的应用程序。

Dalvik虚拟机专门为移动设备做了优化。Android应用程序将由java编写、编译的类文件通过DX工具转换成一种后缀名为.dex的文件来执行。Dalvik虚拟机是基于寄存器的,相对于Java虚拟机要快很多。优化包括二维图形库和三维图形库和OpenGL三维图形库,基于es1.0强大的图形库给游戏开发带来福音。丰富的开发环境包括一个设备模拟器,调试工具,内存和性能分析图和Eclipse集成开发环境插件。

2.3 Android系统结构组成分析

Android系统由底层到应用层的系统结构如图2.2所示[9]

图2.2 Android系统框架图

2.4 Android开发工具

Eclipse集成开发环境(集成开发环境是一个集成开发环境,)它是功能完全的、成熟的软件,IBM在2001推出第一。Eclipse是一个开源的,基于Java的可扩展开发平台。开放源代码的意义是让用户得到软件的源代码,有权修改和传播的软件。Eclipse本身只是一个框架和一组称为核心平台的服务程序,用于从插件构建开发环境。Eclipse提供了Java开发工具包(Java开发工具,插件JDT)标准,所以如果你想使用Eclipse的Java应用程序必须安装JDK作为插件使它正常运行。

JDK(Java Development Kit,JDK)是整个Java的核心,包括了Java运行环境(Java Runt ime Envirnment)、Java工具和Java基础的类库(rt.jar)。

2.5 开发环境搭建

2.5.1 下载和安装Android SDK

登陆Android网站(http://developer.Android.com/sdk/index.html)下载Android SDK。下载完成后得到Android-sdk_r18-windows.zip文件。将该文件解压到任意路径,安装Android SDK。

2.5.2 安装Eclipse和ADT插件

Eclipse是一个市场占有率很高的Java IDE工具,Java EE应用的开发者对Eclipse应该十分熟悉,Android推荐使用Eclipse来开发Android应用,并为它提供专门的插件ADT(Android Development Tools, ADT)。登陆网站(http://www.eclipse.org)站点,下载Eclipse Java EE Developer 的版本。登陆网站(http://developer.Android.com/sdk/eclipse-adt.html)下载ADT插件最新版本后得到ADT-18.0.0.zip文件。

3 可行性研究与需求分析

3.1 可行性研究

一个项目的开发需要仔细分析,看它在目前的情况下是否可行,如果一个项目开发具有很好的背景和意义,但是在经济上或者是技术上是不可行的,那么它也只能称之为不能实现的项目。通过参照现有相似的其他网站的使用效果和分析实例进行可行性研究,主要从以下四个方面进行讨论。

3.1.1 技术可行性

本次开发的Android二维码扫描识别软件,用户通过手机对QRcode二维码进行拍照解码识别并且显示二维码包含的信息,如果二维码内容是网址链接,则通过webkit内核浏览器直接上网;而若未发现任何标准规范,则显示二维码的内容。如果扫描的图片不是QRcode二维码、条形码或者程序无法识别,则不作任何处理。首先,我们需要借助三分之一方的库函数qrcode.jar。然后我们可以通过摄像头获取手机二维码图片,然后发送到QR码解码功能,通过对比OMIA规范,在技术上是可行的。

3.1.2 操作可行性

通过对Android的二维码扫描识别研究。该系统能够满足投资者的基本要求。系统只需要有一个Android手机可以QRcode二维码扫描识别。

3.1.3 社会可行性

本软件可以让用户通过手机对一些产品上的二维码进行扫描识别,从而查看该产品的详细信息。

3.2 需求分析

系统的实施必须考虑很多因素,一般方法及技术要求的相应多一些。

3.2.1 系统功能需求

(1)相机预览需求

二维码识别系统必须能够在手机摄像头获取二维码图像。因此它获得的二维码图像必须有摄像头预览功能。

(2)关闭相机预览需求

系统要打开手机照相机,当然也需要能够关闭相机预览功能。

(3)图像处理和拍照解码需求

系统经过二维码编码识别,然后图像处理,应对二维编码的解码需要必须具备图像处理和译码功能。

(4)调用浏览器功能

当二维码编码隐藏内容的是一个网站信息时,当需要访问该网站时需要调用webkit内核浏览器功能。

(5)生成二维码功能

可以输入想生成的内容,通过程序将内容生成二维码,并保存到SDCard相关目录下。

(6)其他功能

显示文本功能:当二维码隐藏的只是一些文本信息的时候能够将文本信息显示出来。

3.2.2 系统功能结构图

系统结构图是一种图形显示的软件系统结构的总体设计框架。在需求分析阶段,从系统发展的角度来看,根据连续分割成一个层次结构的功能使一个完整的系统功能的各个部分之间保持一个关联。在设计阶段基于这个功能的层次结构的所有部分一起导入系统规划阶段。

图3.1 系统功能结构图

3.2.3 系统用例

用例描述了系统或子系统在外部使用者使用的情况下,系统或子系统的具有的功能单元的定义和描述。系统具有用例大概描述如下:

(1)打开相机用例:调用手机照相机初始化相机模式。

(2)拍照解码用例:通过手机照相机把二维码图片扫描下来然后再送入系统解码。

(3)调用浏览器用例:如果二维码信息隐藏的是网址链接,那么手机便调用webkit内核浏览器浏览该网站。

(4)显示二维码内容用例:如果二维码信息只是包含一些文本信息,那么直接显示。

(5)生成二维码用例:输入内容,通过网络生成二维码,并保存生成后的图片。

(6)关闭相机用例:关闭手机照相机。

3.2.4 系统业务关系

活动图(活动图,动态图)是业务用例实现工作流。商业案例的工作过程来说明商业服务业务参与者提供期望值和必须完成的工作。这些业务都是由一系列的活动中,共同业务产生工件的男星。工作过程一般包括基本的流程与一个或多个可选择的工作流量。工作流程的结构使用活动图来进行说明。系统的活动图如图所示。

图3.2 系统业务关系图

3.3 技术需求

Android二维码扫描编解码是一个综合性比较强的操作,它需要综合多方面的知识,具体的几个主要技术要求如下:

(1)Android技术

Android开发之前需要配置Android开发环境。首先Android开发所需要的开发包和工具以及获得它们的方式;其次如何正确安装和配置这些开发包;最后为了检验所开发环境安装Android项目创建检测项目和在模拟器运行和调试应用程序并安装在Android手机上。

(2)照相机实现技术

在了解了Android开发的过程之后需要学习Android如何照相编程。Android应用提供了Camera来控制拍照,使用Camera进行拍照需要按照如下步骤进行即可。

调用Camera的open()方法打开照相机。

剩余内容已隐藏,请支付后下载全文,论文总字数:17086字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;