仲寶才
摘要:采用Android的編程技術(shù),在與工業(yè)設(shè)計產(chǎn)業(yè)研究中心PC端網(wǎng)頁信息匹配的基礎(chǔ)上,充分考慮現(xiàn)有信息發(fā)布系統(tǒng)數(shù)據(jù)來源多樣性的特點和實現(xiàn)成本限制等因素,通過抓取網(wǎng)站中的網(wǎng)頁后,解析來實現(xiàn)對網(wǎng)頁信息的提取,保證APP與網(wǎng)站信息的實時同步。采用異步緩存技術(shù),避免APP加載圖片過程中出現(xiàn)OOM(Out Of Memory)問題。
關(guān)鍵詞:Android;工業(yè)設(shè)計產(chǎn)業(yè)研究中心;HTML解析;異步圖片緩存
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)02-0232-02
1 現(xiàn)狀
移動互聯(lián)網(wǎng)技術(shù)的發(fā)展給人們生活和工作帶來極大便利。移動智能終端突破地域和時間的限制,為用戶提供全新的產(chǎn)品和服務(wù)。目前,四川省內(nèi)各研究基地主要通過網(wǎng)站,對外發(fā)布宣傳信息,對內(nèi)實現(xiàn)對科研信息的管理。移動互聯(lián)網(wǎng)大潮下,這些網(wǎng)站和系統(tǒng)已經(jīng)不能滿足研究基地自身宣傳和管理的需要,有必要為研究基地開發(fā)一款適合自身需求的APP。
2 開發(fā)研究基地APP的價值和意義
“互聯(lián)網(wǎng)+”已經(jīng)成為了當(dāng)前最熱門的發(fā)展思路,用互聯(lián)網(wǎng)思維去思考各個領(lǐng)域的發(fā)展成為促進(jìn)領(lǐng)域發(fā)展的一個方向。四川省內(nèi)研究基地眾多,如何推動這些研究基地的進(jìn)一步發(fā)展,讓更多人及時了解研究基地的成果成為亟需解決的問題。本選題對研究基地的信息發(fā)布、課題征集等工作流程進(jìn)行調(diào)查分析,通過開發(fā)APP實現(xiàn)上述工作的移動辦公化,以移動互聯(lián)技術(shù)去助力研究基地的發(fā)展。根據(jù)調(diào)查了解和網(wǎng)上搜索,四川省內(nèi)尚未有研究基地專門定制開發(fā)自身的APP。因此本課題將會為省內(nèi)其他研究基地開發(fā)自身的APP提供參考和借鑒價值。
3 工業(yè)設(shè)計產(chǎn)業(yè)研究中心APP設(shè)計與實現(xiàn)
工業(yè)設(shè)計產(chǎn)業(yè)研究中心現(xiàn)有中心網(wǎng)站用于新聞?wù)故?、公告發(fā)布,現(xiàn)有內(nèi)部信息管理系統(tǒng)用于中心課題的發(fā)布、跟蹤和管理。研究中心相關(guān)數(shù)據(jù)均保存在這些網(wǎng)站和系統(tǒng)各自數(shù)據(jù)庫服務(wù)器中,由于規(guī)劃原因,這些系統(tǒng)由不同承建者開發(fā),且沒有為APP預(yù)留數(shù)據(jù)的接口,數(shù)據(jù)整合和功能整合較為復(fù)雜。如果重新開發(fā)一套后臺系統(tǒng)為APP提供數(shù)據(jù),歷史數(shù)據(jù)的處理就會帶來巨大的工作量。
因此,在與研究中心PC端網(wǎng)頁信息匹配的基礎(chǔ)上,充分考慮現(xiàn)有信息發(fā)布系統(tǒng)數(shù)據(jù)來源多樣性的特點和開發(fā)成本限制等因素,通過抓取網(wǎng)站中的網(wǎng)頁,對抓取的HTML文檔進(jìn)行解析來獲取數(shù)據(jù),保證APP信息與網(wǎng)站信息的實時同步更新。
3.1架構(gòu)設(shè)計
工業(yè)設(shè)計產(chǎn)業(yè)研究中心APP架構(gòu)圖如圖1示,第一層是用于信息展示和交互的UI層;第二層是實現(xiàn)課題中心、新聞公告等具體功能的業(yè)務(wù)邏輯層;第三層是中間件層;第四層組件層,其中 ImageCache:圖片緩存組件,UniversIimage:異步圖片加載組件,Netstat:異步網(wǎng)絡(luò)連接組件,Receiver:監(jiān)聽環(huán)信消息,Dao:對客戶端數(shù)據(jù)增刪查改,Task:異步執(zhí)行任務(wù),Utils:工具類,實現(xiàn)手機適配、圖片操作和日志操作等。Widget:常用界面組件。Adapter:界面的數(shù)據(jù)適配器。Log:對Android底層組件的再封裝,對Android的日志進(jìn)行全局控制。
3.2關(guān)鍵技術(shù)
工業(yè)設(shè)計產(chǎn)業(yè)研究中心APP數(shù)據(jù)來源于中心網(wǎng)站信息,對HTML的解析成為獲取信息的關(guān)鍵。在加載圖片時,對圖片的緩存處理是避免OOM出現(xiàn),提高用戶體驗的關(guān)鍵。
3.2.1 HTML的解析
解析HTML就是對HTML文檔的流式數(shù)據(jù)結(jié)構(gòu)化的過程:根據(jù)HTML語法定義,依次對輸入的HTML文檔作詞法和語法分析,其中詞法分析是從字符流中識別出標(biāo)簽和文本等有意義的符號;語法分析是確定識別出的符號的相互語法關(guān)系 [1]。在本次開發(fā)過程中,采用HTMLParser作為HTML分析的解析器。HTMLParser提供接口,支持對線性和嵌套HTML文本的解析 [2]。
HTMLParser提供Visitor和Filter兩種訪問HTML頁面的方式。因為APP數(shù)據(jù)信息來源于研究中心網(wǎng)站和B/S系統(tǒng)中的網(wǎng)頁,這些網(wǎng)頁組織明確,在開發(fā)中主要采用Filter方式訪問HTML提取HTML信息。
4 結(jié)束語
工業(yè)設(shè)計產(chǎn)業(yè)研究中心APP是為了應(yīng)對移動互聯(lián)網(wǎng)飛速發(fā)展,在已有網(wǎng)站基礎(chǔ)之上開發(fā)的一款具有發(fā)布中心公告、新聞,提供課題下載、上傳和通知功能的APP。為了不增加研究中心現(xiàn)有人員工作量,并且兼容以往系統(tǒng),采取從網(wǎng)站抓取數(shù)據(jù)的方式作為APP信息來源。該APP已經(jīng)投入到實際使用中,受到研究中心的好評。
參考文獻(xiàn):
[1] 許駿,柳泉波. HTML文件解析器設(shè)計:原理、算法與應(yīng)用[J].小型微型計算機系統(tǒng),2001,22(11):1378-1381.
[2] 伍星,王茜.設(shè)計模式在HTML解析器中的應(yīng)用[J]. 計算機工程,2005,31(2):89-90.
[3] 曾維佳.基于HTML Parser的WEB信息提取系統(tǒng)的設(shè)計和實現(xiàn)[J].電腦知識與技術(shù),2011,7(2):970-972.