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