当前位置:文档之家› Android课程设计论文

Android课程设计论文

基于android平台的二维码识别软件的设计与实现目录1.绪论 (3)1.1研究背景以及意义 (3)1.2 Android平台特点 (3)1.3 Eclipse简介 (3)1.4 Android SDK简介 (3)1.5 ADT简介 (4)2软件设计 (4)2.1 系统概要设计 (4)2.2 系统功能模块 (4)2.2.1 系统总体功能模块 (4)2.2.2 拍照解码功能模块 (5)2.3 系统流程图 (5)2.3.2 界面设计 (5)3 软件实现 (6)3.1 代码编写 (6)3.2 主界面Activity布局 (6)3.3 Activity组件的编写 (8)3.4 验证程序读取的二维码信息 (9)总结与展望 (11)1.绪论1.1研究背景以及意义随着科学技术的发展,物联网已成为当今信息技术当中一门炙手可热的话题。

物联网是指通过各种信息传感设备实时采集各种需要的信息并与互联网结合形成的一个大型网络。

物联网的目的在于实现物与物、物与人以及所有的物品与网络的连接,以方便识别、管理和控制。

物联网由感知层、网络层和应用层三层组成。

感知层由各种传感器以及传感器网关构成,其作用在于识别物体和采集信息。

条形码技术是集条码理论、光电技术、计算机技术、通信技术等技术于一体的综合性技术。

它具有输入速度快、可靠性高、采集信息量大、成本低等特点,近年来发展十分迅速,在国际上广泛应用于商品流通、物流仓储、信息服务等各个领域,极大地提高了生产效率。

从寻呼机到目前3G手机的面市,中国人已经习惯了手中的移动手机不停地更新变化。

也正是由于这些现实因素,本课题以理论为基础,方便人们生活,提高工作效率为目的而选择本课题。

1.2 Android平台特点Android是一个专门针对移动设备的软件集,它包括一个底层Linux操作系统,中间层的中间件和上层的java 应用程序。

Android平台的开发特点如下:(1)应用程序框架支持组件的重用与替换。

这在之前的手机操作系统当中是很难想象的。

这意味着我们可以把系统中不喜欢的应用程序替换掉,安装我们喜欢的应用程序。

(2)Dalvik虚拟机专门为移动设备做了优化。

Android应用程序将由java编写、编译的类文件通过DX工具转换成一种后缀名为.dex 的文件来执行。

Dalvik虚拟机是基于寄存器的,相对于java虚拟机要快很多。

(3)内部集成浏览器基于开源的WebKit引擎。

有了内置的浏览器,这将意味着WAP应用的时代即将结束,真正的移动互联网时代已经来临,手(4)优化了图形库包括2D和3D图形库,3D图形库基于OpenGL ES1.0。

机就是一台“小电脑”,可以在网上随意遨游。

强大的图形库给游戏开发带来福音。

(5)SQList用作结构化的数据存储。

(6)多媒体支持包括常用的音频、视频和静态印象文件格式(如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)。

(7)GSM电话(8)蓝牙,EDGE,3G,WIFI。

(9)照相机,GPS,指南针和加速计。

(10)丰富的开发环境包括设备模拟器、调试工具,内存及性能分析图表和Eclipse集成开发环境插件。

1.3 Eclipse简介Eclipse是一个综合开发环境(Integrated Development Environment)IDE,它是一个功能完整且成熟的软件,由IBM公司于2001年首次推出。

大家可以在其官方网站免费下载该软件的打包文件,释放到文件夹即可使用。

Eclipse是一个开放源代码、基于Java的可扩展开发平台。

开放源代码的意思是让使用者能够取得软件的原始码,部分地有权去修改和传播这个软件。

有人非常形象地将Eclipse比喻成软件开发者的“打铁铺”,它一开始备有火炉、铁砧与铁锤。

就像铁匠会用现有的工具打造新的工具一样,程序员也能用Eclipse打造新工具来开发软件———这些新工具可扩充Eclipse的功能。

1.4 Android SDK简介Android SDK(software development kit,SDK) Tool软件开发工具包。

被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合,是Android专属的软件开发工具包。

1.5 ADT简介目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。

2软件设计2.1 系统概要设计概要设计的主要任务是设计软件结构和数据结构。

设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。

数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。

显然,概要设计建立的是目标系统的逻辑模型,与计算机无关。

总体设计包括系统模块结构设计和计算机物理系统的配置方案设计。

Android二维码扫描识别系统需要调用我们Android手机的照相机,通过onPictureTaken函数二维码图片处理成位图,而且将位图在imageview中显示出来,然后再对位图进行译码,按照QRCODE二维码生成的方式解码成字符型,QRCODE遵循OMIA规范,如果二维码隐藏信息是一个网址那么调用浏览器访问该网站,如果二维码隐藏的信息是一个电话号码,那么调用手机拨打电话功能,如果该二维码隐藏的信息是普通的文本信息,那么显示出文本信息即可,若不是QRCODE二维码不做任何操作。

