Android二维码的生成毕设报告.docx
《Android二维码的生成毕设报告.docx》由会员分享,可在线阅读,更多相关《Android二维码的生成毕设报告.docx(61页珍藏版)》请在冰豆网上搜索。
![Android二维码的生成毕设报告.docx](https://file1.bdocx.com/fileroot1/2023-1/1/7c833222-44c5-42f0-b4cc-06a93f54f1af/7c833222-44c5-42f0-b4cc-06a93f54f1af1.gif)
Android二维码的生成毕设报告
中文摘要
二维码生成的开发研究主要是为了完善手机二维码的功能,让用户可以随时随地的生成二维码。
手机上如果同时拥有二维码扫描和生成两个软件,那么手机用户彼此之间也可以用二维码进行通信,比如,短信的内容以二维码图片的方式发送。
本文在分析讨论Android手机软件开发技术原理的基础上,开发出基于Android平台的二维码生成软件。
此软件可以把输入的字符串生成二维码,还能够将其保存成图片,图片的名字是用输入的字符串命名的,而且本软件还提供一些针对图片的操作,其中包括上下键查找功能,查看图片详细信息功能,搜索功能,删除功能。
在这些功能下用户既可以生成二维码,也可以对生成的二维码图片进行相应的操作。
关键字:
Android;二维码;图片
Two-dimensionalCodeGenerationofAndroid
Author:
LiTongTutor:
LiFuping
Abstract
Theresearchanddevelopmentoftwo-dimensionalcodegenerationistoimprovemobilephonetwo-dimensionalcodefunction.Inanotherwords,itcanhelpusersgeneratetwo-dimensionalcodewheneverandwherever.Ifthemobilephonehassoftwarewhichhavefunctionsofscanningandgeneratingtwo-dimensional,theuserscancommunicatewitheachotherthroughtwo-dimensionalcode.Forexample,userscanusetwo-dimensionalcodestosendSMS.
ThisessayistoanalyzeanddiscussAndroidmobilephonesoftwaredevelopmenttechnology.Meanwhile,basedontheprincipleofthedevelopmenttechnology,theauthorwilltrytodeveloptwo-dimensionalcodegenerationsoftwareinthebasisoftheAndroidplatform.Thissoftwarecaninputstringtogeneratetwo-dimensionalcodeandalsocansaveitintopictureswhicharethenameoftheinputstring.Moreover,thesoftwarealsoprovidessomeimagemanipulationthatincludesupdownkeysearchingfunction,viewingdetailedinformationfunction,searchingfunctionanddeletingfunction.Inthesefunctions,userscannotonlygeneratetwo-dimensionalcodebutalsocangeneratethecorrespondingoperationfortwo-dimensionalcode.
Keywords:
Android;two-dimensionalcode;picture
第一章系统概述
1.1项目开发的背景和意义
1.1.1项目开发的背景
二维条码(2-dimensionalbarcode)是在水平和垂直方向的二维空间存储信息。
二维条码具有信息容量大、安全性强、保密性高(可加密)、识别率高、编码范围广等特点。
同一维条码相比,二维条码也有一些缺点,如要有专门的生成程序,识读设备价格比较昂贵,对于在线扫描,即先有码后赋值的模式,不能发挥其特点。
二维条码也有许多不同的编码方法或称码制。
就这些码制的编码原理而言,通常可分为以下两种类型:
线性堆叠式(或称层排式)二维码(stackedbarcode):
是在一维条码编码原理的基础上,将多个一维码在纵向堆叠而产生的。
在编码设计、校验原理、识读方式等方面继承了一维条码的特点,识读设备与条码印刷与一维条码技术兼容,这类二维条码有CODE49、PDF417、CODE16K等。
矩阵式二维码(dotmatrixbarcode):
是在一个矩形空间里通过黑、白像素在矩阵中的不同分布进行编码。
矩阵式二维条码是建立在计算机图像处理技术、组合编码原理等基础之上的一种新型的图像符号自动识别处理码制。
有代表性的有CODEONE、DATAMATRIX、CP码等。
二维条码具有以下特点:
信息容量大,在一个二维条码中可以存储1000个字节以上,一个载体上可以有几个二维条码;信息密度高,同样大小的二维条码是一维条码信息密度的100倍以上;识别率极高,由于二维码有极强的错误修正技术,即便破损、玷污50%的面积也能正确读出全部信息;保密性、防伪能力强,由于二维码的编码技术十分巧妙,因此非常有效地防止伪造;编码范围广,可以将照片、指纹、掌纹、手写签名等凡是可以数字化的信息均可编码;制作容易、使用成本低,可以打印在普通的纸张、PVC或其他材料上,与一维条码的制造成本相当。
二维条码技术标准:
国外对二维条码技术的研究始于20世纪80年代末,已研制出多种码制,全球现有的一、二维条码多达250种以上,其中常见的有PDF417,QRCode,Code49,Code16K,CodeOne等20余种。
二维条码技术标准在全球范围得到了应用和推广。
美国讯宝科技公司(Symbol)和日本电装公司(Denso)都是二维条码技术的佼佼者。
目前得到广泛应用的二维码国际标准有QR码、PDF417码、DM码和CM码。
QR码是由日本Denso公司于1994年9月研制的一种矩阵二维条码符号,其全称为QuicklyResponse,意思是快速响应。
它除具有一维条码及其他二维条码所具有的信息容量大、可靠性高、可表示汉字及图像多种文字信息、保密防伪性强等优点外,还可高效地表示汉字,相同内容,其尺寸小于相同密度的PDF417条码。
它是目前日本主流的手机二维码技术标准,目前市场上的大部分条码打印机都支持QRcode条码。
PDF417码是由美籍华人王寅敬(音)博士发明的。
PDF是取英文PortableDataFile三个单词的首字母的缩写,意为“便携数据文件”。
因为组成条码的每一符号字符都是由4个条和4个空构成,如果将组成条码的最窄条或统称为一个模块,则上述的4个条和4个空的总模块数一定为17,所以称417码或PDF417码。
DM码,其全称为DataMatrix,中文名称为数据矩阵。
DM采用了复杂的纠错码技术,使得该编码具有超强的抗污染能力。
主要用于电子行业小零件的标识,如Intel的奔腾处理器的背面就印制了这种码,DM码由于其优秀的纠错能力成为韩国手机二维码的主流技术。
MC(Maxicode)码(又称牛眼码),是一种中等容量、尺寸固定的矩阵式二维条码,它由紧密相连的六边形模组和位于符号中央位置的定位图形所组成。
Maxicode是特别为高速扫描而设计,主要应用于包裹搜寻和追踪上。
是由美国联合包裹服务(UPS)公司研制的,用于包裹的分拣和跟踪。
Maxicode的基本特征:
外形近乎正方形,由位于符号中央的同心圆(或称公牛眼)定位图形(FinderPattern),及其周围六边形蜂巢式结构的资料位元所组成,这种排列方式使得Maxicode可从任意方向快速扫描。
在我国,GM《二维码网格矩阵码(GM)》SJ/T11349-2006和CM《二维码紧密矩阵码(CM)》SJ/T11350-2006标准是由原国家信息产业部于2006年5月25日所颁布的两项国产行业推荐标准。
此两项标准于2006年5月30日起实施。
GM码其全称为网格码(GridMatrixCode)是一种正方形的二维码码制,该码制的码图由正方形宏模块组成,每个宏模块由6乘6个正方形单元模块组成。
网格码可以编码存储一定量的数据并提供5个用户可选的纠错等级。
CM码意为“紧密矩阵”,是英文CompactMatrix的缩写。
码图采用齿孔定位技术和图像分段技术,通过分析齿孔定位信息和分段信息可快速完成二维条码图像的识别和处理。
1.1.2项目开发的意义
手机与二维码的结合,进一步拓展了二维码应用价值,促进了行业的融合。
随着市场、产业链、商业模式的不断成熟,手机二维码将为通信、媒体以及其他传统行业带来更多的商机,手机二维码将在未来走进更多人的生活。
随着全球信息通信技术的迅猛发展,以手机为终端的各种应用不断涌现,在未来,手机无疑将成为移动商务赖以发展的最重要的终端之一,而手机二维码的发展将在移动商务的发展中扮演重要角色。
由于手机二维码的广泛应用,因此用手机终端生成二维码的功能就变得越来越重要了。
现在的手机终端关于二维码功能的开发主要围绕的是二维码扫描,这个功能可以让用户直接扫描二维码后获得名片信息、文本内容、直接上网等等,很好的方便了用户。
那么对于二维码生成功能也就越来越被需要,此功能简单来讲也就是针对用户输入的信息生成二维码图片。
对于手机终端的二维码生成可以随时随地把用户想要生成的信息生成二维码,然后可以通过彩信发送给其他人,或者直接打印分发做宣传。
如果这两个功能可以同时放到手机上,那么对于二维码的功能就相当的完备了。
既然已经开发出了扫描二维码的功能,那么对于开发生成二维码的功能就很理所当然了,而我们当然也要与时俱进,开发对社会有意义的软件。
1.2项目开发的环境
1.2.1硬件环境
IntelCeleron2.4GHz以上处理器,1GB以上内存容量,80GB以上硬盘容量。
1.2.2软件环境
MicrosoftWindowsXP操作系统,Eclipse开发工具,AndroidSDK(Android软件开发工具包)。
1.3开发技术的介绍
1.3.1Android技术介绍
Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。
只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的JavaSDK(其中包括JRE:
JavaRuntimeEnvironment)。
此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的AndroidSDK。
同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。
简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发。
(1)JavaSDK
(2)Eclipse
(3)AndroidSDK
(4)ADT
1.3.2Android系统构架介绍
Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。
如图1.1所示,根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:
第一、操作系统层(OS);
第二、各种库(Libraries)和Android运行环境(RunTime);
第三、应用程序框架(ApplicationFramework);
第四、应用程序(Application);
图1.1系统构架图
以下分别介绍Andoid各个层次的软件的重点及其相关技术:
(1)操作系统层(OS)
Android使用Linux2.6作为操作系统,Linux2.6是一种标准的技术,Linux也是一个开放的操作系统。
Android对操作系统的使用包括核心和驱动程序两部分,Android的Linux核心为标准的Linux2.6内核,Android更多的是需要一些与移动设备相关的驱动程序。
主要的驱动如下所示:
显示驱动(DisplayDriver):
常用基于Linux的帧缓冲(FrameBuffer)驱动;
Flash内存驱动(FlashMemoryDriver);
照相机驱动(CameraDriver):
常用基于Linux的v4l(Videofor)驱动;
音频驱动(AudioDriver):
常用基于ALSA(AdvancedLinuxSoundArchitecture,
高级Linux声音体系)驱动;
WiFi驱动(CameraDriver):
基于IEEE802.11标准的驱动程序;
键盘驱动(KeyBoardDriver);
蓝牙驱动(BluetoothDriver);
BinderIPC驱动:
Andoid一个特殊的驱动程序,具有单独的设备节点,提供进程间通讯的功能;
PowerManagement(能源管理)。
(2)各种库(Libraries)和Android运行环境(RunTime)
本层次对应一般嵌入式系统,相当于中间件层次。
Android的本层次分成两个部分一个是各种库,另一个是Android运行环境。
本层的内容大多是使用C++实现的。
在其中,各种库包括:
C库:
C语言的标准库,这也是系统中一个最为底层的库,C库是通过Linux的系统调用来实现。
多媒体框架(MediaFrameword):
这部分内容是Android多媒体的核心部分,基于PacketVideo(即PV)的OpenCORE,从功能上本库一共分为两大部分,一个部分是音频、视频的回放(PlayBack),另一部分是则是音视频的纪录(Recorder)。
SGL:
2D图像引擎。
SSL:
即SecureSocketLayer位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
OpenGLES1.0:
本部分提供了对3D的支持。
界面管理工具(SurfaceManagement):
本部分提供了对管理显示子系统等功能。
SQLite:
一个通用的嵌入式数据库
WebKit:
网络浏览器的核心
FreeType:
位图和矢量字体的功能。
Android的各种库一般是以系统中间件的形式提供的,它们均有的一个显著特点就是与移动设备的平台的应用密切相关。
Android运行环境主要指的虚拟机技术——Dalvik。
Dalvik虚拟机和一般JAVA虚拟机(JavaVM)不同,它执行的不是JAVA标准的字节码(bytecode)而是Dalvik可执行格式(.dex)中执行文件。
在执行的过程中,每一个应用程序即一个进程(Linux的一个Process)。
二者最大的区别在于JavaVM是以基于栈的虚拟机(Stack-based),而Dalvik是基于寄存器的虚拟机(Register-based)。
显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。
(3)应用程序框架(ApplicationFramework)
Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。
由于上层的应用程序是以JAVA构建的,因此本层次提供的首先包含了UI程序中所需要的各种控件:
例如:
Views(视图组件)包括lists(列表),grids(栅格),textboxes(文本框),buttons(按钮)等。
甚至一个嵌入式的Web浏览器。
一个Andoid的应用程序可以利用应用程序框架中的以下几个部分:
Activity(活动);
BroadcastIntentReceiver(广播意图接收者);
Service(服务);
ContentProvider(内容提供者)。
(4)应用程序(Application);
Android的应用程序主要是用户界面(UserInterface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。
Android本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。
同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。
这也是Android开源的巨大潜力的体现。
1.3.3Eclipse简介
Eclipse是著名的跨平台的自由集成开发环境(IDE)。
最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。
Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。
许多软件开发商以Eclipse为框架开发自己的IDE。
Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。
它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——EclipsePlatform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开发平台。
它提供建造块和构造并运行集成软件开发工具的基础。
EclipsePlatform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。
EclipseSDK(软件开发者包)是EclipsePlatform、JDT和PDE所生产的组件合并,它们可以一次下载。
这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到EclipsePlatform中的工具。
EclipseSDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。
Eclipse项目生产的软件以CPL发布,第三方组件有各自自身的许可协议。
1.3.4ADT、AndroidSDK简介
目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。
AndroidSDK:
在Android中,它为开发者提供了库文件以及其它开发所用到的工具。
简单理解为开发工具包集合,是整体开发中所用到的工具包,如果你不用Eclipse作为你的开发工具,你就不需要下载ADT,只下载SDK即可开发。
第二章可行性分析
2.1编写目的
可行性研究旨在评估目标系统是否值得去开发,问题是否能够解决。
一个项目的开发需要仔细分析,看它在目前的情况下是否可行,如果一个项目开发它具有很好的背景和意义,但是在经济上或者是技术上是不可行的,那么它也只能称之为不能实现的项目。
2.2可行性研究任务
根据社会上对二维码的使用情况,以及一些二维码的生成软件进行可行性研究,主要从以下三个方面进行讨论:
2.2.1技术可行性
确定现有的技术是否能解决本该开发项目:
本项目只是对输入的字符串能够生成二维码,并且要可以保存成图片,在现今社会上已有很多国家研究出多种制码标准,我们可以直接引用函数库,按照相应的机制就可以生成二维码,只要能够成功生成二维码那么对于保存成图片的功能就很简单了,因此在技术上可行。
2.2.2经济可行性
确定开发项目的开发成本以及估算开发项目所能够产生的经济效益:
该软件可以快速的生成二维码,如果用户需要做一些宣传,即可用此软件生成的二维码,进行打印分发或者以短信的形式发送,这样可以起到很好的宣传效果;也可以以同样的方式做优惠券,这样顾客就可以直接扫描来获得优惠;或者有些人需要向对方表达情意而又不想被其他人看到,我们同样可以使用该软件,这些均可以证明该软件有很好的实用价值,因此该软件必定能给用户带来极大的方便,并且可以节约用户宝贵的时间,有很好的实用价值和发展前景,会有广大的使用用户,必定能够产生经济效益,所以本软件在经济上是可行的。
2.2.3操作可行性
确定软件产品是否能够被最终的用户所接受,用户是否能操作最终的产品:
由于本软件操作简单明了,界面非常友好,用户只需输入相应的字符串然后点击“生成二维码并保存”按钮即可生成二维码图片而且还可以保存成图片到手机的sd卡中,对于用户来说还要能够找到自己生成的图片存在哪里,只有这样他们才能用生成的图片去做一些事情,因此该软件还提供了有关图片的一些功能,如果我们想要查看保存的图片,可以点击查看图片按钮,便可以通过上一张、下一张来浏览图片,而且能够查看图片的详细信息,或者也可以根据图片名字查找图片,还包括删除当前显示的图片的功能。
本软件既可以生成二维码也可以将其保存成图片,并且可以提供给用户一些有关图片的基本操作,功能上来说比较完备,实用上来说只是对一些按钮和输入信息的操作,都是一些很简单的操作,用户自己就可以看得懂,在操作上很方便。
2.3可行性研究结论
根据以上几个方面的研究,软件在技术上是可以实现的,经济上可以带来一定的经济效益而且成本不高,操作上相对比较简单,这些均可以证明该软件是可行的,应该立即进行本项目的开发。
第三章需求分析
3.1编写目的
需求分析是在可行性研究的基础上,将用户对系统的描述,通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程。
需求分析旨在回答"系统做什么"的问题,确保将来开发出来的软件设备能够真正满足用户的需要。
3.2功能需求分析
本软件主要实现对输入的字符串生成二维码,但是仅仅只是生成二维码的话,那么用户除了能够看到生成的二维码并不能用此二维码做什么,因此该软件至少还需要有保存功能,即把生成的二维码保存成图片,这样用户才可以用生成的二维码完成一些简单的功能,然后马上就会引出另一个问题那就是用户该到哪里去找到保存后的图片呢?
针对这个问题让我思考到要给该软件增加一些对图片的操作,当用户把生成的二维码保存成图片后,那么至少可以让用户进入图片管理的操作界面,这些可以借鉴android自带的图库软件的功能。
通过以上的分析该软件最少应该具备的功能有:
(1)对输入的字符串生成二维码;
(2)能够把生成的二维码显示出来并可以保存成图片;
(3)可以上下键查找到图片,或者通过输入图片的名字进行查找;
可以查看图片的详细信息,对于上下键查找图片来说必须要通过查看图片的详细信息才能够确定是否为用户要找的图片,因为对于用户来说很难看出每一张的区别那么用户就只能根据图片名字来知道此图片是否为自己要找的图片。
同时图片的存储路径也很重要,用户需要知道图片存储位置,这样用户才能够进入文件夹找到图片;
(4)删除当前显示的图片;
3.3数据流图(DFD)
数据流图(DFD)是结构化分析方法中用于系统逻辑模型的一种工具,以图形方式描绘数据在系统中流动和处理过程。
3.3.1顶层数据流图
顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据、输出数据流。
顶层图的作用在于表明被开发系统的范围以及它和