基于Android平台SQLite数据库技术在图书馆中的应用

2013-12-10 14:07江汉大学图书馆
电子世界 2013年4期
关键词:字段新书应用程序

江汉大学图书馆 陈 斌

一、Android平台简介

随着3G时代的到来,无线带宽越来越高,使得更多内容丰富的应用程序植入手机成为可能,如视频通话、视频点播、移动互联网冲浪、在线看书、在线听歌、内容分享等。为了承载这些数据应用及快速部署,手机功能将会越来越智能,越来越开放。因此,为了实现这些需求,必须有一个好的开放平台来支持。因此,由Google公司发起的OHA联盟走在了业界的前列——2007年11月推出了开放的Android平台[1]。

Android是谷歌(Google)公司发布的一个开放源代码的手机平台,由Linux内核、中间件、应用程序框架和应用软件组成,是第一个可以完全定制、免费、开放的手机平台。Android不仅能够在智能手机中使用,还可以用在移动互联网终端(MID)、上网笔记本、便携式媒体播放器(PMP)和汽车电子等其他手持设备上。

Android在诞生之日起便受到广泛关注。到目前为止,中国台湾的宏达电(HTC)、三星、LG、摩托罗拉、索尼、华硕、联想和华为相继推出自己的Android手机,中国移动、中国联通等运营商也在研发基于该系统的手机操作平台。据市场调查机构预测,2012年全球Android手机的总规模达2000万部,2013年全球应用Android操作系统的产品销售量将超过4000万部。

Android是基于Linux内核的软件平台和操作系统,采用了软件堆层的架构,共分为4层。第1层是Linux内核,提供由操作系统内核管理的底层基础功能;第2层是中间件层,由函数库和Android运行时构成;第3层是应用程序框架层,提供了Android平台基本的管理功能和组件重用机制;第4层是应用程序层,提供了一系列核心应用程序[2]。

Android广泛支持GSM、DEGE和3G的语音与数据业务,支持接收语言呼叫和SMS(短信消息服务),支持数据存储共享和IPC(进程间通信)消息机制,为地理位置服务(如GPS)、谷歌地图服务提供易于使用的API函数库,提供组件复用和内置程序替换的应用程序框架,提供基于WebKit的浏览器,广泛支持各种流行的音频和视频文件格式,支持的格式有MPEG4、H264、Mp3、AAC、JPG、PNG和GIF等,为2D和3D图像处理的专用的API库函数。

在内存和进程管理方面,Android具有自己的运行时和虚拟机。与Java和.Net运行时不同,Android运行时还可以管理进程的生命周期。Android为了保证高优先级进程运行和正在与用户交互进程的响应速度,允许停止或终止正在运行的低优先级进程,以释放被占用的系统资源。

在界面设计上,Android提供了丰富的界面控件供使用者之间调用,从而加快了用户界面的开发速度,也保证了Android平台上的程序界面的一致性。Android将界面设计与程序逻辑分离,使用XML文件对界面布局进行描述,有利于界面的修改和维护。

Android提供了Service作为无用户界面、长时间后台运行的组件。Android是多任务系统,但受到屏幕尺寸的限制,同一时刻只允许一个应用程序是在前台运行。Service无需用户干预,可以长时间、稳定地运行,可为应用程序提供特定的后台功能,还可以实现事件处理或数据更新等功能。

二、SQLite数据库技术

Android支持高效、快速的数据存储方式,包括快速数据存储方式SharedPreferences、文件存储和轻量级关系数据库SQLite,应用程序可以使用适合的方式对数据进程保存和访问。同时,为了便于跨进程共享数据,Android提供了通用的共享数据接口ContentProvider,可以无需了解数据源、路径的情况下,对共享数据进行查询、添加、删除和更新等操作[3]。

SQLite是一个开源的嵌入式关系数据库,2000年由D.Richard Hipp发布。自几十年前出现的商业应用程序以来,数据库就成为了应用程序的主要组成部分,同时数据库管理系统也变得非常庞大和复杂,并占用了相当多的系统资源。随着嵌入式应用程序的大量出现,一种新型的轻量级数据库SQLite也随之产生。SQLite数据库比传统的数据库更加适用于嵌入式系统,因为它占用空间非常少,运行高效可靠,可移植性好,并且提供了零配置运行模式。

Android中提供了两个类,用于简化SQLite数据库的操作。第一个是SQLiteOpenHelper,该类主要用于自动完成打开、关闭指定的数据库,当数据库不存在的情况下还可以创建数据库,并根据需要更新数据库。第二个是SQLiteDatabase类,该类只要用于查询数据库,相数据库中新建数据项、删除数据项[4]。

创建一份数据库的一般流程如下:

(1)根据应用设计出所需要的数据表格。