2.2 系统功能模块系统总体功能有以下几个方面:(1)相机预览功能;(2)关闭相机功能;(3)拍照解码:1)调用浏览器:如果二维码信息隐藏的是以“http://”开头的网址,那么手机便调用默认浏览器浏览该网址。

2)调用拨打电话功能:如果二维码信息隐藏的事以“TEL:”或者是“wtai:”开头的电话号码,那么手机直接调用拨打电话功能。

3)显示文本信息:如果二维码信息只是包含一些文本信息,那么直接显示。

2.2.1 系统总体功能模块通过上面的对系统的总体功能模块的分析,便可以得出系统总体功能模块图。

系统总体功能模块图如图4.1所示。

图4.1 系统总体功能模块图2.2.2 拍照解码功能模块在整个系统模块中最重要的模块是拍照解码功能,因此把这个模块单独分析,将它的功能进行分析如图4.2所示。

图4.2 拍照解码功能模块图2.3 系统流程图系统流程图(System Flowchart)是描绘系统物理模型的传统工具。

它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达信息在各个部件之间流动的情况。

本系统流程图如图4.3所示。

图4.3 系统流程图2.3.2 界面设计界面设计是人与机器之间传递和交换信息的媒介,一个好的界面是很重要的。

它主要是站在用户角度考虑,因此此系统功能整体上可以分为三个部分。

第一部分是相机预览显示部分,这部分用一个surfaceview来实现;第二部分是整个系统操作部分,分为两个按钮,第一个按钮为重扫,第二个按钮为关闭;第三部分是显示拍照截取的二维码图片,在这儿我们用imageview视图来显示。

3 软件实现3.1 代码编写在已经搭建好的Android应用程序开发平台:Java JDK SE+Eclipse+GoogleAndroid SDK+ADT中建立Android应用程序程序项目,如图5.1所示。

图5.1 建立Android应用程序项目3.2 主界面Activity布局在整个界面的背景,用Surface 整个底层界面用来显示照相机拍摄到的图像。

在界面的顶部放置TextView用来存放解码后显示的信息。

在界面的中间部分,FrontView 用来把显示到的图像周围都涂成半透明的白色,中间的空白区域用来扫描二维码,ImageView 用来显示扫描二维码成功后截取到的图像。

在操作界面的地步,TextView 用来简单介绍本软件可以扫描的范围,Button 用来关闭软件和重新扫描。

主界面的Activity的布局是由layout下的main.xml确定的:3.3 Activity组件的编写相机预览,用于开启手机照相机。

我们用一个按钮实现该功能,添加一个按钮并且设置并绑定监听器。

在监听器里面我用一个Camera.PreviewCallback()函数实现,函数调用相机的OPEN方法即可实现预览功能同时将变量bIfPreview设置为true。

当然我们要取得二维码,因此我们要不活图片,我们需要设置图片的格式和一些参数。

strQR2中,如果二维码信息隐藏的是以“http://”开头的网址,那么手机便调用浏览器浏览该网站;如果二维码信息隐藏的是以“wait://”开头的电话号码,那么手机直接调用拨打电话功能;如果二维码信息隐藏的是以“TEL:”开头的电话号码,那么手机直接调用拨打电话功能;若仅是普通文字,则将文本显示出来即可。

String[] aryTemp01 = strQR2.split("TEL:");Intent myIntentDial = new Intent("Android.intent.action.DIAL", Uri.parse("tel:"+ aryTemp01[1]));startActivity(myIntentDial);} else {/* 若仅是普通文字,则将文本显示出来即可*/mMakeTextToast(strQR2, true);}}3.4 验证程序读取的二维码信息测试是为了发现程序中的错误而执行程序的过程,测试的目的就是在软件投入生产运行之前,尽可能的发现软件中的错误并能及时改正。

当我们把整个项目的完成之后,将其SurfaceViewTest.apk文件拷贝到手机上, 在Android手机上进行安装,能够成功安装软件。

为了确定二维码的解析是否正确,通过在线二维码生成器生成包含特定信息的二维码对程序的识别准确率进行测试。

(1)当二维码中包含特定网址信息时,用Android手机对准二维码扫描成功后就会自动调用浏览器,访问特定网址信息,如图3.3所示;图3.3 网址信息扫描识别成功(2)当二维码中包含特定电话号码信息时,用Android手机对准二维码扫描成功后会自动调用系统拨号程序,并自动完成特定电话号码输入,如图3.4所示;图3.4 电话号码扫描识别成功总结与展望在互联网和移动通信不断发展的今天,以手机为代表的移动终端技术及产品得到了极大的推广,Android手机应用程序也是花样翻新层出不穷。

相关主题