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