(2)为数据库中每张表格建立一个Java类,可以把这些类看作是应用层和数据库之间的一个适配层。

(3)在每个Java类中定义一个基于SQLiteOpenHelper的内部类,用于创建数据库。需要实现其内部的3个函数,包括构造函数、onCreate()和onUpdate()。

(4)在每个Java类中,把数据列的名称定义为常量,便于访问。

在Android系统中,每个应用程序的SQLite数据库被保存在各自的/data/data//databases目录下。默认情况下,所有数据库都是私有的,仅仅允许创建数据库的应用程序访问。

三、SQLite数据库技术在图书馆中的应用

3G技术以及无线网络在全球的飞快发展,使传统的图书馆面临着一次新的技术革命,江汉大学图书馆作为地方性大学图书馆,在运作和管理模式上也面临着无线信息化、数字化、网络化的新挑战。数字图书馆技术将使传统型图书馆实现革命的变革。它将要求以新的模式处理传统图书馆的功能,包括各类型信息资源访问模式、读者的交互模式、以及新的采访模式等。因此,我们尝试采用基于Android平台SQLite数据库技术应用于图书馆的新的采访模式。

1.基于Android平台的采访模式的功能及结构

在访问SQLite数据库方面的主要功能有:(1)用户查询新书情况以及推荐自己喜欢的新书;(2)实现学科馆员根据用户的推荐情况决定要采购的新书。由此,该模块的结构分为:用户推荐新书系统、学科馆员购书决策系统。

2.用户新书推荐系统

首先,采用SQLite,建立相应数据库中的表。在其中新建新书书目表Book,设置“BookId”、“ISBN”、“题名”、“责任者”、“出版社”、“价格”、“新书期数”、“推荐指数”、“入馆状态”等11个字段。新建读者信息表User,设置“UserId”、“一卡通号”、“Email”、“联系电话”等14个字段。新建新书推荐纪录表RecommendBook,设置“读者一卡通号”、“推荐书目Id号”等4个字段。

用户选择好自己喜欢的新书后,将推荐纪录存于数据库中,用于学科馆员决策所要采用的新书。

在.Android平台中使用SQLiteOpen-Helper和DatabaseHelper子类进行封装,利用ContentValues类来代替原始的SQL语句进行数据库的存取操作。

在BookDbAdpter类中向外界提供了以下一些常用方法:

Open():调用此方法后,如果数据库还没有建立,那么会建立数据库,如果数据库已经建立,那么会返回可写数据库实例。

Close():调用此方法后,Database-Helper会关闭对数据库的访问。

CreateNewBook(String title,String body)通过一个title和body字段在数据库中创建一条新书推荐记录。

GetAllNotes():得到Book表中所有的记录,并且以一个Cursor的形式进行返回。

GetBook(long rowId):通过记录的主键id得到特定的一条记录。

UpdateBook(long rowId,String title,String body):更新主键id为rowId那条记录中的两个字段title和body字段的内容。

将读者推荐书目纪录存入数据库的部分源代码如下:

3.管理员购书决策系统

根据用户推荐新书的数据,学科馆员需要从这些推荐新书的数据中选择图书馆需要购买回的新书。并且将这些新书信息及时反馈到读者。

由于每位用户在推荐新书时,必须先登陆到图书馆系统,因此在推荐新书的数据记录存入数据库的同时,用户一卡通卡号信息也存入表RecommendDetail中。这样在RecommendDetail中通过外键UserId与表User中的主键UserId组成主-从表,那么根据User表中读者职称(分为教授、副教授、讲师、研究生、本科生)分为五级,假设教授推荐这本新书,则在Book表中该书的权重加5;如果是副教授,则加4,以此类推,如果是本科推荐权重指数加1。学科馆员就根据新书的推荐指数,并结合馆中藏书情况决定需要购买的新书。学科馆员在图书馆购买回相应的新书后,将更新表Book,并将此信息以短信的形式及时反馈到用户登记的手机上面。

四、结束语

基于Android平台的图书馆各种服务应用具有响应速度快,建设成本低,使用方便等特点,是图书馆信息化、数字化和无线网络化发展的趋势。并且可以与现有图书馆系统集成,为用户提供更多、更加方便快捷的图书馆服务。

[1]柯元旦,宋锐.Android程序设计[M].北京航空航天大学出版社,2010.

[2]张波,高朝勤,杨越.Android基础教程[M].人民邮电出版社,2009.

[3]韩超,梁泉.Android系统原理及开发要点详解[M].电子工业出版社,2010.

[4]徐娜子.Android江湖[M].电子工业出版社,2011.

猜你喜欢
字段新书应用程序
图书馆中文图书编目外包数据质量控制分析
新书速递
新书讯
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
新书推介
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
关于CNMARC的3--字段改革的必要性与可行性研究
三星电子将开设应用程序下载商店