王瑞娜
(三門峽職業(yè)技術(shù)學(xué)院,河南 三門峽 472000)
?
基于Android的RSS新聞閱讀器的設(shè)計(jì)與實(shí)現(xiàn)
王瑞娜
(三門峽職業(yè)技術(shù)學(xué)院,河南 三門峽 472000)
為了給用戶提供方便快捷的新聞閱讀方式,為手機(jī)用戶節(jié)省流量,文章在介紹RSS,SAX相關(guān)技術(shù)的基礎(chǔ)上,設(shè)計(jì)并開發(fā)了一個(gè)基于Android、采用Eclipse作為開發(fā)工具、SQLite作為數(shù)據(jù)庫(kù)、Google Android SDK 2.2作為開發(fā)平臺(tái)的新聞閱讀器.重點(diǎn)從需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)方面對(duì)其相關(guān)核心技術(shù)和開發(fā)流程進(jìn)行介紹.
Android;RSS;新聞閱讀器;設(shè)計(jì)
智能手機(jī)具有強(qiáng)大的數(shù)據(jù)處理和可擴(kuò)展能力,已經(jīng)成為人們?nèi)粘9ぷ魃钪胁豢扇鄙俚耐ㄓ嵲O(shè)備.隨著互聯(lián)網(wǎng)的發(fā)展,傳統(tǒng)的網(wǎng)頁(yè)瀏覽方式具有網(wǎng)頁(yè)內(nèi)容更新速度慢、查詢信息不精確的缺點(diǎn),給用戶的瀏覽帶來(lái)了極大的困擾,人們已經(jīng)不再習(xí)慣使用網(wǎng)絡(luò)獲取各類新聞信息,不愿再浪費(fèi)時(shí)間和精力從新聞網(wǎng)站下載信息.RSS技術(shù)用于實(shí)時(shí)新聞的發(fā)布,成為互聯(lián)網(wǎng)應(yīng)用的熱點(diǎn),能夠按照用戶需求,在任何時(shí)間和地點(diǎn)收集和組織信息并傳送到用戶的計(jì)算機(jī)上.RSS新聞閱讀器是以新聞閱讀訂閱為主,用戶與手機(jī)直接交互,方便用戶操作,不受手機(jī)流量控制的一款軟件.該技術(shù)能夠?yàn)橛脩籼峁┐罅康木_信息,使人們從冗余復(fù)雜的信息中準(zhǔn)確地搜索到符合用戶需求的各類數(shù)據(jù)信息,并且以互動(dòng)的方式及時(shí)反饋給用戶.
Android是為移動(dòng)終端打造的真正開發(fā)和完整的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng),具有降低手機(jī)成本、個(gè)性化應(yīng)用的特點(diǎn),在智能手機(jī)終端平臺(tái)占據(jù)著重要的地位和作用.本文旨在通過(guò)RSS,SAX技術(shù),在Android平臺(tái)上實(shí)現(xiàn)新聞閱讀器的設(shè)計(jì),方便用戶的閱讀.
1.1 Android
隨著計(jì)算機(jī)的高速發(fā)展和網(wǎng)絡(luò)應(yīng)用的大眾化,在信息技術(shù)高速發(fā)展的今天,Android廣泛應(yīng)用在智能手機(jī)、IPAD、移動(dòng)網(wǎng)絡(luò)終端設(shè)備中,對(duì)人們的生活已經(jīng)產(chǎn)生了巨大的影響.Android操作系統(tǒng)平臺(tái)是由谷歌公司開發(fā)的面向移動(dòng)應(yīng)用平臺(tái)的一種操作系統(tǒng),是系統(tǒng)軟件,該系統(tǒng)具有價(jià)格低廉、性能優(yōu)越的特點(diǎn).應(yīng)用程序?qū)?、中間框架層和Linux內(nèi)核驅(qū)動(dòng)層組成了安卓平臺(tái)體系結(jié)構(gòu).
1.2 RSS
RSS是迄今為止最為高效的定向閱讀工具,采用“客戶端/服務(wù)器”模式和HTTP,是基于XML標(biāo)準(zhǔn),具有信息發(fā)布快、成本低的特點(diǎn).RSS閱讀器是一個(gè)通過(guò)HTTP協(xié)議解析RSS文件并呈現(xiàn)給用戶的應(yīng)用軟件,能夠安裝在客戶端,實(shí)現(xiàn)與服務(wù)器上數(shù)據(jù)的同步.未來(lái)RSS訂閱的主題是過(guò)濾、個(gè)性化.RSS的優(yōu)點(diǎn)之一是用戶能夠使用RSS聚合器更快地檢查網(wǎng)站的更新.RSS是基于XML標(biāo)準(zhǔn)進(jìn)行發(fā)布消息,是一種聚集搜集新聞標(biāo)題或提供網(wǎng)頁(yè)內(nèi)容的格式.用戶能夠通過(guò)RSS Reader實(shí)現(xiàn)不同網(wǎng)站信息的實(shí)時(shí)更新.
1.3 SAX
RSS源的數(shù)據(jù)結(jié)構(gòu)為XML文件,DOM解析、Pull解析和SAX解析是當(dāng)前Google Android處理讀取XML數(shù)據(jù)的三種主流方式.本文基于Android的RSS新聞閱讀器的設(shè)計(jì)與實(shí)現(xiàn)主要使用性能消耗較小的一個(gè)公共的基于事件的XML文檔解析標(biāo)準(zhǔn)SAX解析作為解析XML文件的方法.本系統(tǒng)在實(shí)現(xiàn)過(guò)程中使用SAX解析方法.SAX是一個(gè)公共的基于事件的XML文檔解析標(biāo)準(zhǔn).使用SAX作為XML最優(yōu)的解析算法,能夠有效地實(shí)現(xiàn)時(shí)間復(fù)雜度和空間復(fù)雜度,并使系統(tǒng)具有較高的穩(wěn)定性.
1.4 SQLite
SQLite是關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品,主要應(yīng)用在手機(jī)、IPAD等嵌入式終端設(shè)備中,具有內(nèi)存容量小、檢索效率高、操作系統(tǒng)兼容性好、能跟各類高級(jí)語(yǔ)言相結(jié)合、具有簡(jiǎn)單易用的API特點(diǎn),支持SQL查詢語(yǔ)言等核心技術(shù).目前的智能手機(jī)主要以Android為主,它集成了SQLite數(shù)據(jù)庫(kù)的開發(fā)環(huán)境,包括內(nèi)核、編譯器和各類附件,能通過(guò)虛擬機(jī)進(jìn)行調(diào)試和擴(kuò)展內(nèi)核功能.在SQLite數(shù)據(jù)庫(kù)中,對(duì)數(shù)據(jù)記錄進(jìn)行增刪改和建立索引、視圖、觸發(fā)器操作并執(zhí)行SQL語(yǔ)句查詢主要是通過(guò)Firefox插件管理的.
在Google Android平臺(tái)中,官方提供了數(shù)據(jù)庫(kù),Content Provider,SharePerfrence,F(xiàn)iles四種方法來(lái)實(shí)現(xiàn)數(shù)據(jù)的持久化.在基于Android的RSS新聞閱讀器的設(shè)計(jì)過(guò)程中,由于基于Google Android平臺(tái)的新聞閱讀器的存儲(chǔ)容量有限、具有規(guī)則的數(shù)據(jù)格式、不斷更新數(shù)據(jù),因此,系統(tǒng)在設(shè)計(jì)時(shí)使用SQLite進(jìn)行數(shù)據(jù)的持久化.
2.1 系統(tǒng)業(yè)務(wù)
基于Android的RSS新聞閱讀器在設(shè)計(jì)與實(shí)現(xiàn)的過(guò)程中,應(yīng)該具有新聞組管理、新聞?lì)l道閱讀、新聞信息閱讀、新聞更新、新聞分享功能.要求用戶能夠根據(jù)自身需求實(shí)現(xiàn)新聞組、新聞?lì)l道中數(shù)據(jù)的更新功能.能夠在任何時(shí)間和地點(diǎn)根據(jù)需求及時(shí)加載新聞列表,并對(duì)其具體網(wǎng)頁(yè)進(jìn)行詳細(xì)的閱讀.類似于微信、易信、qq空間等通訊工具,能夠?qū)⒆钚碌娜藗兏信d趣的新聞分享.
2.2 系統(tǒng)數(shù)據(jù)流圖
系統(tǒng)數(shù)據(jù)流圖見圖1所示.
圖1 系統(tǒng)數(shù)據(jù)流圖
首先從系統(tǒng)總拓?fù)鋵哟谓Y(jié)構(gòu)及系統(tǒng)框架入手,確定閱讀器的實(shí)現(xiàn)目標(biāo),然后設(shè)計(jì)流程圖,最后進(jìn)行功能模塊的劃分.
3.1 系統(tǒng)總拓?fù)鋵哟谓Y(jié)構(gòu)及系統(tǒng)框架
RSS與使用IE瀏覽器在閱讀新聞上的最大區(qū)別是需要提前定制新聞?lì)l道.需要實(shí)現(xiàn)定制層、聚合層、閱讀層.在設(shè)計(jì)過(guò)程中相當(dāng)于拓?fù)鋵哟?,如圖2所示.
圖2中的定制層主要負(fù)責(zé)用戶需要定制的新聞?lì)l道,用戶根據(jù)自身需要,進(jìn)行添加和刪除頻道需要.聚合層是新聞閱讀器的關(guān)鍵層,該層主要利用RSS技術(shù),將信息源內(nèi)容傳送到閱讀器中,由閱讀器進(jìn)行解析,根據(jù)用戶資源定位器URL地址獲取對(duì)應(yīng)網(wǎng)站的摘要信息.聚合層的主要目的是用于獲取網(wǎng)站的摘要信息.閱讀層是用戶直接與新聞閱讀器交互的接口,主要負(fù)責(zé)接收由聚合層反饋給用戶的信息,供用戶進(jìn)行選擇,其功能類似于IE瀏覽器中的收藏夾.
基于Android的RSS新聞閱讀器使用SQLite數(shù)據(jù)庫(kù)存儲(chǔ)作為本地?cái)?shù)據(jù).系統(tǒng)框架如圖3所示.
圖2 拓?fù)鋵哟谓Y(jié)構(gòu)圖
圖3 系統(tǒng)架構(gòu)圖
3.2 閱讀器的實(shí)現(xiàn)目標(biāo)
閱讀器能夠?qū)崿F(xiàn)以下幾個(gè)目標(biāo):
1)用戶根據(jù)自身興趣愛好需求,對(duì)喜好的新聞閱讀器進(jìn)行定制,反之進(jìn)行修改和刪除.
2)能夠根據(jù)最新頻道定制新聞信息給不同的用戶.
3)系統(tǒng)能夠?qū)崿F(xiàn)離線閱讀功能,自動(dòng)下載服務(wù)器上的網(wǎng)頁(yè)新聞到本地機(jī)器,使用戶瀏覽最新信息.
4)系統(tǒng)能夠?qū)崿F(xiàn)根據(jù)指定的時(shí)間提醒用戶注意休息.
5)系統(tǒng)能夠根據(jù)用戶需求對(duì)其感興趣的新聞打印預(yù)覽.
3.3 系統(tǒng)的功能結(jié)構(gòu)設(shè)計(jì)
新聞閱讀器的流程圖為其功能實(shí)現(xiàn)提供了有力保障,新聞閱讀器的流程圖如圖4所示.
當(dāng)用戶點(diǎn)擊新聞閱讀器后,進(jìn)入閱讀器界面,根據(jù)用戶需求,選擇是否需要定制頻道.如果用戶定制該頻道,根據(jù)需要對(duì)頻道進(jìn)行增加、刪除或者修改,頻道定制好后,瀏覽相關(guān)新聞信息.如果用戶不定制該頻道,隨時(shí)對(duì)頻道進(jìn)行刪除和修改等操作.當(dāng)下載文件時(shí),用戶根據(jù)需求選擇自動(dòng)或者手動(dòng)下載到本地機(jī)器上.若自動(dòng)方式,則批量下載或者刪除;若手動(dòng)方式,則單個(gè)下載或者刪除.
根據(jù)系統(tǒng)總拓?fù)涮岢龅亩ㄖ茖?、聚合層、閱讀層三大層次,將RSS新聞閱讀器從功能上劃分為6大模塊.如圖5所示.
主要從系統(tǒng)開發(fā)平臺(tái)、主要功能模塊的實(shí)現(xiàn)兩個(gè)方面對(duì)系統(tǒng)進(jìn)行闡述.
4.1 系統(tǒng)開發(fā)平臺(tái)
基于Android的RSS新聞閱讀器使用Visual Studio作為開發(fā)工具,SQLite作為數(shù)據(jù)庫(kù),Google Android SDK 2.2作為開發(fā)平臺(tái),Android作為操作系統(tǒng)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn).
圖4 新聞閱讀器的流程圖
圖5 功能結(jié)構(gòu)設(shè)計(jì)圖
4.2 主要功能模塊的實(shí)現(xiàn)
RSS新聞閱讀器具有界面簡(jiǎn)潔、內(nèi)容豐富、可靠性高、方便用戶使用的特點(diǎn).界面的上方是菜單欄和工具欄,左下側(cè)是RSS頻道,右下側(cè)是內(nèi)容閱讀區(qū).
4.2.1 頻道管理模塊
確定信息源是個(gè)人信息門戶構(gòu)建的重要環(huán)節(jié),它是通過(guò)確定RSS FEED完成的.能夠通過(guò)RSS新聞閱讀器內(nèi)置的FEED、從提供RSS服務(wù)的站點(diǎn)收集FEED、通過(guò)RSS搜索引擎三種方式來(lái)完成RSS FEED的獲取.
4.2.2 文件顯示模塊
RSS新聞閱讀器支持在線和離線兩種閱讀方式.在線和離線閱讀時(shí),分別以TreeView控件和ListView控件顯示文章的列表,都是以樹狀結(jié)構(gòu)的形式顯示文章的內(nèi)容.
4.2.3 下載文件模塊
從網(wǎng)上抓取新聞文章是RSS新聞閱讀器的主要功能.通過(guò)閱讀器下載文章的基本工作原理是用戶首先定制新聞?lì)l道,然后接受分析FEED文件,對(duì)新聞的標(biāo)題、內(nèi)容等信息進(jìn)行解析,最后將解析出的內(nèi)容顯示在新聞閱讀器上供用戶在線閱讀.瀏覽者如果想讀取各類網(wǎng)站上的各類新聞則需要不斷地刷新FEED.該模塊能極大地提高用戶的訪問(wèn)效率,節(jié)省瀏覽時(shí)間.本論及設(shè)計(jì)的基于Android的RSS新聞閱讀器能夠?yàn)樾侣勯喿x者提供在線和離線兩種閱讀方式,其基本原理如圖6所示.
4.3 界面設(shè)計(jì)實(shí)現(xiàn)
本系統(tǒng)以主界面設(shè)計(jì)為例,在界面設(shè)計(jì)過(guò)程中采用樹狀結(jié)構(gòu),其目的是方便用戶瀏覽新聞及為了使用戶不會(huì)因?yàn)锳ndroid平臺(tái)手機(jī)屏幕大小有限而產(chǎn)生凌亂的感覺(jué).主界面能更好地實(shí)現(xiàn)新聞組和新聞?lì)l道的增刪改查等功能,其系統(tǒng)開發(fā)主設(shè)計(jì)界面如圖7所示.
圖6 RSS新聞閱讀器基本原理
圖7 系統(tǒng)開發(fā)主界面設(shè)計(jì)
RSS技術(shù)促進(jìn)了用戶訪問(wèn)互聯(lián)網(wǎng)的瀏覽方式,其新聞閱讀器的設(shè)計(jì)能極大方便用戶的使用,增加人性化的界面.本文主要從采用的相關(guān)技術(shù)、需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)四個(gè)方面對(duì)RSS新聞閱讀器的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行闡述,重點(diǎn)介紹了系統(tǒng)的實(shí)現(xiàn)過(guò)程.
[1] 孫 翕,張 璟,楊 欣.RSS應(yīng)用服務(wù)平臺(tái)技術(shù)的研究與實(shí)現(xiàn).計(jì)算機(jī)工程與設(shè)計(jì),2010,31(18):4015-4019
[2] 劉清堂.基于RSS的教育資源服務(wù)系統(tǒng)研究.計(jì)算機(jī)工程與設(shè)計(jì),2008,29(2):474-476
[3] 秦 鴻,RSS技術(shù)在圖書館中的應(yīng)用.上海:上海交通大學(xué)出版社,2010
[4] 楊理想,基于Android平臺(tái)的RSS新聞閱讀器的研究與開發(fā).現(xiàn)代電信科技,2012(12):13-17
[5] 南曉凡.RSS技術(shù)在圖書館中的應(yīng)用與發(fā)展.圖書館學(xué)刊,2014(5):109-112
Design and Implementation of RSS News Reader Based on Android
WANG Ruina
(Sanmenxia Polytechnic, Sanmenxia 472000, China)
In order to provide user with convenient and quick news reading way, and can save flow for mobile phone users. This paper based on the introduction of RSS, SAX related technology,design and develop a news reader based on Android, using Eclipse as a development tool, SQLite as a database, Android SDK Google 2.2 as a development platform. Focus from the needs analysis, system design, system implementation aspects of its core technology and development process were introduced.
Android;RSS; news reader;design
2016-04-13
河南省教育廳科學(xué)技術(shù)重點(diǎn)項(xiàng)目(15B520026).
王瑞娜(1984-),女,河南靈寶人,碩士,三門峽職業(yè)技術(shù)學(xué)院講師,主要從事計(jì)算機(jī)應(yīng)用技術(shù)研究.
1672-2027(2016)02-0046-05
TP317
A