【摘要】Android是基于Linux內(nèi)核的開源手機(jī)操作系統(tǒng),其全球市場(chǎng)占有率在2008年為5‰,而據(jù)日Nielsen的調(diào)查資料顯示,Android系統(tǒng)在2012年為463‰,世界排名第一。Android的核心競(jìng)爭(zhēng)力是開源,即支持開發(fā)人員自由定制所需功能。但傳統(tǒng)Web服務(wù)無(wú)法滿足移動(dòng)網(wǎng)絡(luò)的要求,即無(wú)法滿足移動(dòng)校園網(wǎng)的要求。本文就Android的開發(fā)環(huán)境及應(yīng)用程度結(jié)構(gòu)予以分析,并基于分析結(jié)果和Android的開源應(yīng)用程序組件就校園網(wǎng)移動(dòng)客戶端予以設(shè)計(jì)和實(shí)現(xiàn)。
【關(guān)鍵詞】Android應(yīng)用程序結(jié)構(gòu)軟件設(shè)計(jì)多線程序技術(shù)
互聯(lián)網(wǎng)信息交互技術(shù)的研究屬信息技術(shù)范疇,其融合了計(jì)算機(jī)網(wǎng)絡(luò)、移動(dòng)通信、信息交互、數(shù)據(jù)庫(kù)等內(nèi)容。基于平臺(tái)建設(shè)可把信息交互技術(shù)劃分成客戶端和服務(wù)器端,而移動(dòng)通訊設(shè)備端和PC端的核心內(nèi)容是服務(wù)器與客戶端的交互技術(shù),注意客戶端信息實(shí)時(shí)更新技術(shù)的重要性。針對(duì)目前我國(guó)高校移動(dòng)校園網(wǎng)絡(luò)建設(shè),多數(shù)校園網(wǎng)均偏向于PC設(shè)計(jì),則基于固定PC端地校園網(wǎng)無(wú)法滿足用戶的需要,進(jìn)而對(duì)移動(dòng)校園網(wǎng)的建設(shè)造成直接性的阻礙。近年來(lái),平板電腦和智能手機(jī)等智能終端的普及率越來(lái)越高,則基于智能手機(jī)終端實(shí)現(xiàn)校園信息交流必將為移動(dòng)校園網(wǎng)的建設(shè)提供有利的條件。本文就基于Android的校園網(wǎng)移動(dòng)客戶終端設(shè)計(jì)和實(shí)現(xiàn)展開討論。
一、Android概述
Android意為“機(jī)器人”,屬輕量級(jí)操作系統(tǒng),由Andy Rubin在2003年開發(fā)。Google公司在2007年下半年發(fā)布了Android系統(tǒng),其是基于Linux內(nèi)核的開源手機(jī)操作系統(tǒng),由此便開啟了移動(dòng)終端操作系統(tǒng)的新篇章。基于上下游資源的整合和與電信運(yùn)營(yíng)商及軟硬件商家的合作,Google公司領(lǐng)導(dǎo)聯(lián)盟成員就Android信息交流平臺(tái)制訂了協(xié)議和標(biāo)準(zhǔn),進(jìn)而擴(kuò)大了移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)規(guī)模?;贏ndroid操作系統(tǒng)的智能手機(jī)先后經(jīng)歷了G1/G2/G3,但Android智能手機(jī)真正被市場(chǎng)所接受發(fā)生在G3上市以后,且其已經(jīng)成為了全球使用率最高的機(jī)型。自G3手機(jī)發(fā)布之后,與Android手機(jī)合作或加入Android手機(jī)陣營(yíng)的手機(jī)設(shè)備制造商變得更多。隨著Android機(jī)型的增多,其功能也在此階段得到了快速地?cái)U(kuò)充,包括多點(diǎn)觸控技術(shù)和藍(lán)牙2.1等,隨后又新增了在線視頻Flash播放功能、動(dòng)態(tài)桌面技術(shù)、網(wǎng)絡(luò)共享技術(shù)等。從Android1.0時(shí)代至Android4.0時(shí)代,Android系統(tǒng)在功能、機(jī)型、用戶體驗(yàn)和界面等方面均得到了切實(shí)的改善。
二、Android應(yīng)用程序組件和開發(fā)環(huán)境
(1)應(yīng)用程序組件
Android開發(fā)程序包的“manifest.xml”文件可就An- droid開發(fā)工程的零散組件予以整合綁定,并就程序的某些特殊屬性予以描述,描述的內(nèi)容包括程序的名稱或功用等。Android開發(fā)程序包包括六大主要應(yīng)用程序組件,即Activity、Service、Content、Intent、Broadcast Receiver及Notification。本小節(jié)就前三個(gè)應(yīng)用程序組件予以簡(jiǎn)要介紹。
Activity組件屬Android應(yīng)用程序的基本組件,其主要實(shí)現(xiàn)Android應(yīng)用程序的畫面顯示。單個(gè)Activity組件等效于單個(gè)from,而單個(gè)程序包括多個(gè)Activity組件,且各Activity組件間均支持跳轉(zhuǎn)操作和傳遞參數(shù)。Activity組件配合Views程序庫(kù)可實(shí)現(xiàn)用戶界面的構(gòu)造和界面操作的執(zhí)行。Service屬Android應(yīng)用程序的后臺(tái)服務(wù)組件,其主要實(shí)現(xiàn)實(shí)時(shí)信息的接受和觸發(fā)、后臺(tái)運(yùn)行數(shù)據(jù)的更新等,且其可配合Activity組件完成某些后臺(tái)操作。Content囊括了Android應(yīng)用程序中的SQLite數(shù)據(jù)庫(kù)。Android應(yīng)用程序主要經(jīng)ContentProvider對(duì)訪問Address數(shù)據(jù)庫(kù)等應(yīng)用程序予以存取。
(2)開發(fā)環(huán)境
類似于其他操作系統(tǒng),Android架構(gòu)形式屬分層形式,從高層至低層依次為:應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層、Linux內(nèi)核層。本案選用了Android SDK Platform-tools Rev11/Android SDK tools Rev19等兩個(gè)SDK版本,其開發(fā)環(huán)境是Eclipse,并基于JDK1.6予以編譯運(yùn)行。
三、Android校園網(wǎng)移動(dòng)客戶端設(shè)計(jì)
Android校園網(wǎng)移動(dòng)客戶端包括信息處理模塊、信息顯示模塊、信息存儲(chǔ)模塊(見下圖)。其中,信息顯示模塊包括XML和多個(gè)Activity布局文件,主要基于可視化界面實(shí)現(xiàn)與用戶的交互,并完成信息的顯示。信息處理模塊包括數(shù)據(jù)解析和數(shù)據(jù)下載,基于對(duì)用戶體驗(yàn)需要和流暢性的考慮,該模塊選擇多線程技術(shù)經(jīng)超文本傳輸協(xié)議實(shí)現(xiàn)網(wǎng)頁(yè)的連接,進(jìn)而實(shí)現(xiàn)數(shù)據(jù)的獲取。基于解析技術(shù)的HTML文檔解析、與正則表達(dá)式的比較結(jié)果,Jsoup解析技術(shù)的經(jīng)濟(jì)性和簡(jiǎn)易性更加明顯,則Jsoup解析技術(shù)最佳。
信息存儲(chǔ)模塊主要完成本地?cái)?shù)據(jù)的儲(chǔ)存。Android數(shù)據(jù)庫(kù)包括Db4o/SQLite數(shù)據(jù)庫(kù)。其中,SQLite數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)以記錄為最小單位;Db4o數(shù)據(jù)庫(kù)基于對(duì)象存儲(chǔ)技術(shù)以對(duì)象為最小單位。Android平臺(tái)對(duì)SQLite數(shù)據(jù)庫(kù)的封裝處理要求開發(fā)人員無(wú)需就語(yǔ)句管理或數(shù)據(jù)庫(kù)連接做過(guò)多的考慮。所以,本地存儲(chǔ)信息記錄可基于SQLite數(shù)據(jù)庫(kù)加以完成。
四、Android校園網(wǎng)移動(dòng)客戶端的實(shí)現(xiàn)
該軟件基于Animation類完成了歡迎動(dòng)畫的設(shè)計(jì)。就某高校網(wǎng)站而言,事先選定目標(biāo)信息(包括校園動(dòng)態(tài)、教學(xué)信息、學(xué)院動(dòng)態(tài)、公告通知、學(xué)生事務(wù)及就業(yè)與發(fā)展),基于主界面實(shí)現(xiàn)信息跳轉(zhuǎn),并基于Jsoup解析和多線程下載信息實(shí)現(xiàn)信息的獲取,再基于對(duì)象形式把信息向Activity組件傳送,最后基于自定義ImageView和自定義ListView等控件向用戶顯示信息。Android校園網(wǎng)移動(dòng)客戶端的實(shí)現(xiàn)包括多線程技術(shù)的實(shí)現(xiàn)、Jsoup解析HTML的實(shí)現(xiàn)和SQLiteDateBase本地存儲(chǔ)的實(shí)現(xiàn)。
(1)多線程技術(shù)的實(shí)現(xiàn)
Android應(yīng)用程序界面多在某一個(gè)主線程內(nèi)運(yùn)行,即:若用戶與應(yīng)用程序間的交互內(nèi)容長(zhǎng)時(shí)間停留在主線程內(nèi),其必定會(huì)影響應(yīng)用程序?qū)σ鈭D廣播或輸入事件的處理,進(jìn)而減緩應(yīng)用程序的響應(yīng)時(shí)間,并彈出ANR對(duì)話框?;诖祟悊栴},其解決措施要求把連接網(wǎng)絡(luò)或下載等耗時(shí)操作皆交由另一新子線程完成,并待操作完成后,再基于對(duì)用戶界面的刷新以完成向主線程的繼續(xù)傳遞,最后就用戶界面予以更新。該軟件的數(shù)據(jù)解析和下載均由多線程技術(shù)完成,其整個(gè)實(shí)現(xiàn)流程為:開始→確認(rèn)下載→建立連接→主線程/新線程下載數(shù)據(jù)→刷新界面→完成。
(2)Jsoup解析HTML的實(shí)現(xiàn)
Jsoup主要針對(duì)Java程序予以HTML解析,可對(duì)HTML文本內(nèi)容和某個(gè)統(tǒng)一資源定位符進(jìn)行直接解析。Jsoup提供的API可經(jīng)級(jí)聯(lián)樣式表、文檔對(duì)象模型和jQuery的類操作方法對(duì)數(shù)據(jù)予以獲取及操作。該軟件首先基于某個(gè)統(tǒng)一資源定位符以Jsoup.connect()方式獲取某個(gè)doc對(duì)象,再基于doc.select()方式就HTML文檔予以解析,進(jìn)而獲取所需信息,此方法要求基于目標(biāo)HTML文檔就其對(duì)應(yīng)的解析規(guī)則予以制定。
(3)SQLiteDateBase本地存儲(chǔ)的實(shí)現(xiàn)
Android基于SQLite數(shù)據(jù)庫(kù)把一個(gè)輕量級(jí)關(guān)系數(shù)據(jù)庫(kù)提供給每一個(gè)應(yīng)用程序,應(yīng)用程序可基于原有關(guān)系數(shù)據(jù)庫(kù)引擎就有關(guān)數(shù)據(jù)予以高效且安全地存儲(chǔ)。一般而言,一切數(shù)據(jù)庫(kù)均未私有屬性,且僅支持原創(chuàng)應(yīng)用程序的訪問。該軟件基于手機(jī)內(nèi)存卡中的SQLite數(shù)據(jù)庫(kù)(自主創(chuàng)建)把歷史瀏覽信息保存完好,以便下次訪問。SQLite-eOpenHelper屬抽象類范疇,其可把數(shù)據(jù)庫(kù)的創(chuàng)建方法、打開方法或修改方法封裝完好?;趎ewsDB類完成SQLiteOpenHelper類的繼承,并基于onUpgrede()方法和構(gòu)造函數(shù)、onCreat()方法的重寫就新數(shù)據(jù)庫(kù)的創(chuàng)建過(guò)程和更新過(guò)程予以處理。與此同時(shí),把數(shù)據(jù)庫(kù)的查詢getLoCalList()、插入save()、刪除delete()deleteAll()等方法皆封裝于某個(gè)獨(dú)立的newsDBHelper類,并基于newsDBHelper類的調(diào)用方法完成各項(xiàng)操作。
五、結(jié)束語(yǔ)
綜上所述,現(xiàn)以某該校網(wǎng)站為例。基于Android校園網(wǎng)移動(dòng)客戶端,就校園動(dòng)態(tài)、教學(xué)信息、學(xué)院動(dòng)態(tài)、公告通知、學(xué)生事務(wù)、就業(yè)與發(fā)展予以分別訪問,并就本地存儲(chǔ)功能予以測(cè)試。實(shí)踐結(jié)果和測(cè)試結(jié)果均表明,此軟件運(yùn)行效果和用戶體驗(yàn)效果均較理想。此外,該Android校園網(wǎng)移動(dòng)客戶端可用于不同的校園網(wǎng),并基于對(duì)應(yīng)的解析規(guī)則,及時(shí)獲取所在校園網(wǎng)的信息。
參考文獻(xiàn)
[1]羅偉.基于Android平臺(tái)的即時(shí)通訊系統(tǒng)的研究與實(shí)現(xiàn)[D].湖南師范大學(xué),2009.
[2]鄧文.基于Android系統(tǒng)的幫客網(wǎng)客戶端設(shè)計(jì)[D].華中科技大學(xué),,2012.
[3]胡曉光.基于二維條形碼的新生報(bào)到系統(tǒng)移動(dòng)客戶端的研究與設(shè)計(jì)[D].天津大學(xué),,2012.
[4]劉誠(chéng),段紅光,巴義等.基于Android移動(dòng)視頻監(jiān)控系統(tǒng)客戶端的研究與設(shè)計(jì)[J].電視技術(shù),2013,37(4):85-88.
[5]趙玉霞.基于Android網(wǎng)絡(luò)協(xié)同移動(dòng)客戶端軟件的設(shè)計(jì)與實(shí)現(xiàn)[D].中國(guó)地質(zhì)大學(xué)(武漢),2012.
[6]劉帥奇,胡紹海,肖揚(yáng)等.基于Android平臺(tái)的匯集團(tuán)購(gòu)信息業(yè)務(wù)描述[J].電視技術(shù),2013,37(5):96-98.