基于Android的图书馆服务系统设计与实现.docx
《基于Android的图书馆服务系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Android的图书馆服务系统设计与实现.docx(37页珍藏版)》请在冰豆网上搜索。
![基于Android的图书馆服务系统设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-7/13/ef842016-9849-4f57-a593-5fdd4cefb99f/ef842016-9849-4f57-a593-5fdd4cefb99f1.gif)
基于Android的图书馆服务系统设计与实现
毕业设计(论文)
题目:
基于Android的图书馆服务系统设计与实现
摘要
针对现有图书馆手机服务系统的开发和使用成本高昂、移动数据流量消耗大、响应速度慢,不适应移动互联网时代的现象。
本文开发了一个基于Android平台的图书馆移动智能终端系统。
该系统利用HTTP通信、条码扫描、Oracle及MySQL数据库等技术进行开发,为读者提供基于OPAC检索的书籍资源检索功能,方便读者快速简单的使用图书馆服务,实现了传统图书馆服务的移动化和智能化。
在关联化、云端化和社交化的移动互联网服务趋势下,这款集资源、社交等为一体的该APP将为用户提供更加便捷,高效的服务。
关键词:
Android;图书馆;移动互联网
Abstract
Developmentanduseofcellphoneservicecostsforexistinglibrarysystem'shigh,mobiledatatrafficconsumption,slowresponse,suitedtothephenomenonofthemobileInternetera.ThispaperdevelopsalibrarybasedonAndroidplatformformobileintelligentterminalsystem.ThesystemusesHTTPcommunications,barcodescanning,OracleandMySQLdatabasetechnologyfordevelopment,toprovidereaderswithquickandeasytouselibraryservicesresourcesbasedOPACsearchfunctiontoretrievethebooks,allowreaderstorealizethemobileandtraditionallibraryservicesintelligent.Inassociationbased,cloudandsocialtrendsofmobileInternetservices,thissetofresources,andsocial,asoneoftheAPPwillprovideuserswithmoreconvenientandefficientservices.
Keywords:
Android;Library;MobileInternet
第1章绪论
1.1研究背景
移动互联网的飞速发展,各行各业都与之靠拢,传统的服务行业都在这次浪潮中改革,新型的智能化服务被移动互联网所覆盖。
移动通信技术的发展为高速网上浏览提供了基础,为电子文献技术的传播与共享提供了保障,而且图书馆信息的服务在移动信息技术的发展下也向移动图书馆服务系统的转变,移动图书馆服务系统是图书馆一个新的改革的方向,也是图书馆的未来给予读者服务、吸引读者的方向。
同时,移动图书馆这门新兴服务的发展给高校图书馆传统服务带来冲击,高校图书馆的工作面临着新的机遇和挑战。
当智能手机上网成为一大主流的时候,移动图书馆服务将成为图书馆另一个重要的服务方式[1]。
在传统行业纷纷转向提供移动互联网服务的趋势下,图书馆需要一款移动智能终端系统,集资源、社交等为一体的APP来为用户提供更加便捷,高效的服务。
同时也推广自己提高话语权,读者在移动终端(包括平板电脑、手机、电子书阅读器等)安装APP应用后,可以快速随时方便的享受图书馆提供的传统服务,这样提高了读者的效率,也增加了图书馆的用户。
1.2移动图书馆的发展优势与分析
伴随着智能设备的普及,图书馆提供的传统服务已经不能满足读者日益增长的各种需求,例如阅读的社交性、实时性等,图书馆需要进行服务的改革。
移动图书馆[2]是随着移动互联网的发展而诞生的一个词,由于移动设备的便携性以及互联网的实时性,从而能够更方便的为读者提供更多的服务,读者通过随身的移动设备,享受诸如实时了解图书馆信息,查书找书等图书馆服务。
随着智能手机登移动终端设备的普及和移动通信技术的飞速发展,移动个人数字图书馆服务对移动终端的要求越来越高,比如硬件配置、操作系统等。
需要一个开放性很强的平台来作为承载体,Android是基于Linux系统的,以移动设备为主要载体的开源操作系统,在今天的智能手机市场中,Android系统的份额是最大的。
随着3G、4G技术的发展,移动互联网的时代,对于随身图书馆服务需特别大的。
移动图书馆扩大了高校图书馆的服务围与服务质量,使图书馆的服务不再仅仅局限于图书馆,用户能随时随地的享受图书馆提供的各种服务,了解图书馆的最新动态。
移动图书馆能相对于传统的图书馆服务更好地满足用户的个性化需求,同时移动图书馆的发展会改变高校图书馆的管理模式并提高服务水平,移动图书馆的发展加速推动了高校图书馆信息资源的共建共享。
移动图书馆在移动互联网下诞生,其继承了移动智能设备与互联网的优势,拥有大量的用户与发展空间。
又因为其灵活性与良好的用户体验,必将为读者提供更好的图书馆服务。
1.3本文组织结构
移动互联网的发展,各种公共服务均因此得到一个新的发展平台。
本文基于此主要研究了以Android为平台,以OPAC为主要检索服务的移动图书馆服务系统设计与实现。
论文的主要研究容与结构安排如下:
第1章,绪论,包含了论文的研究背景以及对移动图书馆发展的分析。
第2章,介绍了系统开发过程中使用的关键技术及相关的准备知识。
第3章,对系统的架构以及各个功能模块进行了概括介绍。
第4章,具体介绍了系统的设计与实现,包括客户端、服务端的设计与实现,数据库的设计与优化,系统服务的实现。
第5章是系统测试和综合优化的实现过程,保证最好的用户体验。
结论部分,包括本文的展望与总结。
第2章相关技术
2.1AndroidStudio集成开发环境
AndroidStudio是一个Android开发环境,基IntelliJIDEA,由Google公司推出。
类似EclipseADT,AndroidStudio提供了集成的Android开发工具用于开发和调试。
利用AndroidStudio,开发者能够开发众多硬件平台如手机、TV、手表、Glass等的Android应用程序。
本系统客户端的开发中,采用的版本是AndroidStudio1.1.0。
AndroidStudio基于IntelliJIDEA开发,它在IntelliJIDEA的基础上,又针对Android应用程序开发为开发组提供了许多特色的功能,使开发人员能够快速创建高质量、高性能、高稳定性以及高用户体验的Android应用程序。
使用AndroidStudio开发的应用程序,具有快速创建、安全高效和易于管理等优点。
AndroidStudio解决了Android应用开发中常见的一些问题,首先解决的一个问题是多分辨率适配。
在大量的Android设备中,大量不同尺寸的屏幕和分辨率一直是开发者开发过程中适配的一个恼人的问题,使用AndroidStudio,开发者可以轻松方便为自己的应用适配各种不同分辨率的屏幕;同时AndroidStudio还解决全球化语言的解决方案,多语言版本、快速翻译都让开发者更轻松的进行全球开发环境;AndroidStudio还提供收入记录功能;最后提供的BetaTesting,可以让开发者很方便试运行应用。
相比于其他的集成开发环境,采用AndroidStudio开发的应用程序具有如下几个明显优势:
1)基于Gradle[3]的构建支持;
2)Android专属的重构和快速修复BUG;
3)提示工具方便显示可用性、捕获性能、版本兼容性等问题;
4)支持ProGuard和应用签名;
5)提供使用向导来生成常用的Android应用设计和组件模板;
6)提供强大的布局编辑器,轻松的拖拉UI控件到布局上就能进行效果预览。
2.2MySQL数据库和SQLite数据库
MySQL[4]是一个开源的关系型数据库管理系统,由MySQLAB公司开发,目前由Oracle公司管理。
MySQL是目前最流行的关系型数据库管理系统之一,在WEB应用软件开发中方面是最好的RDBMS(RelationalDatabaseManagementSystem),关系数据库管理系统)应用软件。
MySQL将不同的数据分别保存在不同的表中,而不是将所有数据放在一个相同的仓库,这样就增加了速度并提高了使用的灵活性。
MySQL使用标准SQL语言用于访问数据库。
MySQL软件是开源的,所以采用了两种授权使用的政策,MySQL分为普通社区版和商业版,因为其速度快、体积小、总体使用成本低,尤其是开放源代码这一特性,很多系统都是用它作为数据存放的数据库。
与Oracle、DB2、SQLServer等大型数据库相比,MySQL肯定也有自己的缺点,对于中小型企业和个人使用者来说,MySQL提供的功能已经足够了,最关键是MySQL是开放源码的软件,它提供了授权使用政策是使用者能降低总体拥有成本。
由于性能卓越,免费等特点,它与同样开源的PHP、Linux和Apache可组成非常好的开发环境。
SQLite[5],是一款体积轻小的数据库,常用于嵌入式设备中。
遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。
它是D.RichardHipp建立的公共项目。
因为它的设计目标就是针对嵌入式产品,所以目前在嵌入式产品中使用广泛,它占用资源非常的低,只需要几百K的存在嵌入式设备中就够了。
它是跨平台的一个数据库,支持Windows/Linux/Unix等主流的操作系统,同时能够跟类似C++、C#、PHP、Java等编程语言相结合使用,非常方便。
另有ODBC接口,比起MySQL、PostgreSQL这两款开源的数据库管理系统来讲,它的处理速度比他们都快。
2.3汇文OPAC系统
汇文OPAC系统是基于OPAC检索的一款图书管理系统。
移动互联采用Client/Server、Browse/Server体系结构,运用中间件技术,创建了开放的、友好的、创新的、易扩展的、基于图书馆文献资源共享和文献服务共享的分布式应用软件系统。
该系统被大多数高校图书馆使用,其特点如下:
1)支持多种操作系统平台。
如Windows2003,各种Linux版本,Solaris,AIX,HP-UNIX,SCOUnixWare等。
2)采用大型关系型数据库Oracle作为数据存储服务平台。
3)支持TCP/IP、NetBEUI等多种通讯协议。
2.4C/S结构
C/S结构,客户机和服务器结构。
经常我们使用的只能设备上的大多数应用就属于C/S结构,移动应用属于客户端,远程服务器属于服务端。
C/S结构是一种常见的软件系统体系结构,使用C/S结构可以充分发挥客户端和服务端的硬件环境,任务可以通过合理分配,使分配后的任务通过客户端和服务端来实现,大大降低了系统的通讯开销,目前几乎所有的智能设备上运行的软件系统都是Client/Server形式的两层结构。
传统的C/S体系结构虽然是开发的模式,但是在客户端和服务端都需要特定的软件系统来维持,使整个系统得以运行。
C/S结构能充分发挥客户端的处理能力,再客户端将很多工作做完后,再提交给服务器处理,这样对于移动互联网下的通信是很有优势的。
C/S结构采用“功能分布”原则,计算机应用的一个任务被分解成了多个子任务分别取执行,由多台计算机分工完成。
客户端完成数据采集处理,数据表示和与用户交互的一些接口的功能;服务器端需要完成数据库的增删查改等相关的数据库核心功能。
客户发起服务请求、服务端处理客户端请求并提供服务的处理方式是一种新型的计算机应用模式。
C/S结构中,客户端和服务端相隔通常很远,客户端程序的任务是向服务端发起请求,再将服务端程序返回的结果以特定的形式显示给用户;服务端程序的任务是接收客户程序提出的服务请求,并对请求进行相应的处理(常见的就是数据库操作),再将结果通过特定的数据格式返回给客户程序处理。
对应的优点具体表现在以下两点:
1)应用服务器运行数据负荷较轻;
2)数据的储存管理功能较为透明。
2.5B/S结构
B/S结构是WEB服务兴起后的一种网络结构模式,WEB浏览器是客户端获取信息服务的最主要的应用软件。
Browser/Server,浏览器/服务器模式将客户端所有的应用统一成了浏览器这门软件,开发者只需要专注于系统功能实现核心部分集中到服务器上,大大简化了程序的开发、维护和使用的一些过程。
客户端安装浏览器软件后,如NetscapeNavigator或InternetExplorer浏览器,服务器安装SQLServer、Oracle、MySQL等数据库,通过服务器软件和服务端应用程序,客户端就能通过安装的浏览器软件进行信息获取。
浏览器软件通过与WebServer同数据库进行数据交互。
由于Client/Server结构开发、使用过程中存在问题,因此人们又在它原有的基础上提出了一种具有三层模式(3-Tier)的应用系统结构浏览器/服务器(Browser/Server)结构。
Browser/Server结构的发展是伴随着Internet的兴起与发展才发展起来的,更是对Client/Server结构的一种改进。
从某些使用程度与方便性上来讲,B/S模式是由于C/S模式的。
不过从本质上说,Browser/Server结构也是一种Client/Server结构,它可看作是一种由传统的二层模式Client/Server结构发展而来的三层模式Client/Server结构在Web上应用的特例。
随着Web浏览器技术的不断发展与成熟,Browser/Server结构也得到了很大的发展。
现在随着浏览器的多种脚本语言和ActiveX技术发展,用一个简单的浏览器软件就能实现原来需要客户端安装的专用软件才能实现的强大功能,同时节省了开发者的开发成本。
B/S结构最突出的优点是只要有一台能上网的设备就能使用服务端的服务,而不用安装任何专门的软件,客户端零安装、零维护。
系统也非常容易进行扩展。
B/S结构的使用越来越多,随着AJAX[6]技术的发展,B/S结构的程序也能在客户端电脑上进行部分功能是我处理,类似C/S结构。
减轻了服务器的负担;也增加了与用户交互性,能进行网页容的局部实时更新。
B/S和C/S并没有本质的区别。
B/S基于HTTP协议的一种C/S架构,是特殊的C/S架构。
B/S结构的优点如下:
1)分布性操作,可以随时随地进行类似C/S的信息查询、浏览等操作;
2)业务扩展简单方便,通过增加网页即可增加服务器功能;
3)开发和维护简单方便,只要在服务端进行相关程序的编写操作,就能实现所有用户的同步更新;
4)开发简单,共享性强。
2.6小结
本章介绍了整个系统开发前的知识准备与开发过程中涉及的一些关键技术。
主要包括AndroidStudio集成开发环境、数据库、OPAC系统介绍等容,最后也对系统结构作了简要说明。
第3章需求分析与概要设计
3.1需求分析
系统整体采用C/S结构开发,拥有开发过程灵活,运行效率高,技术也很成熟等特点。
客户端开发语言选择JAVA,JAVA是一种设计非常优秀的面向对象编程语言,灵活强大。
服务端使用PHP编写,PHP是一门轻巧简单的服务端脚本语言,通过和Apache服务器,MySQL数据库一起使用,更能体现出其优势及开发效率。
客户端开发工具选择AndroidStudio,服务端开发工具选择ZendStudio,两者都是使用广泛的集成开发环境。
服务端,在汇文OPAC系统的基础上编写图书信息接口,提高开发效率。
3.2功能概要设计
系统将原本基于WEB图书馆服务转移到Android手机上,用户通过Android手机就能够使用所有的原本WEB图书馆提供的服务,并针对移动设备提供了更多有特色的功能。
系统的主要功能模块如下:
1)OPAC检索:
图书馆书籍检索。
2)扫码服务:
通过扫一扫功能,体验快速获取图书馆书籍信息、续借图书、推荐图书等众多服务。
3)新闻公告:
为读者带来最新的图书馆新闻公告。
4)我的图书馆:
个人图书馆模块,提供读者信息查询、借阅查询、违章记录查询等众多个人信息服务。
5)认识图书馆:
带领新生快速认识图书馆,使用图书馆。
6)资源动态:
提供图书馆讲座、数字资源等信息。
7)我的名片:
社交模块,每个读者拥有自己唯一一图书馆名片,包括了读者入校以来在图书馆的一些记录。
8)设置模块:
提供客户端APP设置操作。
9)登录模块:
用户需要登录后才能使用APP的主要功能。
10)帮助模块:
提供图书馆服务系统常见的问题与解答,用户自己的反馈回复也在该模块中体现。
11)意见反馈模块:
为了提高用户体验,用户可以将遇到的问题或者对图书馆服务的意见通过使用该模块进行反馈。
12)其它功能模块:
包含一些常用的小功能,如推荐图书、座位预约、图书馆书籍分类查阅等。
3.3系统架构
系统主要模式为Client/Server模式,共包含三层体系结构,分别为客户端、服务端和数据库。
1)客户端:
基于Android平台,使用HTTP请求及Socket与服务器进行通信,HTTP请求简化了开发过程中的繁琐性,Socket方式编程又保证了数据的安全性与持久性,将两者结合在一起以获得更好的效果与用户体验。
使用客户端获取外部信息,例如手机的相机获取书本条码信息,并对信息进行相应的处理。
客户端提供了一个友好的可视化操作界面,良好的交互,带给用户最好的体验。
2)服务端:
解析所有客户端发送的请求,使用PHP应用程序操作数据库。
服务端上运行着汇文OPAC系统用于提供OPAC检索相关服务,基于汇文OPAC系统的Oracle数据库编写客户端需要的API。
作为客户端与数据库之间的桥梁,保证了并发处理多用户请求以及数据的完整性。
3)数据库:
数据库服务器。
接受服务端程序的SQL请求对数据库本身进行操作,实现数据的检索与存储。
系统使用MySQL数据库进行数据存储。
客户端使用SQLite数据库进行数据存储。
Client/Server结构的系统中,用户可以通过客户端程序向分布在网络上的服务器发出请求,服务器通过服务端程序对客户端发起的请求进行处理并对数据库操作,再将操作结果返回到客户端。
系统架构如图3.1所示。
HTTP/SOCKET
数据库
HTTP/SOCKET
图3.1系统架构图
3.4小结
本章首先进行了系统需求分析,重点对技术可行性做了分析。
根据系统分析得到整个系统的功能概要设计,再由功能概要设计了系统架构图,主要包括客户端、服务端和数据库三部分,以及它们之间的通信方式。
第4章系统详细设计与实现
本章主要介绍了系统的详细设计与实现过程。
系统主要包括客户端模块、服务端模块以及系统服务模块。
这三个模块相对独立,通过模块之间的互相协作共同为用户提供图书馆的服务。
4.1客户端设计与实现
客户端基于Android平台开发,系统要求Android2.3及以上。
客户端主要采用C/S结构开发,但在C/S结构,又嵌套了一层B/S结构,即部分功能使用B/S结构开发,包括新闻公告模块、资源动态、帮助模块均使用B/S结构开发。
系统接入图书馆数据库,所有用户需要登录后才能使用所有功能。
系统还提供免登录功能,用户在登录之日后七天可以不用重复验证身份而直接使用系统提供的服务。
该客户端面向图书馆服务的全体师生提供服务。
部分模块(如“认识图书馆”模块)带有缓存功能(第一次客户端主动从服务端请求加载数据,数据将持久化存储在本地),以节省用户流量,或在没有网络的环境下读者仍能获取这些信息。
如读者需要更新,可自行主动更新数据。
业务流程图如4.1所示。
初次启动初始化
失败
缓存忘记密码成功(一周自动登录)
图4.1客户端功能模块图
客户端整体框架下包含以下若干个功能模块,分别为:
认识图书馆、OPAC检索、扫码服务、新闻公告、资源动态、我的名片、设置、帮助、意见反馈、密码管理、其它功能和登录12个大功能模块,每个功能模块下包含若干小的功能。
功能模块图如图4.2所示。
图4.2客户端功能模块图
程序界面与程序逻辑分离开,遵循MVC开发模式。
1)程序启动界面和用户登录模块,用户在此模块可以使用修改密码、登录、了解图书馆等功能。
在系统UI设计中,对一些与用户交互的地方进行了简单验证,如在登录页面中,由用户输入一卡通和密码,必须保证所有的用户必填的信息都填写正确之后才能提交至服务器请求验证,以防止恶意提交。
在客户端本地,利用正则表达式过滤掉一些非法的可能是SQL注入[7]的字符,通过本地的验证后,客户端才会向服务端发起验证请求。
服务端通过请求所带的数据与数据库进行匹配,服务端返回JSON格式数据,客户端解析JSON[8]格式数据,验证成功,客户端跳转至主模块界面,否则提示对应的错误。
运行如图4.3所示:
图4.3程序启动界面和用户登录页面图
2)程序主模块。
该模块是所有子模块的入口,通过主模块能进入客户端程序各个子模块。
该页面主要使用AndroidSDK中提供的ViewPager实现。
运行如图4.4所示:
图4.4程序主页面图
3)OPAC书目检索模块,用户可以使用资源、文献和书籍检索功能,用户可直接输入书名检索或根据条件检索。
检索过程描述如下:
(1)检索过程由客户端发起,客户端通过HTTP请求,向服务端请求所需要的信息,请求信息中包含了客户端当前检索的条件;
(2)服务端接收到客户端的检索请求,执行数据库查询,将检索到的数据通过JSON格式返还给客户端;
(3)客户端收到服务端返还的JSON格式数据,解析并显示。
检索过程如图4.5所示:
HTTP请求
JSON格式数据
HTTP请求
JSON格式数据
HTTP请求
JSON格式数据
图4.5OPAC检索过程图
检索运行如图4.6所示:
图4.6OPAC书目检索页面图
4)书籍列表页与详细信息页,此页面展示了检索得到的书籍列表和每本书籍的详细信息,包括馆藏信息、查阅信息、书籍状态、书籍出版信息、馆藏地、还书地点等。
运行如图4.7所示:
图4.7书籍列表及书籍详情图
5)图书馆新闻公告模块,用户可以查看图书馆最新的图书馆新闻公告。
该模块基于B/S结构开发,类似于WEB开发。
步骤描述如下:
(1)通过客户端APP置的基于WebKit[9]的浏览器,使用AJAX对象异步向服务端请求数据;
(2)服务端处理请求并进行查询操作,并返回查询后得到的数据;
(3)客户端对返回的数据进行显示。
运行如图4.8所示:
图4.8新闻公告页面图
6)扫码模块,该模块提供条码、二维码扫描功能。
用户可以轻松进行书籍扫码续借、扫码荐购、检索等服务。
客户端使用ZXing库[10]编码和解码。
扫码流程如下:
(1)客户端程序调用手机摄像头,进行二维码或条形码图像资源获取;
(2)通过ZXing库对图像资源解码;
(3)将解码后得到的条码或二维码信息通过HTTP请求发送到服务端;
(4)服务端根据接收到的请求类别分别进行书籍续借、检索、荐购等操作,并将操作结果通