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