基于Android平台条码识别技术的图书查询系统设计与实现.docx

上传人:b****7 文档编号:16234052 上传时间:2023-07-12 格式:DOCX 页数:56 大小:1.05MB
下载 相关 举报
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第1页
第1页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第2页
第2页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第3页
第3页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第4页
第4页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第5页
第5页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第6页
第6页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第7页
第7页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第8页
第8页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第9页
第9页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第10页
第10页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第11页
第11页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第12页
第12页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第13页
第13页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第14页
第14页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第15页
第15页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第16页
第16页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第17页
第17页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第18页
第18页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第19页
第19页 / 共56页
基于Android平台条码识别技术的图书查询系统设计与实现.docx_第20页
第20页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Android平台条码识别技术的图书查询系统设计与实现.docx

《基于Android平台条码识别技术的图书查询系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Android平台条码识别技术的图书查询系统设计与实现.docx(56页珍藏版)》请在冰点文库上搜索。

基于Android平台条码识别技术的图书查询系统设计与实现.docx

基于Android平台条码识别技术的图书查询系统设计与实现

摘要

随着智能手机一步步走进普通人的生活,它已成为人们获取信息的主要设备,因此手机的应用服务将会有很大的发展空间,条形码搜索应用就是其中一项。

Android操作系统是近几年较为流行的手机操作系统,它具有良好的开放性和平台的快捷性等特点,采用Android操作系统的手机越来越受到人们的青睐。

商品条形码的编码遵循唯一性原则,以保证商品条形码在全世界范围内不重复,即一个商品项目只能有一个代码,或者说一个代码只能标识一种商品项目。

系统客户端采用运用了Android的API以及Google提供的开源组件Zxing,实现对图书条码的拍照及识别功能。

服务器采用Java和Servlet技术,根据客户端所识别的图书条码,利用Html解析技术实现图书信息的网络采集功能。

系统通过Http协议实现了手机客户端与服务器间通信。

本论文详细的提出了系统的架构,分析了系统在实际应用和技术上的可行性,概述了系统实现的具体过程。

在论文的第五、六章详细的介绍了客户端和服务器实现的具体方案和关键技术,最后对系统进行了测试。

经测试,本系统界面友好,功能完善,操作简单,具有一定的应用价值。

关键词:

智能手机,Android,条形码

Abstract

AssmartphonebecomesanimportantdeviceforpeopletogetinformationintheInternet,theapplicationforsmartphoneswillhaveverybigdevelopmentspace,andthesearchservicebasedonbar-codeisoneoftheseapplications.Androidisapopularmobilephoneoperatingsystemappearedinthelastfewyears,duetoitsgoodcharactersuchasopennessandpromptness,Androidisacceptedbymoreandmorepeople.Bar-codeofcommoditycanensureuniquenessworldwide,namelyacommoditycanonlyhaveonebar-code,orabar-codecanonlybeappointedtoonecommodity.

ThisclientofsystemisbasedonAndroidtechnology,byusingtheAndroidAPIandopensourcecomponentsZxingof,theusercantakethebar-codepictureofabookandidentifythebar-codebyasmartphone.JavaandServlettechnologyareadoptedintheserver,byusingHtmlparsingtechnology,theservercansearchtheinformationofthebookaccordingtothebar-codegivenbytheclient.Thecommunicationbetweenclientandserverisrealizedby.Httpprotocol.

Thisthesisproposedthedetailsofthesystemarchitecture,analyzedthesystemintheactualapplicationandtechnicalfeasibility,summarizestheconcreteprocessofsystemimplementation..Inthethesisofthefifth,sixthchapterintroducestheclientandserverdetailsrealizeconcreteplanandkeytechnology,intheend,systemwastested.Bytest,thissystemhasfriendlyinterface,perfectfunction,simpleoperation,andhasacertainpracticalvalue.

Keywords:

smartphone,android,bar-code

第一章绪论

1.1课题研究的背景及意义

随着移动通信技术的发展,在3G技术的背景下,使得智能手机成为拥有更快的传输速率,更强大使用功能的网络终端,更炫的操作界面,并且成为现阶段手机发展的一个热点。

智能手机较之传统手机之所以有如此强大的功能,在于其安装了操作系统[1]。

智能手机上的操作系统功能类似于普通的pc机,能对自身的软硬件进行管理,易于拓展,使得智能手机不再仅仅是通讯网络的终端,还将成为移动互联网的终端,智能手机的发展还推动了手机操作系统的发展。

