?

基于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--字段改革的必要性與可行性研究
三星電子將開設應用程序下載商店
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合