Android课程设计论文.doc
《Android课程设计论文.doc》由会员分享,可在线阅读,更多相关《Android课程设计论文.doc(11页珍藏版)》请在咨信网上搜索。
湖北民族学院2015年秋季考查课试卷 A或B A 卷 课 程 移动互联网开发 使用班级 0313401-04 制卷份数 姓名 彭佳豪 命题人 张华 试卷审核人 单位审核人 答题纸数 班级 0313403 题 号 一 二 三 四 五 六 七 八 九 十 合计 学号 031340308 评 分 分数 阅卷人 考查形式为论文撰写,要求如下: 一、 内容: 以一个实际Android系统为核心,从系统产生背景、问题提出、问题分析、系统分析、系统设计、系统实现等方面进行阐述。 二、 具体要求: 1、题名要求简明扼要,能反映论文主题;摘要必须说明研究目的、方法、结果、结论,字数200字左右为宜,忌与引言及结论中的内容雷同; 2、 字数3000~5000 字 3、 论文参考架构 (请注意各级内容的字体格式,以示区分) 论文标题 (三号黑体) 班级、学号、姓名 (五号宋) 摘 要(五号黑): 内容(五号宋) 关键字(五号黑): 内容(五号宋) 1 引言 2 系统设计 (小三黑) 2.1 设计原则 (四号黑) 正文(五号宋) 2.2 功能模块划分 3 系统实现 3.1 实现技术 3.2 具体实现 3.3 性能优化(如果有的话) 4 结束语 基于android平台的二维码识别软件的设计与实现 目录 1.绪论 2 1.1 研究背景以及意义 2 1.2 Android平台特点 2 1.3 Eclipse简介 3 1.4 Android SDK简介 3 1.5 ADT简介 3 2软件设计 3 2.1 系统概要设计 3 2.2 系统功能模块 4 2.2.1 系统总体功能模块 4 2.2.2 拍照解码功能模块 5 2.3 系统流程图 5 2.3.2 界面设计 6 3 软件实现 6 3.1 代码编写 6 3.2 主界面Activity布局 7 3.3 Activity组件的编写 8 3.4 验证程序读取的二维码信息 10 总结与展望 12 1 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年首次推出。大家可以在其官方网站http://www.eclipse.org免费下载该软件的打包文件,释放到文件夹即可使用。 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确定的: <AbsoluteLayout Android:layout_width="wrap_content" Android:layout_height="wrap_content" > <TextView Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:layout_x="80dp" Android:layout_y="410dp" Android:textColor="#000000" Android:text="扫描:"/> <TextView Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:layout_x="125dp" Android:layout_y="385dp" Android:textColor="#000000" Android:text="一维EAN码"/> <TextView Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:layout_x="125dp" Android:layout_y="400dp" Android:textColor="#000000" Android:text="二维QR码"/> <TextView Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:layout_x="125dp" Android:layout_y="415dp" Android:textColor="#000000" Android:text="二维WEPC码"/> <TextView Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:layout_x="125dp" Android:layout_y="430dp" Android:textColor="#000000" Android:text="快递单"/> <TextView Android:id="@+id/textview" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:layout_x="0dp" Android:layout_y="0dp" Android:textColor="#000000" /> </AbsoluteLayout> 3.3 Activity组件的编写 相机预览,用于开启手机照相机。我们用一个按钮实现该功能,添加一个按钮并且设置并绑定监听器。在监听器里面我用一个Camera.PreviewCallback()函数实现,函数调用相机的OPEN方法即可实现预览功能同时将变量bIfPreview设置为true。当然我们要取得二维码,因此我们要不活图片,我们需要设置图片的格式和一些参数。 private Camera.PreviewCallback previewcallback = new Camera.PreviewCallback() { public void onPreviewFrame(byte[] data, Camera arg1) { // 取得指定范围的帧的数据 Log.e("tag", "previewcallback"); PlanarYUVLuminanceSource source = new PlanarYUVLuminanceSource( data, 800, 480, dsLeft, dstop, dswidth, dsheight); mbitmap = source.renderCroppedGreyscaleBitmap(); // 显示灰度图 Matrix matrix = new Matrix(); matrix.setRotate(90); mbitmap = Bitmap.createBitmap(mbitmap, 0, 0, 400, 350, matrix, true); 通过google提供的二维码识别方法getText()得到二维码所包含的的字符串信息储存在字符串strQR2中,如果二维码信息隐藏的是以“http://”开头的网址,那么手机便调用浏览器浏览该网站;如果二维码信息隐藏的是以“wait://”开头的电话号码,那么手机直接调用拨打电话功能;如果二维码信息隐藏的是以“TEL:”开头的电话号码,那么手机直接调用拨打电话功能;若仅是普通文字,则将文本显示出来即可。 try { Result result = reader.decode(bitmap); String strQR2= result.getText(); String strResult = "BarcodeFormat:" + result.getBarcodeFormat().toString() + " text:" + result.getText(); if (strQR2 != "") { if (URLUtil.isNetworkUrl(strQR2)) { /* 如果二维码信息隐藏的是以“http://”开头的网址,那么手机便调用浏览器浏览该网站 */ mMakeTextToast(strQR2, true); Uri mUri = Uri.parse(strQR2); Intent intent = new Intent(Intent.ACTION_VIEW, mUri); startActivity(intent); } else if (eregi("wtai://", strQR2)) { /* 如果二维码信息隐藏的是以“wait://”开头的电话号码,那么手机直接调用拨打电话功能 */ String[] aryTemp01 = strQR2.split("wtai://"); Intent myIntentDial = new Intent( "Android.intent.action.DIAL", Uri.parse("tel:" + aryTemp01[1])); startActivity(myIntentDial); } else if (eregi("TEL:", strQR2)) { /* 如果二维码信息隐藏的是以“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手机应用程序也是花样翻新层出不穷。通过这次毕业设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。Android二维码的扫描识别系统设计的基本目的,在于通过理论与实际的结合进一步提高思想觉悟,将以前学习的知识串联起来并进一步巩固。 在本次毕业设计的Android软件开发过程中,也学习到了很多软件工程领域的规范化的开发方法、建模方法、同时也锻炼了自己查找资料和文档撰写的能力。在需求分析阶段,我根据所学软件工程理论知识,特别是需求分析、总体设计、详细设计部分的知识,和其中的分析和建模的方法,设计了需要实现的基本功能。提出本项目所要实现的目标,系统性能、安全性、可靠性方面的要求等。在系统设计阶段,我们又仔细复习教材中关于概要设计中应用的相关方法、应注意的几个问题和概要设计阶段的目标,在需求分析的基础上有提出了更具体的可行性分析和实现方案。 通过这次毕业设计使自己对知识的运用能力得到提升;而且还锻炼了我的自学能力;更重要的是培养了观察、分析和解决问题的实际工作能力,对以后的工作将会起到 请不要在框外答卷,第 11 页 共 11 页- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 课程设计 论文
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【pc****0】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【pc****0】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【pc****0】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【pc****0】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文