目前智能手机上的主流操作系统主要有SymbianOS,WindowsCE,MacOSX以及后起之秀Android等。

智能手机正一步步的走进普通人的生活,这意味着智能手机将会成为人们获取信息的主要设备。

因此,手机的应用服务将会有很大的发展空间,本课题主要研究的是基于Android平台下的条形码识别与图书搜索。

Android操作系统是Google于2007年11月发布,它是基于Linux的开源操作系统平台,开放性好,功能扩展性强,硬件选择丰富,并且能无缝隙的使用Google的应用[2]。

用户使用手机进行普通搜索时,如果在输入过程中关键字表述不清或商品名称不准确,搜索引擎会自动采用模糊搜索,导致搜索结果异常或出错等一系列不符合用户需求的情况。

条形码与条形码识别技术的出现可以很好的解决用户检索中出现的问题。

条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。

常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。

条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到了广泛的应用。

条形码具有唯一性,即同种规格同种产品对应同一个产品代码,同种产品不同规格应对应不同的产品代码。

根据产品的不同性质,如:

重量、包装、规格、气味、颜色、形状等等,赋予不同的商品代码。

除此之外条形码还有永久性,即产品代码一经分配,就不再更改,并且是终身的,当此种产品不再生产时,其对应的产品代码只能搁置起来,不得重复起用再分配给其它的商品。

商品条形码的诞生极大地方便了商品流通,现代社会已离不开商品条形码,据统计目前我国已有50万种产品使用了国际通用的商品条形码。

我国加人世贸组织后,企业在国际舞台上必将赢得更多的活动空间,要与国际惯例接轨,适应国际经贸的需要,企业更不能慢待商品条形码。

因此开发一个基于Android平台下的条形码识别与图书搜索系统是势在必行的。

它能精确地检索,方便快捷,具有较强的应用价值。

1.2国内外应用现状分析

Google于2007年11月5日宣布开发出基于Linux平台的开源手机操作系统Android,该平台由操作系统、中间件、用户界面和应用软件组成,而且号称Android是首个为移动终端打造的真正开放和完整的移动软件。

它的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型,这些都由一个任务管理器来控制,既方便又很实用。

在我国,Android的应用前景是十分广阔的。

首先是其具有广大的消费群体,很多追求时尚的消费者都通过各自的渠道开始使用Android手机,Android系统以其强大功能征服了一批又一批的消费者。

同时国内的关于Android的社区也十分红火,这些社区为Android在中国的普及做了很好的推广作用。

其次国内的厂商和运营商业纷纷加入Android阵营,包括OPPO,中国移动,中国联通,华为通讯,联想等大企业。

华为Pulse,联想乐Phone,中国移动的Ophone,中国联通的Uphone,以及中国电信等企业的悄然跟进,国内的一些大型企业全都致力于Android系统的研发。

由于中国巨大的市场潜力诱因与中国营运商们的强力支持,Android平台已经得到中国手机产业链的广泛关注和支持。

中国的Android手机正处在高速发展阶段。

Android将成为中国智能手机的重要发展方向。

我们可以预见Android也将会被广泛应用在国产智能上网设备上,将进一步扩大Android系统的应用范围。

在国外,2010年l月5日,Google正式发布首款自有品牌手机NexusOne,该机采用Androld2.1操作系统,全球第三大手机制造商LG电子也发布声明,在今年20部新手机的研发计划中,将有超过半数采用GoogleAndroid手机操作系统,进一步减少WindowsMobile的比重。

Acer亦做出类似的声明。

目前,三星、LG、京瓷和索爱等原本使用WindowsMobile系统来运行其尖端智能手机的厂商都己开始生产Android手机,摩托罗拉则在2010年已完全舍弃了WindowsMobile并转向Android。

随着3G在世界上特别在我国的不断发展,Android在网络方面的特殊优势将会使其在全世界有美好的未来[3]。

1.3系统设计的目标

系统设计的目标是为广大的校师生提供一个平台,借助Android手机平台,可以根据条形码快速的检索出自己的需求的图书信息(当当网、淘宝网),然后根据获取的图书信息查询图书馆该图书的在馆信息,可根据自我的需求决定是否去图书馆借阅或者去手机淘宝网购买,同时在查询返回的结果页面中提供了一个登陆界面,输入读者证号和密码,即可查阅校图书馆的借阅信息。

整个系统达到下面的要求:

(1)界面友好

本系统界面简单、大方,功能较完善,使用方法一目了然,易于用户操作。

(2)功能全面

本系统提供了条形码搜索、图片搜索和语音搜索,用于可以随意选择更加方便的途径获取信息。

(3)操作简单

手机客户端用户打开软件之后可直接根据主界面的提示进行操作,同时主菜单中增加了一个“提示”按钮,用户可以通过单击此按钮之后获取更加详细的操作帮助。

第二章课题相关技术

2.1Android手机操作系统概述

Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由原名为“Android”的公司开发,Google在2005年进行收购“Android.Inc”。

Google继续进行对Android系统开发运营,它采用了软件堆层(softwarestack,又名软件叠层)的架构,主要分为三部分,底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。

2011年初数据显示,仅正式推出三年的操作系统Android已经超越称霸十年的塞班系统,采用Android系统主要厂商包括美国摩托罗拉(MOTOROLA)、韩国的三星(SAMSUNG)、英国索尼爱立信(SonyEricsson),另外还有中国厂商如:

中国台湾HTC、联想、华为、中兴等,使之跃居全球最受欢迎的智能手机平台,Android系统不但应用于智能手机,也在平板电脑市场急速扩张[3]。

2.1.1Android的主要特点

Android平台是全球的第一个完整的完全开放的手机平台,其所有的核心功能都是可以通过标准的接口,为应用提供标准的接口可以调用。

所以,Android的开发者使用Android应用程序可以调用标准接口来启动任何一个功能。

Android整个平台都是开源的。

从最底层的内核到上层的核心的Runtime和最核心的服务每个环节都是开源的,所有的开发文档和开发环境都是能在网上下载的,开发环境包含设备模拟器、工具、调试器、内存和性能分析工具,以及Eclipse集成开发环境插件,这跟所有Google的产品一样,整个开发系统和平台都是免费的。

所以开发者能够按照自己所爱在Android上裁剪和添加功能并且能为其开源节省成本,让更多人能享受到价位更加合理功能更加强大的智能手机。

Android是完全平等的平台。

对于所有的第三方应用软件,甚至是功能组件都完全平等,开发人员可以更换手机的主屏幕、核心应用软件,如条形码识别,手机拍照拍照,语音搜索等其他开源代码的组件。

所有的组件都是独立的,而且可以完全自由的兑换。

Android可以将整个手机和互联网都是无缝结合的。

Android上的数据,如语音搜索的数据,都是跟Google的云计算服务器绑定的,手机和服务器通过网络互连,如手机端输入语音内容,就可以同时搜索出互联网和手机里的搜索结果[3]。

2.1.2Android的整体架构分析

Android平台是一组面向移动设备的软件包,它的系统架构和其操作系统一样,采用了分层的架构。

从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层。

如图2-1即为Android的整体架构图[5]:

图2-1Android整体架构

(1)应用层

Android会将同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。

所有的应用程序都是使用JAVA语言编写的。

(2)应用程序框架

开发人员也可以完全访问核心应用程序所使用的API框架。

该应用程序的架构设计简化了组件的重用,任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(必须遵循框架的安全性限制)。

同样,该应用程序重用机制也使用户可以方便的替换程序组件。

(3)系统运行库

(a)程序库

Android包含一些C/C++库,这些库能被Android系统中不同的组件使用,它们通过Android应用程序框架为开发者提供服务。

(b)Android运行库

Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。

每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。

Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。

Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。

同时虚拟机是基于寄存器的,所有的类都由JAVA编译器编译,然后通过SDK中的“dx”工具转化成.dex格式由虚拟机执行。

Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。

(4)Linux内核

Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。

Linux内核也同时作为硬件和软件栈之间的抽象层。

2.1.3Android的功能

(1)应用程序架构:

已提供多种不同的基础软件元素,为开发其它程序提供方便,节省时间精力。

(2)DALVIK虚拟机:

Google专为手机而开发的节省资料,高效率的多任力的虚拟机,运行手机程序。

(3)Android浏览器:

是Google以WEBKIT的浏览引擎为基础开发的,局部缩放,触摸屏。

(4)Android绘图:

支持2D(SGL),3D(OPENGLES)绘图函数库。

(5)SQLITE数据库:

是一种开放性的源代码关系数据库。

(6)多媒体支持:

支持多种不同的媒体格式。

(7)GSM驱动模块:

Android专门提供了GSM驱动模块。

(8)提供了无线网络:

BLUETOOTH,EDGE,3G,WI-FI。

(9)相机,GPS,电子指南针,加速感觉器功能。

(10)AndroidSDK提供了完善的程序开发环境:

模拟器emulator,调查试工具debugbridge,程序所用内存,性能方面的评估功能。

2.2Servlet

Servlet是一种服务器的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。

它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。

Servlet是位于Web服务器内部的服务器的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

2.2.1Servlet生命周期

Servlet的生命周期定义了一个Servlet如何被加载、初始化,以及它怎样接收请求、响应请求、提供服务。

Servlet的生命周期如图2-2所示:

图2-2Servlet的生命周期

(1)Servlet的初始化init方法被调用,其格式为:

publicvoidinit(ServletConfigconfig)throwsServletException

{

super.init();

}

(2)Servlet的执行

Service方法可以用于实现事务逻辑,是处理请求的地方。

在服务器装载初始化Servlet后,Servlet就能够处理客户端的请求,可以用service方法来实现,并且每个客户端请求有它自己service方法。

这些方法接收客户端请求,并且发回相应的响应,Servlet能同时运行多个service。

这样,service方法可以按一个thread-safe样式编写。

如service方法更新Servlet对象中的一个字段field,这个字段是可以同时存取的。

假如某个服务器不能同时并发运行service方法,也可以用SingleThreadModel接口,这个接口保证不会有两个以上的线程(threads)并发运行。

在Servlet执行期间最多的应用是处理客户端的请求并产生一个网页[4]。

(3)Servlet的结束

当服务器卸载一个Servlet,它将调用Servlet的destroy方法。

这个destroy方法是与初始化方法相反,同时从内存中释放Servlet。

Destroy的格式为:

publicvoiddestroy()

{

……

}

用户调用destroy实际上不会卸载Servlet,只有Servlet引擎才可以实现此功能。

2.2.2Servlet的优点

(1)功能强大。

在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。

Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。

(2)执行效率高。

在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。

而在Servlet中,每个请求由一个次要的Java线程处理,不需要反复启动,这也叫“一次加载多次使用”。

在传统CGI中,如果有N个并发的进程对同一CGI程序发出请求,则该CGI程序的代码在内存中重复装载了N次,而对于Servlet,处理请求的是N个线程,只需加载一次Servlet类代码。

从而可以提高处理速度。

(3)开发难度低。

相对于传统的CGI,Servlet有很多例程,可以完成许多功能,如网络缓存、Cookies、还有会话跟踪,自动读取Http表头等功能。

开发者在这些功能完备的例程的基础上,轻松地开发功能复杂的Web应用程序。

(4)可移植性好。

Servlet是使用Java编写的,所以很好地继承了Java的跨平台性特点。

由于ServletAPI的规范很完备,所以几乎所有的主流Web服务器,如ApacheTomcat、MicrosoftIIS或者WebStar等,都直接或者通过插件支持Servlet。

(5)性能更强。

Servlet比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动等等

2.2.3Servlet配置

Servlet使用Tomcat6.0的安装路径下根目录webapps\ROOT\WEB-INF这个目录下面的web.xml文件进行注册,打开这个web.xml文件,以使用HelloWorld.java文件,在里面加入:

HelloWorld

HelloWorld

--表示指定包含的servlet类-->

HelloWorld

/servlet/HelloWorld

--指定HelloWorld应当映射到哪一种URL模式-->

2.3HTML解析

Html解析采用的是htmlparser。

htmlparser是一个纯的java写的html解析的库,它不依赖于其它的java库文件,主要用于改造或提取html。

它能超高速解析html,而且不会出错。

2.3.1HTMLPARSER的核心内容

(1)org.htmlparser

定义了htmlparser的一些基础类。

其中最为重要的是Parser类。

Parser是htmlparser的最核心的类,其构造函数提供了如下:

Parser.createParser(Stringhtml,Stringcharset)、Parser()、Parser(Lexerlexer,ParserFeedbackfb)、Parser(URLConnectionconnection,ParserFeedbackfb)、Parser(Stringresource,ParserFeedbackfeedback)、Parser(Stringresource)。

(2)rg.htmlparser.beans

对Visitor和Filter的方法进行了封装,定义了针对一些常用html元素操作的bean,简化对常用元素的提取操作。

包括:

FilterBean、HTMLLinkBean、HTMLTextBean、LinkBean、StringBean、BeanyBaby等。

(3)org.htmlparser.nodes

定义了基础的node,包括:

AbstractNode、RemarkNode、TagNode、TextNode等。

(4)org.htmlparser.tags

定义了htmlparser的各种tag。

(5)org.htmlparser.filters

定义了htmlparser所提供的各种filter,主要通过extractAllNodesThatMatch(NodeFilterfilter)来对html页面指定类型的元素进行过滤,包括:

AndFilter、CssSe

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2