畢業(yè)設(shè)計基于Android平臺的RSS閱讀器開發(fā)與設(shè)計_第1頁
畢業(yè)設(shè)計基于Android平臺的RSS閱讀器開發(fā)與設(shè)計_第2頁
畢業(yè)設(shè)計基于Android平臺的RSS閱讀器開發(fā)與設(shè)計_第3頁
畢業(yè)設(shè)計基于Android平臺的RSS閱讀器開發(fā)與設(shè)計_第4頁
畢業(yè)設(shè)計基于Android平臺的RSS閱讀器開發(fā)與設(shè)計_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

摘要在科技日益發(fā)達的今天社會競爭越來越激這要人不斷獲取信息來充實自己。這就要人們能隨時隨的了解并獲取所需的信息。與同時手機的功能越來越強大,將脫離傳統(tǒng)的打、發(fā)信等基本的功,在這種況下新閱閱讀器以滿足人們對界信息了解的。本系統(tǒng)是在Andrid平臺下設(shè)計的在GogleAndroid平臺的SDK21環(huán)境下運用Eclise進行開論文概括的了ndroid開發(fā)的程并重的介紹了基于Android平臺的SS閱讀器的開發(fā)過程。論首介紹了課題的研究、研究現(xiàn)狀和主要研究內(nèi)容;然后對系統(tǒng)中到理論知識和相關(guān)技術(shù)進行了詳細的闡述,包括Android平的相關(guān)理論知識Android環(huán)境的搭建、數(shù)據(jù)源的選數(shù)據(jù)的解方法及系統(tǒng)的詳細實現(xiàn)過。系統(tǒng)選了浪RSS源以及pull解析方法。系統(tǒng)完成以可以實現(xiàn)RSS閱讀器基功能,論文闡述具實現(xiàn)方法以及相應(yīng)的關(guān)鍵代碼。本課題完成設(shè)計實現(xiàn)的系統(tǒng)已經(jīng)試運正常。用戶使用該系統(tǒng)可以方及時的閱讀到自己感興趣的新聞關(guān)鍵:RSS閱讀器Adroid操作系統(tǒng)Pull解析算法Abstractlt'smoreadvancedinteclmologytodaandthesocialcompetitionismoreandmorefiercwhichrequiresconstantaccesstoinformationtopeopletoenrichthemselves.Atthesametimmobilephonesbecomemoreandmorepowerfuwillbreakawayfromtraditionalphonecalsendingmessagsandotherbasicfunctios.Inthiscasthenewsreaderistomeetthepeople'sundetandingoftheneedsofouideinformation.ThissystemisdesignedintheAndroidpJatforcomeswithteGoogleAndroidPlaformSDK2.1environentheeofEclipsefordevelopmet.ThspaperdescribshegeneralprocessofAndroiddevelopmenandfocusontheintrodutionoftheAndroidplatform-basedRSSreaderdevelopmentprocess.Thispaperintroducestheresearchbackgrouncurrentsituationandmaincontent;andthendescribesthetheoreticalknowledgeandrelatedtechnologiessdinthesystemindetailincludingthetheoryofAndroidplatforbuiJdingAndroidnvironmentheslectionofdatasourcesdataanalyticalmethosandhedtailedimpmentationprocs.ThesystemseJesSinaRSSoureandPuliparsingmthod.ftercompletingthesystyoucanachievethebasicfunctionsofRSSeadethepaperdsribesthespecificimplementationmethodandthecorrespondingkeycode.Thedesignandimplementationofthesytemhsbeentstrunnormally.Userscaneasilyusethesystereadtimelynewsofpersonalinteret.Keywords:RSSreadeAndroidOperatingStem,Pullpaingmethod且錄摘 ...................................................................................................................1Atract..................................................................................................................11l ...................….........……..............….......….......……..............................111 課背景..........….......….....….......….........…......................................112 課題的目的義....................………….............................213 究狀.......….......….........................................................................32 Andoid關(guān)論知識......….......….......….......……..........

....................62.. Android平介紹...........….......…....……..............…...........6 Android境搭建..........................................................................43 相關(guān)論.........................….......…….......................…................................9.1 SS簡介............................…...................….......……................92 ull解析法研究............................ ……................................204 noid平下SS器詳分析設(shè)與現(xiàn).....................................22.1 問題的提出............................................................................................224.2 解決方案............……............……..................…...….........234.3 主要能細設(shè)計與現(xiàn).....................................…...........................245 總結(jié)與展望........................................................................................................3951 作總結(jié).........................................................................................392 作望............................…........................................39致謝........................................................................................................................40參考獻..........................…………....................………….................................41m1緒論 課題背景現(xiàn)在已經(jīng)成為了人們生活中不可或缺的通訊設(shè)備,沒有有時會讓人覺寸步難行。將脫離統(tǒng)打、短信等基本的功,而基于手機強大的理能力和可擴展能力以及G網(wǎng)絡(luò)高速數(shù)據(jù)傳輸越來越多的功能不日業(yè)務(wù)將被開發(fā)出來井大規(guī)模的應(yīng)用。正為如此當全世界的目光聚焦的時候,Google于2007年11月5日宣布推出基于Linux平臺的開源作系號稱個為移動打真正開發(fā)和完整的移動軟- AndroidoAndroid是于Linux內(nèi)核的軟件平臺和操作系統(tǒng)早期由Googe開發(fā),后由開放聯(lián)盟(OpenandsetAlliance)開發(fā)。它采了軟件(softwarestac,又名以軟件疊層)的構(gòu)架主要分三分底層以Linux內(nèi)核作為基礎(chǔ),由C言開,只供基礎(chǔ)功能。中間層包函庫Library和虛擬機VirtualMachin,由C+開發(fā)。最上層是應(yīng)用軟包括通話程短信程序等應(yīng)用軟則由自行開發(fā),由Java編寫。Android不僅僅只是個操作統(tǒng),包括:I、經(jīng)過Google剪裁和調(diào)優(yōu)的LinxKernel,于掌上設(shè)備的硬件提供了很好的支持Google在Linux方面的應(yīng)用能力不容置疑,Google公司幾乎所有的萬服務(wù)全部是自修改過的Linux操作系。過Google改的Java虛擬機Dalvik是于ApacheHarmony虛擬機版本進行改良而來,能夠提供高執(zhí)行。有了Java虛擬機,部分Java核心類庫已經(jīng)可直接運行。、量立即可用的類庫和應(yīng)用軟例如瀏覽器Webki數(shù)據(jù)庫SQLit,可輕易開發(fā)出來媲美于桌面應(yīng)用復(fù)雜度的軟件。4Google已開發(fā)好了量現(xiàn)成的應(yīng)用軟件,同時可直接使用Google很多在線服。Goe提供于Eclise的完整開發(fā)環(huán)境、模擬器、文檔、幫助、示例等將極大推動And快速的和發(fā)展?;贏ndod眾多的優(yōu)點,圍繞ndid形成個移動聯(lián)盟的廠商幾乎全列,而此聯(lián)盟在極大的推動Andìd平臺的和發(fā)在未來的幾年必將大方異彩,將極大的推動整個操作系統(tǒng)至聯(lián)網(wǎng)乃至軟件行業(yè)的發(fā)展。1.2課題研究的目的和意義Android這個平臺對于Google對于大眾的意義不在于本身Android存在的目的也不在挑起操作系統(tǒng)之間的混而在推動移動互聯(lián)業(yè)鏈的迅速。有開源特性的Android平臺打破了之前Symbianwindowsrnobile等操作系統(tǒng)收高額的授權(quán)費用的模式使得只能成本大大的降而正是于它開發(fā)源代碼,使得生更多個性化的應(yīng)用。同作方能這里得到利潤創(chuàng)造價值,軟件行業(yè)得到維護協(xié)調(diào)發(fā)展。以Googl果和諾基亞為中心形成的生態(tài)鏈將來數(shù)倍的速度推動移聯(lián)網(wǎng)的發(fā)展,這正是Google推出Adroid平臺的意也是Android臺在的使而作為Android平臺成員一的中國移動也技資成立家通訊公專門從事Google軟件的應(yīng)及本地化的軟件開發(fā),如將在Google手機平臺添加飛信、輸入法等系列符國內(nèi)用戶使用特色的功能。國內(nèi)眾多業(yè)也將眼光投入到Android上面動了相關(guān)的計劃來深入的理解并發(fā)展Android更多的軟件發(fā)企業(yè)已經(jīng)者籌將公司進行轉(zhuǎn)型,從其方向的開發(fā)轉(zhuǎn)向到Android的開發(fā)。綜上所述,無論是國內(nèi)還國外Android平臺對軟件行業(yè)和移動平臺將發(fā)揮極大地推動作而在未來的幾年或段時間Android將越發(fā)的凸顯己的重要性基于此,我們有必要通過進行相關(guān)的研究來了解Android平臺,來了解開發(fā)Android的一大批人的先進的理念和思想,并通過這些來了解軟件行業(yè),進而解未來無移動互聯(lián)網(wǎng)的發(fā)展趨,從更好的適應(yīng)時需要。1.3研究現(xiàn)狀本節(jié)對各大站點對RSS的支持情及現(xiàn)有RSS閱讀器進行了分析和綜合,提出了系統(tǒng)實現(xiàn)可借鑒的地方。1各種站點對SS的支持情況目前支持RSS站'點主要分為下面幾:新聞資訊類站P站點、立博客站其站點。新聞資訊類站點指的是傳統(tǒng)的戶網(wǎng)站,這類門戶網(wǎng)站一般是站長管理式的信息涉及非廣泛來源比較集中、權(quán)威性比高一直受到傳統(tǒng)互聯(lián)網(wǎng)用戶的青睞。用戶可以從這一類網(wǎng)站了解到各種需要的綜合信息。幾大典型的例子有新門戶、搜狐門戶和!騰訊門等等。了合用戶的需要這類網(wǎng)站一般也有推出RSS訂閱功能,這類網(wǎng)站的信息更新非常頻繁、信息也比較巨大,因,用戶不怎么傾訂閱此類網(wǎng)站。BSP站即Blogserviceprovidr(博客服務(wù)提供商),這類站點為用戶提供博客服除了提供基本的博客添加評論之大部分BSP都會針對某個博客提供RSS訂閱功。比新浪博和博客園等等。這類網(wǎng)站在RSS信息更新方面的特點更新相對不頻繁、也規(guī)律。但是用戶比較傾向于訂閱這類網(wǎng)站,為許多博客的話是針對特定領(lǐng)域,用戶的閱傾向往往針對某一領(lǐng)域的。獨立博客站指的是博主自己申請域自己開通且自己維護的博客。這類博客站一般使用已有的博客系統(tǒng)(比如wodpress,而這些博客系一般都會提供RSS閱功能。在信息方面,立博客一直是IT業(yè)比睞的網(wǎng),比月光博、小眾軟等等。在國,一博客點加流行。其他站,指是迎合用戶特需的站點。這類站點提供某些定期更新的特殊信息,比如天氣預(yù)報信校就業(yè)信息學(xué)院通知信息。這類信不適合所有用戶{.且就算如此,提供RSS訂閱服務(wù)能使得心它用勞永逸。這類信息更新的頻繁度往往沒有什么規(guī)。對fSS源站點信息,我們總結(jié)如表11所:表11各種RSS源網(wǎng)站情況對比RSS源點用戶群體RSS支持程度更新頻繁程度新聞門戶大眾用戶一般頻繁BP站點專注個領(lǐng)域的用戶好不頻繁獨立博客站點專業(yè)用戶非常好不頻繁其他站點具有特殊需求的用戶不好不確定1移動閱讀器實現(xiàn)方案線閱器離線RSS閱讀器主要指的是用一個客戶端軟件進行RSS閱讀,如瀏覽器自帶的HSS閱讀,以及桌面RSS閱讀器。這類閱讀器的主要優(yōu)點:(1)通過本地緩存將內(nèi)容呈現(xiàn)給用戶,使得RSS閱讀不受網(wǎng)絡(luò)影響(2)響應(yīng)速度快,加載速度快。它的主要缺點:(1)RSS信息的獲取由客戶端完成,增加了戶端的處理負擔(dān)(2由于訂閱信息都在本地,因此不便于用戶轉(zhuǎn)移數(shù)據(jù)。對來說,計算能力和內(nèi)存空間屬于稀缺資源因此離線RSS閱讀器實現(xiàn)方案并不適合。此離線閱讀器的實現(xiàn)方案和互聯(lián)網(wǎng)的發(fā)展趨勢也是背道而馳的。在線閱器在線閱讀器大多是通瀏覽器訪問一閱讀器,對于在線閱讀器來各個訂閱網(wǎng)站信息的獲取是由提供服務(wù)方完成的,客戶端只負責(zé)接收服務(wù)端返回的數(shù)據(jù)并且確顯示。在線閱讀器的特點是依靠網(wǎng)絡(luò)、極大化的減輕客戶端的負擔(dān)、便于用戶在不同客戶端使用軟件及其數(shù)據(jù)等等。隨著web.0的發(fā)展些在線RSS閱讀器已經(jīng)進入人們的視野,典型的范例有Google閱讀器、鮮果網(wǎng)、抓蝦網(wǎng)和哪噸這些網(wǎng)站也相繼都推出了各自的版。這些版的RSS閱讀器都是我們需要借鑒的。但是,對普通用戶來說RSS是個比較難以理解的東西(尤其是在內(nèi)),因此這類讀器的普及是重難題,我們的工重點,就是屏蔽RSS閱讀器的技術(shù)細節(jié),給用戶提觀、全面的、易懂的服務(wù)。2 Android論識2.1 Android平臺紹11Andid系統(tǒng)簡介Android詞指"人",同時也是oogle于2007年11月5宣的基于Lnux平開源操作系統(tǒng)的名它包括作系界面和應(yīng)用程一一動所需的全不存在任何以阻礙移動業(yè)創(chuàng)新的有權(quán)障礙。目前,最本為Android2.4Gingerbread和Android.0Honeycomb。Googleandroid平臺的系構(gòu)架圖.1:ApplicatìonG:J(hlt) (rowscr) ζ〉(明L(.í!J川島)(.aω) CWI?I.Kit )(GL ) (1)(山)

COCLbrnricsal"ikVMKernelJ Bluetooth lshn der黑黑丁

rivcr

rivcrWiFí Auio Powcrriver rivcrs onagemn圖2.1Geandroid平臺的系統(tǒng)構(gòu)架圖雖然Android是Google公司推出但更貼切的說法應(yīng)該是開聯(lián)盟品。開放聯(lián)盟是由大約30家組成的聯(lián)盟,致力于將"更好的"和開放的"推其網(wǎng)站上句話很好的闡述了這:UAndroid是成為一個開放、完整、免費門針對移動設(shè)備開發(fā)的平臺目標,完全開始創(chuàng)建的。"12 Android系統(tǒng)架構(gòu)用程序Android以Java為編程語,從接口到功都出不窮的,其中Activity等同于J陋的MIDlet一個Activity類(class)負責(zé)創(chuàng)建視窗(window)個活動中的Activity就是在foreground(景)模式運行的程序,叫做Service。兩者之間通由ServiceConnection和AIDL連結(jié),達到復(fù)數(shù)程序同時運行的效果如果運行中的Activity全部畫面被其他Activity取代時,該Activity便被停止(stopped)甚被系統(tǒng)清除(kill。View于J臟的Displayable程序人員可以通過View類與UlVlLlayout"檔將UI置在視窗上Android1.5的版本可以利用View打造出所謂的Widget其實Widget只是View所以可以使用xml來設(shè)計layoutHTC的AndroidHero即含有量的widgeto至于ViewGroup是各種layout的礎(chǔ)抽象類Cabstractclass)ViewGroup之內(nèi)還可以有ViewGroupoView的函數(shù)不需要再Activity中調(diào)用是Displayable的是必須的在Ativity中要通過findViewByld來從XML中取得ViewAndroid的View類的很程是從XML中讀取的View與事件(event)息息相關(guān),兩者之間通過Listener結(jié)一起,個View都可以注個eventlistener,例:當View要處理用戶觸碰(touh)的事件時就要向Android框架注冊stener。另外還有Image等同于J嶇的BitMa。介軟件操作系統(tǒng)與應(yīng)用程序的溝通橋梁,應(yīng)用分為兩:函數(shù)層CLibrary)和虛擬機CVirtualMachine).Bionic是Android良libc的版本Android同時包含了Webkit,所謂的Webkit就是AppleSafari瀏覽器背后的引擎Surfaceflinger是就2D或3D的內(nèi)容顯示到屏Android使工具鏈(Toolchain)為Google自制的BionicLibcoAndroid采用OpenCORE作為基礎(chǔ)多媒體框架。OpenCORE可分7大:PVPlayerPVAuthorCodePacketVideoMultimediaFramework(PVMF)OperatingSystemCompatibilityLibrary(OSCL)Common、OpenMAX.Android使用skia為核心圖形引擎,搭配OpenGLESoskia與LinuxCairo功能當,但相較于LnuxCairskia功能還只是雛形2005年Skia公司被Google收購2007年初SkiaGL源碼被公開,目前Skia也是GoogleChrome的圖形引擎。Android的多媒體數(shù)據(jù)庫采用SLite數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫又分為共用數(shù)據(jù)庫及私用數(shù)據(jù)庫。用戶可通過ContentResolver類(Column)取得共用數(shù)據(jù)庫Android的中以Java實現(xiàn),并且采用特殊的Dalvik虛擬機(DalvikVirtualMachine).Dalvik虛擬機種"暫存器型態(tài)"CRegisterBased)的Java虛擬機,變量皆存放于暫存器中,虛擬機的指令相對減少Dalvik虛擬機可以有多個實例(instance),每個Android應(yīng)用程序都個自屬的Dalvik虛擬機來運行,讓系統(tǒng)在運行程序時可達到優(yōu)化。Dalvik虛擬機并非運行Java碼CBytecode),而是運種稱dex格式的文件。硬件抽象層Android的HALC硬件抽象層)是能以封閉源碼形式提供硬件驅(qū)動模塊HAL的目的是為了把Androidframework與Lnuxkernel隔開,讓ndroid至過度依賴Linuxkernel,以達成kernelindependent的概念,也讓Androidframework開發(fā)能在不考慮驅(qū)動程序?qū)崿F(xiàn)的前下進發(fā)HALstub一種代理人(proxy)的概念stub是以*so檔的形式存Stub向HAL提供"操作函數(shù)Coperations),并由Androidruntime向L取得stub的operation再callback這操作函HAL包含了許多的stubC代理人。Runtime只要說明型",即moduleI,可以取得操作函數(shù)。編程言Android是運行于Linuxkernel上,但并不是GNU/Linu。肉在般GU/Linux里支持的功能,Android大都有支持,括CairoXllAl、FFmpegGTPango及Glibc等都被移除掉Android又以bionic取代Glib、以Skia取代Cair、再以opencore取代FFmpeg等等Android為了達到商業(yè)應(yīng),必須移除被GUGPL授權(quán)證所約束份,例如Android將驅(qū)動程序移到userspace,使得 Linux driver 與 Lnux kernel 徹底分開。bionic/libc/kernel/并標準的kernelheaderfilesoAndroid的kernelheader是利工由Linuxkernelheader生的,這樣做是為了保留常數(shù)、數(shù)據(jù)結(jié)構(gòu)宏。目前Android的Lnuxkernel控制包括安全CSecurity),存儲理CMemoryManagement),程理(ProcessManagement網(wǎng)絡(luò)堆核(NetworkStack),驅(qū)動程序模型CDriverModel)。下載Android源碼之前,先要安裝其構(gòu)建工具Repo來初始化源碼Repo是.Android用來輔助Git作工。 Android系統(tǒng)的特點與功能Android系統(tǒng)的特點、開放性Google開放盟合作開發(fā)了Android,Google通與運行商、設(shè)備制造商、開發(fā)商和其關(guān)各方面結(jié)成層次的合作伙伴關(guān)系,希望通過建立標準化、開放式的移動軟件平臺,在移動業(yè)形放式的生態(tài)系。、應(yīng)界Android上的應(yīng)用可以通過標準API訪問核心移動設(shè)備功通過聯(lián)網(wǎng),應(yīng)程序可聲明它們的功能可以提供給其他應(yīng)用程序使。、應(yīng)用程序是在平等的條件下創(chuàng)建的。移動設(shè)備上的應(yīng)用程序可以被替換或擴展,即使是撥號程序主屏幕這樣的組件。4、應(yīng)用程序可以輕松地嵌入網(wǎng)絡(luò)。應(yīng)用程序可以輕松地嵌入HTML、JavaScript和樣式衰,還可以通過WebView顯示網(wǎng)絡(luò)內(nèi)容。應(yīng)用程序并行運行Android是種完整的多任務(wù)環(huán)境,應(yīng)用程序可以在其中并行運行。在后臺運行時應(yīng)用程序生成通引起注。Android系統(tǒng)的功能A、支持虛擬鍵盤。虛擬盤的出現(xiàn)意著基于Android15或以上版本的移動設(shè)備可以同時支持物理鍵盤和虛擬鍵盤。使用lVidget實現(xiàn)桌面的個性化。可以用Widget修飾自己的桌面。大多的web應(yīng)用都是從網(wǎng)絡(luò)上獲得實時數(shù)并展示給用戶的Android預(yù)裝了5個桌面\vidget包括數(shù)字時日歷、音樂播放器、相框和搜索。用在線件夾快速游覽數(shù)據(jù)。類似于OSXLeopard的QuickLook特征,Android的在線文件夾可顯示常見的數(shù)據(jù)條目比聯(lián)系喜應(yīng)E-mail信息、播放列表、書簽RSS源等并不要運行系程處理特定的數(shù)據(jù)條目。視頻錄制和分享Android還有錄制和分享視頻的功能,對回放和MPEG、3GP等視頻格有了更好的支持。以過E-mailMMS直接上傳到Y(jié)ouTube等方式來分享視頻。圖片上傳。在線分享圖片需要的點擊更少。完成照相后當瀏圖片或選擇Google在線圖片服務(wù)Picasa只需輕點"分享"就會有1Gb的圖片存儲空間。、更快、更兼容的游覽器Android的于Webkit內(nèi)核的游覽器帶來了重要的調(diào)速裝置(SpeedPumb),這得益于新的lVenkit渲染引擎和優(yōu)化的ava腳本編譯器(SquireFish).VoiceSearch語音搜索。帶有識別技術(shù)的Google于208年11月面世,它支持語音搜索功能。該功能增強了默認的搜索能己超過純文本搜索。、立體聲藍牙和免提。除了增強的免提體Android還支持立體聲藍牙(A2Dphe和AVCR)并有自動配對功能。、強大的GPS技Android內(nèi)部供了大量的GPS組件我們可以很輕松地獲得設(shè)當前的位置等信讓等能更完美。10Android系統(tǒng)硬件檢測Android可自動檢測和修復(fù)SD卡的文件系統(tǒng),允許方應(yīng)用顯示Android系統(tǒng)的硬件特為了讓戶下載到與自己的設(shè)備匹配的應(yīng)用,我們可以檢測戶備的硬信讓滿足應(yīng)用要求的設(shè)備安裝該程序,當更多的Android設(shè)備建在不的硬件上時,這個功顯得很實用。2..4 Android平臺與iPhone平臺的對比過去智能市場的領(lǐng)先者是WindowsMobile/SmartPhone和BlackBerry,同時Symbian和Palm在其中角逐。但隨著iPhone棋空出世,就以簡單易,并功能強大,作為了智能的代名詞。近來android也其開源免費的特質(zhì)強勢來下面就其優(yōu)孰劣進一對。開發(fā)臺的對比于iPhone平臺的開發(fā),首先要悉Apple的MACOS或者是Unix系統(tǒng)的開發(fā)基礎(chǔ)iPhone的開發(fā)工具Xcode并不支持Windows平臺,開發(fā)者首先要擁有一臺mac電:語學(xué)習(xí)方面熟悉C言的工程師可省一點因為在Objective-C可以直接編寫C程序有用戶口的部分一定仰賴Objective-。Android采用Java開發(fā)因此Android對系統(tǒng)資源的操程度已接近PC客戶端開發(fā)。程兼容性問題iPhone獨一天以很好控制應(yīng)用兼容性問題,而Android平臺的聯(lián)盟戰(zhàn)略,便有家廠商不同規(guī)型號的機器,因而Google通過廠商一硬件的規(guī)格手段達到兼容性的平衡。不過也確實有開發(fā)者擔(dān)心Android的開放平臺,未來難保廠商不會因為自身的需求而有所調(diào)可能導(dǎo)致兼容性問題發(fā)生。封和審核度封閉和嚴格的審直都是iPhone做為Apple設(shè)計理念和保證app質(zhì)量的評審手段一,在app應(yīng)開發(fā)成上架AppStore上前Apple也必須審核軟件的內(nèi)容,以避免包含色與或己知Bug的軟件影響整個市集的質(zhì)量。由于iPhone軟件的銷售與安裝,只能透過AppStore這個一的管道有志進入IPhone市場的開發(fā)者也不得不買。相于Apple的封閉Android就顯得開放許多AndroidMarket則是被動審查機制(只有被足夠多的用戶舉報Google才會對此進行審核程序上傳幾個小時后,使用可載。事實上開發(fā)者不經(jīng)由AdroidMarket,有其他途徑:安市場。封閉開放的作法各有好處,由Apple把且定銷售管道的作,對費者而言可以確保質(zhì)而開發(fā)者省得比較各市集之的優(yōu)劣。而Android的開放作法則不設(shè)限的好一開發(fā)者不用心Apple因為自身利益的考慮,而軟件上架的申請。消費者的選擇自由高出很多。UI互上差異傳統(tǒng)時代,用直接用鍵盤、按鍵操作數(shù)據(jù)。iPhone的操作別于之前傳統(tǒng)的體驗,iPhone大觸摸屏概念推出,戶可直接對內(nèi)容進行操作排除其他中間設(shè)備控,降低用戶使用門對內(nèi)容操作也有接的體驗。Android則保留傳統(tǒng)些特征返搜hmemenu實體按鍵,也同樣有大觸摸屏兩者之間的硬差異因此也決定了交互視覺上本質(zhì)的差異;iPhone遵從Apple精簡設(shè)計風(fēng)格用隱喻的視覺方式示用戶進行使用操,同樣直觀表達步的操作流程。大部分操直接和內(nèi)容互用體驗一連貫,典型案:解。Aroid有實體按鍵,承載其余過多基操作,用戶停留在最重的內(nèi)容有更多件操也能有富的表現(xiàn)典型:軌跡顏色提醒。缺:部分操作,屏幕按鍵之間回轉(zhuǎn)換。tie和導(dǎo)航引手持移動備的特性決屏幕的有在應(yīng)用程序的層級關(guān)系中如何指引用戶完成操便重要。iPhon:應(yīng)用程序有信息層級關(guān)iPhone利用title區(qū)域進操作指title的左邊是返回讓戶明確之間的關(guān)系。Adroid:頁的回退靠體返回按鍵此title區(qū)不要作在視覺上小高擴大了內(nèi)容區(qū)域。缺:沒個好航指。2.1.5Android平臺開發(fā)過程研究Android移平作為21世紀的新秀,受到了越來越多的開'追,在這股開發(fā)的浪潮中,逐漸形成一套具有Andrid特開程。由于Android的優(yōu)越性其開發(fā)顯常的有規(guī)律性可尋。大致的開發(fā)流程如:需求。一個軟件它必須有其存在的意義和價而這值和意義需要靠求分析來定。、功能分析。作軟件它的任務(wù)就是給用戶使如何提供最好的用戶體驗就值得程序員深思。這也是衡一個程序成與的關(guān)鍵所。、界面設(shè)計。作一個軟件只能在極有的區(qū)域中顯示己如在有空間里面更完美的現(xiàn)出自己獨特之處顯得重。、系統(tǒng)開。一個軟件的主部分,系統(tǒng)開發(fā)的好壞直接決定了該系統(tǒng)的性能和壽命。測試。在任個軟件開發(fā)行業(yè)中,無論是J2EEJ2SEJ2ME等等其他開發(fā)中,試時必不可少一環(huán)在Android開發(fā),由于的高頻率使用,和硬件系上的不足,使得對軟的要求更加的嚴,就要求在開發(fā)完成,在對其進行嚴的測試。試又包括了單元測系統(tǒng)測試等等方面的測。成一系統(tǒng)的開發(fā)后就將其發(fā)布,只有廣大用戶的考驗,才算一合的產(chǎn)品在Android平臺中Google提供一套整的發(fā)布機-Goglemarket。Android開發(fā)環(huán)境的搭建2.2.1下載需要用到的工具下載JAVA的IE開-Eclipse到Eclipse官方站下載EclipeForJavaEE最新Windows版本下頁面地址:hLLp://w問.eclips.or/downloads/,如圖2.1所:.[.精菌tlerE..Home Users Mms Commtters Donloads Resoces oects botUsEclipseDownloadsE1psePackags MemberDirs PcsGameePa束ages(bas<lonEdJpse32).ComparePackages

Youwill陌制Jcrrecwr.clipif-.Und3tionj

EolipseIDEforJaEEDevelopers163M)IIWJndowsIToolsforJvadlopersceingJEEandebapp劃includingaJavaIDols-而言茍TforJEEandS;nndolh丘Morel?nux2btDownloads327354l?nx64b?lEclipseIDEforJavaDeelopes85M)heesselial105forayJavadlopindudingaJavaIDEaCVSief;lEdorandl.More..Doads810

WndowsMacOSXlinux32bitl?nx6bt圖2.1下載Eclipse、下載Java開發(fā)包--JavaSEDevelopmentKit(JDK)JDK6到Sun官方網(wǎng)站下載陽,選擇JDK6Update12下頁面地::/liav.sun.coliavase/download/index._isp圖.2所:遠二五叫隊餌"陽棺J宇ovaJ宇眩暈tlm?0"IOêttSO'IpllS?t?!'Vl'11VO"\nlT'SNC'ru.14l晴同.II\d<",響。I'"dJRE&Upda.2T?何呢?uc'?TeIad)'r陽剛鉗制NJ歸F刷",1or巳.lUI"!?90}J 抽s:;!f2ωS91Jrrtand魯南(f'8nC"r'-mnlτurilVlI;lt1Jl.::r;;>'町rcriIl'哼 l川'tZD宜| IZD宜l JDK6Update12 I I.rThlsJDKin.lCl壘sl!R.王80dCa1刷刷的I!l1ealOc.sU'laEl5l.rU660JI勾,eI"叮!]<1vs?lrd<lII。噸

l.. rr圖.2下載JDK、下載Android開發(fā)包--AndroidSDK到Google的官方網(wǎng)站下載orWindows的Android的開發(fā)包下載地:http://dl./android/androidsdkrllwindows 下載完要的工具之開始安裝安裝Eclipse:下回來的Eclipse(eclipse-jeganymedSRwin32.zip)直接解壓可2安裝JDK6:運行下來的JSK安裝包(jdk-6u25-window-i58.exe)一路"一步"即可、安裝Android開發(fā)包(SDK):下載的SDK包(androidsdk_rll)接解壓即可 讓Eclipse自動安裝Android開發(fā)插(ADT-plugi)動安(解壓)后的Eclipe目錄下的Ecplis.exe點擊菜單UHp")USoftwareUpdates",在打開窗口中切換到工頁頁"Availb1eSoftwre"3、首先點擊選項UAdd site…",然后手動輸入以下地址:http://dsslgoogle.co/android/eclipse/,擊UOK"、剛才加入的地址,點擊UIstall.."進行ADT(AndroidDeve10pmentToo)的安。Eclipse此時會從加入的地中自下載跟安裝AD,等一安裝完畢后,示需要重啟Eclips點擊"OK"重啟Eclips圖2.3: 配置AndroidSDK路徑重啟clipse點擊菜單Window")"Preference"打開配,在左邊選中Androi,在右邊輸入AodroidSDK的路徑(剛才步驟下載的AodroidSDK解壓出來的目錄點擊侃,如圖2.4:.;‘r:鴨"'.1. …l.iiIed. 'i 忡"'I11惜tllittft,

皿jEJ川劇如喃喃lT<硝<?t曲創(chuàng)F$Ot'l'..,'l嘟,/,周刊伊Q:iIIfI,田間'h口..Jtc!帽M咱Th(d?s;tP陰陽2-$

也.o....lI:南嘟l'lI:忘.l91).1.0."2均屬)'nIS9

-空空里一旦::_]空2斗-坦」r;翁陽甜的"由。,町硝a1s伽苗'S-;11禽院睛"嘲,-e-ateey悅,陽回回0pttI1i>t抽出叫''lC1JO'l!l't'咽斟幢峙翩啪"lil:呻嗡"帕.ill r?ote I圖2.3安裝ADTE…-r町時房。地啕刷tS啕Ilns!ll飽問V4),硝(11!1JPAV怕W[+RemoleSv灑rm啦JgStrel'ser蝕司t!s..m餌I<ω\'áde陽、WebIte:b'vIlS'detIDX!ll

斗副i<>'一"如回'IeQefW位|一些@ 王]I圖配置AdroidSDK路徑 創(chuàng)建AVD為使android應(yīng)程序以在模擬器上運行,必須創(chuàng)建AV在eclipse中邊擇Windows>AdroidSDKandAVDManager,點、擊左側(cè)面板的Virtualevice,再右側(cè)點re。填入Name,選擇Target的APISDCard任意(推薦25則,Skin隨便邊ardware目錄保持默認擊CreateAVD即完成創(chuàng)建AV。本系統(tǒng)是在AndroidSDK.1下完成的。此Android開發(fā)環(huán)境搭建完成。3 技術(shù)理論3.1 RSS技術(shù)簡介信息傳具多種多樣包括可以免費收聽的無線公共和有線電、印刷媒體至包括1nternet這樣顛覆性的技術(shù),以及其龐的Web站點和電子師件訂閱。雖然選擇很多但是這些工具都存在一個問:很龐雜的海數(shù)據(jù)中精查找到真感興趣的信息和價值幸運的是RSS可以幫助我們解決這個問題。RSS是"ReallySimpleSyndication"的縮RSS種內(nèi)容發(fā)者用來發(fā)布信息的XML數(shù)據(jù)格式些信息經(jīng)過了分類井適機閱RSS提要通常使用諸如新聞閱讀器這人類可讀的友好格式進行處理并顯示給用本教程中構(gòu)建用程序就是這種新聞閱讀RSS提要同樣可以供計算機使用,而生成后續(xù)的、聚合息舉例來說定期檢索并提供給旅行社本地預(yù)訂系統(tǒng)的租賃列表就個機器使用RSS鍵要的例子。討論新閱內(nèi)容時經(jīng)常會提到RS而除新聞以外,這種格式可用于組織和發(fā)布很多型例如,很多Web站點都發(fā)布可用的podcast的RSS提耍,從而發(fā)音頻和視頻內(nèi)H是個流行的移動軟件和內(nèi)容線商店,它根據(jù)移動平臺分類,提供新的流行軟件標題的提耍。例,提供針對Window@MobileBlackberryPalm和其他平臺的耍用不了多很可能就會提供針對Android應(yīng)用程序的提耍了!RSS的格式是XML數(shù)據(jù),這表示數(shù)據(jù)本身就包含描述性元素,也就是說它是自包含行業(yè)的逐步規(guī)范化,XML結(jié)過去幾經(jīng)歷些變化。新的版本也是應(yīng)最的版本是.0RSS2.0種相對簡單的XML結(jié),很容計算機程序解析。RSS是站點用來和其他站點之間內(nèi)容種簡易方式(也叫聚內(nèi)容,通常被新閱和其序排列的網(wǎng),如Blogo段項目的介紹可能包含新問的全部介紹Blogpost等等或者僅僅是額外的內(nèi)容或者簡短的介紹。這些項目的鏈接通常都能鏈接到全部的內(nèi)。絡(luò)用戶可以在客戶端借助于支持RS的新問聚工具軟件(例如NewzCralrFeedDemn在打開網(wǎng)站內(nèi)容頁面的情況下閱讀支持RSS輸出的網(wǎng)站內(nèi)容。網(wǎng)站提供RSS輸有讓用戶發(fā)現(xiàn)網(wǎng)站內(nèi)容的更新。RSS的點。果有HS用戶就不得不每日都來您的網(wǎng)站檢查新的內(nèi)容。對許用戶說這太費了通過HSSfeed(f{SS通常被稱為Newsfeed或RSSfeed,用戶們可以使用RSS聚合器來更快地檢查您的網(wǎng)站更新(RSS聚合器是用來集并分類RSSfeed的網(wǎng)站或軟件。由于RSS數(shù)據(jù)很小并可速加載,它可輕易地被類似移動或DA的服務(wù)使有似內(nèi)容網(wǎng)站環(huán)(Werings)可以輕易地在它們的網(wǎng)共享使這些站更出色更有價。3.2Pull解析算法研究構(gòu)建RSS閱讀器應(yīng)用程序的核操作就是獲取并處理XML數(shù)。前GoogleAndroid理讀取XllL數(shù)據(jù)有三種主:DOM解析、Pull解析SAX解。下面對三種解析方法來行比:DOM解析lvL文件時會將XML文件的所內(nèi)容讀取到存,后允許您使用DOMAI

歷XlvlL樹、檢索所需的數(shù)使用DOM操作XlIL的代看起來比較并且在某些方面比于SAX的實現(xiàn)更加簡單。但是為DOM需將XL文件的有內(nèi)容讀到存中所以內(nèi)存的消耗比較大,特別是對于運行Android的移動設(shè)備來說為設(shè)備的資源比寶貴所以建議還是采用SAX或者PULL來解析ML文件,,果ML文件的容比的時候采用DOM是可行的。SAX個解析速度快占用內(nèi)少的xl

析器非常適合用于Anrd移動設(shè)。SAX解析XML文件采用的是件驅(qū)動也就是說它并不需要解完整個檔在按內(nèi)容順解析文檔的過程中SAX會判斷當前讀到的字符是否合法lvL語法中部分如果符合就會觸事件。所謂事其一些調(diào)(callback)方法,這些方法(事件)在Contenandler接。如在一個XML文檔中我們只需要前一部分數(shù)據(jù)使用SAX方式成DOM方式會對整個文檔進行解析,盡管XML擋中后面的大部分數(shù)我們其實不需要析,因此這樣實際上就浪費了處理資因此使用PULL方比較適。Pull解析器和SAX解析器雖有區(qū)別但也有相似性。他們的區(qū)別:SAX解析器工作方式是自動將事件推注冊的事件處理進行理,此不能控制事件的處理主動結(jié)束;而Pllll解析器的工作方式為允許你的應(yīng)用程序代碼主動從解析器中獲取事件,正因為是主動獲取事件,因此可以在滿足了需要的條件后不再獲取事件結(jié)束解析是他們主要的區(qū)別。而他們的相性在運行方式上Pllll解器也提供了似SAX事件開始文檔STARDOCUENT結(jié)束文檔ENDOCUMENT開始元素STARTAG和結(jié)束元素ENTAG遇元素內(nèi)容TEXT但需要調(diào)用nextO方法提取們(動提取事件〉。Android系統(tǒng)中和Pull方式相關(guān)的包為org.xmlpullvl,在這個包中提供了Pull解析器工廠類mlPullrserFactory和Pull解析器XmlPull町ser,XmlPullarserFactory調(diào)用nePullarser方法創(chuàng)建mlPullarser解析器實接著XmlPullParser實例就可以調(diào)用getEvetType0和nextO方法依主提取事件,并根據(jù)提取的事件類型進行相應(yīng)的邏輯處理。另外Pull方式比較單,而且可以根據(jù)判停止解析(DOM和SAX需要文件的文章解析中能停止)。綜合考慮本系統(tǒng)的現(xiàn)用到的是ull解析算法來解析數(shù)據(jù)。4 Android平臺下RSS閱讀器的詳細分析設(shè)計與實現(xiàn)4.1問題的提出411 需求分析、系統(tǒng)開發(fā)背景。在信速發(fā)展的今天,人對信常的重視希望能夠隨時隨地的獲取即時更新的信息。而新聞閱讀器剛好可以滿足人們的要求。在傳統(tǒng)的平臺例如IPhon,有許多類似的程序,都受到了用戶的好歡通過武漢某公在Googleandroidmarket上面的程序的調(diào)發(fā)現(xiàn)關(guān)于信息方面的程序普遍受廣大用戶的歡因此本系統(tǒng)將能滿足人們對信息的需。、系統(tǒng)功能的描述1)頻道的切換:用戶能按己的需求來切自所需要的頻道。2)新聞的閱讀:當用戶打一個新聞的時候用戶能準確無誤并且方便的讀取到新闊的內(nèi)常3)新聞的收藏:當戶覺得一個新有趣的時候,用戶能將其添加到自己所歡的新聞列表中。的新聞的更新:當RSS更新以后程序能做相應(yīng)的更新能與網(wǎng)絡(luò)上的內(nèi)容保一致性做到即時更。 系統(tǒng)功能結(jié)構(gòu)根據(jù)系統(tǒng)需求描敘和系統(tǒng)數(shù)據(jù)流得出系統(tǒng)功能結(jié)構(gòu)如圖41所:[{SS閱讀器新聞頻道顯示與切換 新聞的顯示圖系統(tǒng)功能結(jié)構(gòu)圖

新聞的收藏與刪除.2 解決方案為了解決一所提出的需求分析,我提出下面的解決方案它遵循了android平臺開發(fā)的規(guī)律,具體流程如圖.2所:數(shù)據(jù)源的選取數(shù)據(jù)的解析系統(tǒng)的布局設(shè)計系統(tǒng)穩(wěn)定性的設(shè)計與檢測圖系統(tǒng)解決流程圖在開發(fā)前期筆者找到適合作為新陽源的RSS源的數(shù)據(jù)源找最優(yōu)的解算-Pull。在數(shù)據(jù)準備筆者基于ogeandroid移動平臺的新聞閱讀器的界面做了詳細的規(guī)。在成這些以后筆者對系穩(wěn)定性進行了相關(guān)的調(diào)研,做出了相應(yīng)的假并進行驗證,通過證的結(jié)果來對系統(tǒng)的穩(wěn)定性做了相應(yīng)的檢測和操作。4.3主要功能詳細設(shè)計與實現(xiàn) RSS數(shù)據(jù)源的選取基于Android平臺的RSS閱讀器作一新聞閱讀器,對RSS源的要求及其苛刻:(1RSS源必須是穩(wěn)定的,非出現(xiàn)特殊情況,否則不會無法讀的情況。(2RSS源更新頻率須的高,能做到將手的新閱資料上傳更新,使得用戶能最早的獲得相關(guān)新聞資料。(3SS源的訪問速度。由于基于GoogleAndroid平臺的新聞閱讀器的使用對象是而則通過GPSwrFr等其他的無線網(wǎng)絡(luò)訪問RSS源,以對RSS源的訪問速度有高要求。(4RSS源的格。由讀取RSS源的內(nèi)容是通過解析相應(yīng)的XML文件獲得的,所基于GoogleAndroid平臺的新聞閱讀器對r<ss源的格式有非的要求當RSS源的式一旦固論是將來的更新或者是添加等其他操作的時候SS源的格式須保持一定。基,本人的個人好,并經(jīng)過測試,本系統(tǒng)選擇了新浪RSS源。 RSS源的解析構(gòu)建RSS閱讀器應(yīng)用程序的核心操作是獲取并處理XML數(shù)。前GoogleAnoid處理讀取XML數(shù)據(jù)有三種主流方:DOM解析、Pull析SAX解析。下面來對三種解方法來進行比:DOM解析XML件時,會將XML件的所有容讀取存然后允許您使用DOMAI

歷XML樹檢索所需的數(shù)據(jù)c使用DOM操作XML的代碼看起來比較并在某些方面比基于SAX的現(xiàn)加簡但是因為DOM需要將XML文件的所有內(nèi)容讀取到內(nèi)存中,所以內(nèi)存的消耗比較大,特別對于運行Anoid的移動設(shè)備來說為設(shè)備的資源比寶貴,以建議還是采用SAX或者ULL來解忻X!VL文如果XML文件的容比的時候采用DOM是可行的。SAX個解析度快占少的xrl

析器非常適合用于Anroid等移設(shè)。SAX解析XML件采的是事件驅(qū),也是說,它并需要解完整個文在按內(nèi)容序解析文的過程中SAX會判斷前讀到符是否合法XML語法中的某部分如果符合就會觸發(fā)事。所謂事件其實就是一些因調(diào)Ccalack)方法,些方法事定在CtntHandler接。如一個XML文檔中我們只需要前部分數(shù)若使用SAX方式或DOM方式會對整個文檔進行解析盡管XL文檔中后面的大部分數(shù)我們其實需要析,因此這實際上就浪了理資源。使用PULL式正合適。Pull解析器和SAX解析器雖有區(qū)別但也有似。他們區(qū)別為:SAX析器工作方式是自動將事件推入注冊的事件處理器進行處理因此你不能控制事件理主動結(jié);而Pull解析器作方式為允許你應(yīng)用程序代碼主動從解析器中獲取事件,正因為主動取事件,因此可以在滿足了需要的條件后不獲事件,結(jié)束解是他主要的區(qū)。而們的相似性在運行方式Pull解析器也提供了似SAX事件,開始文檔STARTDOCUMENT和結(jié)束文檔ENDDOCUMT,開始元素STARTTAG和結(jié)束元素ENTA,遇到元素內(nèi)容TET等但需要調(diào)用nextO方法提取們動提取事件)。Android系統(tǒng)中和Pull方式相關(guān)的包為or.xmlpullv1,在這個包中提供了Pull解析器工廠類XmlPullParserFactory和Pull解析器XmlPullParser,XmlPullParserFactory實例調(diào)用newPullParser方法創(chuàng)建XmlPullParser解析器實例,著XrnlPullParser實例就可以調(diào)用getEventType0和nextO等方法依動提事件,并根據(jù)提取事件型進行相應(yīng)的邏輯處理。/創(chuàng)建XmlPullParse,有兩種方式//方一使用工廠類XmlPullarserFactoryXmlPullParserFactorypullFactory=XrnlPullParserFactory.newlnstance();XmlPullParserxrnlPullParser=();//方式二:使用Android提供的實用工具類android.util.XmlXmlPullParserxrnlPullParser=XmlnewPullParser;XmlPullParser.setlnput(lnputStreaminputEncoding)解析對應(yīng)的輸入文件XmlPullParser.getEventType()得到元素

inputStrearn StringPULL方式比較簡單,而且可以根據(jù)判斷停止解析(OOM和SAX都需要對文件的文章解析中途不能停止)。因此在本RSS閱讀器系統(tǒng)RSS數(shù)據(jù)源的解析用到的是方式一使用類XmlPullParserFactory來創(chuàng)建XmlPullParser。4.3.3系統(tǒng)界面的設(shè)計在講述系統(tǒng)界面的設(shè)計之前,我們先來介紹一下Android中的四大組件。對于個Android應(yīng)用程來說,是由四種構(gòu)造塊組織而成的這四種構(gòu)造塊如下ActivityIntentReceiverServiceontentProvider但是,不是每個Android應(yīng)用程序都需要這四種構(gòu)造塊這不是必須,某些時我們只需要這四種中的幾種組合成我們的應(yīng)用。Activity:Activity是Android構(gòu)造塊中最基本種在應(yīng)用中個activity通常就是一個單屏幕。每一個activity都被實為一個獨立并且繼承于Activity這基類。這個activity類將會顯示由幾個Vies控件組的用戶接口并對事件做出響大部份的應(yīng)用都會包含多個的屏。如一個短消息應(yīng)用程序?qū)聊挥糜陲@示聯(lián)人表第二個屏幕寫短消,同時還會有用于瀏覽舊短消及行系統(tǒng)設(shè)置的屏幕。每個樣的屏,就是個activit一屏幕導(dǎo)航到另一屏幕是很簡單的。在一些應(yīng)用中,一屏幕甚至返回值給前一屏幕。當一個新的屏幕打開后,前屏幕將會暫,并存在歷堆校中用戶可以返回到堆中的前屏幕。當屏幕不再使用時還可以從歷史堆校中刪。情況,Android將會保留從主屏幕到個應(yīng)用的運行屏幕。Android使了Intent這個特殊,實現(xiàn)在屏幕與屏幕之間移動Intent類用于描個應(yīng)用將會做什事。在Intent描述結(jié)構(gòu)有個最重要的部:動作和動作對應(yīng)的數(shù)據(jù)。典的作類型:MAINCactivity的|丁戶)、VIEPICEDIT等。而動作對應(yīng)的數(shù)據(jù)則以URI的形式進行表示。例:要查一個人的聯(lián)系方式,你需要創(chuàng)個動作類型為VIEW的intent,以個表示這人的UIo與之有關(guān)叫IntentFilter。于intent是一個有效的做某事的請求個intentfilter則用于描個activity(或者IntentReceiver)能夠操作哪些intent。一個activity如果要顯個的聯(lián)系方式時需要聲明個IntentFilter,這個IntentFilter要知道怎么去處理VIEW動作和表示個人的URloIntentFilter需要在AndroidManifest.xml中定義。通過解析各種intent屏幕導(dǎo)航到另一個屏幕是很簡單的。當向前導(dǎo)航時activity將會調(diào)用startActivity(Intentmylntent)方法。后,系統(tǒng)會在所有安裝的應(yīng)用程序中定義的IntentFilter中查找找到最匹配mylntent的Intent對應(yīng)的activit。新的activity接收到rnylntent的通知后,始運行當startActivity方法被調(diào)用將觸發(fā)解析mylntent的動機制提供了兩個關(guān)鍵好:、Activities能重利用從其它組以Intent的形產(chǎn)生個請:B、Ativities可以在任何時候被一個具有相同IntentFilter的新的Activity取代Intentreceiver:你你的應(yīng)用能夠?qū)Σ康氖?如當呼入或者數(shù)據(jù)網(wǎng)絡(luò)可用時,或者到了晚上時)做出響應(yīng)你可以使個IntentReceivero雖然IntentReceiver在感興趣事件發(fā)時,會使用NotificationManager通知用戶,但它并不能生一個UloIntentReceiver在AndroidManifest.xrnl中注冊,但也可代碼中使用Context.registerReceiverO進行注冊。個intentrecelver被觸發(fā)肘你的應(yīng)用不必對請求調(diào)用intentreceiver系統(tǒng)會在需要的時候啟動你的應(yīng)用。各種應(yīng)用可以通過使用Context.broadcastlntent()將自己的intentreceiver廣播給其它應(yīng)用程序。Service:一個Service一長生命周期沒有用戶界面的程序。比較好個例就是個從播放表中播放歌曲的媒體播放器個媒體播放器應(yīng)用中應(yīng)該會有多個activity讓使用者可選擇歌曲井播放歌然而,音樂重放這個功能并沒有對應(yīng)的activity,醫(yī)|為使用者當然會認為在導(dǎo)航到其它屏幕時音樂應(yīng)該還在播放的。在這個例子中媒體播放器這個activity會使用Context.startService()來啟動一個service,從而可在后臺保持音樂的播放。同時,系統(tǒng)也將保持個servlce一執(zhí)直這個servlce運行結(jié)。另還可通過使用Context.bindService()方法,連接一個servlce上(如果這個service還沒有運行將啟動它。連接個service之后,我們還可以service提供的接口與它進行通訊。拿媒體播放器這個例子來我們還可以進行暫停、重播等操作。ContentProvider:應(yīng)用程序能夠?qū)⑺鼈兊臄?shù)據(jù)保存到文件中SQL數(shù)據(jù)庫至是任何有效的設(shè)備中1、將你的用數(shù)據(jù)其它用.肘ContentProvider將會很有。個ContentProvider類實現(xiàn)組標準法,從而能夠讓其它的應(yīng)用保存或讀取此ContentProvider處理的各種數(shù)據(jù)。下面開始講述本RSS閱讀主界面的設(shè)先看看整個系統(tǒng)的架構(gòu)流程圖如圖.3:島1inActiviyNeView主菜單界面新聞大類 新聞標題新聞內(nèi)容頁面顯示圖4.3RSS閱讀器系統(tǒng)架構(gòu)流程圖MainActivity是程序的主體部分整個程序的執(zhí)行從這里開始,在MainActivity里調(diào)用NewsCategory.java的方法,進入NewsView在ewsView中展示主菜單布局,包括主界面和新聞大類,新類的顯示通過新聞大類的頻道切換來完成新聞大類和新問小類是分別是在GetNewsMenu.java和GetNewsTitl.java中用pull解析法獲取RSS數(shù)據(jù)源點擊新聞標后以新聞頁面閱讀新聞內(nèi)容。由于SS源是從新浪網(wǎng)獲而且為合不群的不同喜好新聞類型所主界面可以多設(shè)計幾個新聞類別選菜單本系統(tǒng)仿照新浪首菜圖單顯示方式主界面如圖

.4所:l7:?7777177|圖.4RSS閱讀面l點擊左或者右獲得更多的新聞類,圖.5和圖.6所:l.--|l圖.5RSS閱讀面2d[-口d

tt;;1圖.6RSS閱讀主界面3其中"新中心"包所有類別,而且在進入該RSS閱讀器的時光標會默認的停在"新中心"每個頻面都有對應(yīng)的新新閱小類下面才是一條條新聞的標題。在介紹頻道之間的切換上圖中的左向右鍵便是用來實現(xiàn)頻道切換功能的面是實現(xiàn)頻道切換的關(guān):publicvoidonClick(Viewv) {switch(v.getld())(caseR.id.maín_backwar_ímageVíew:ViewFlipper.showPrevious()ibreakicaseR.id.maí_next_ímagVíe":rVewFliper.showNext()ibreakidefaut:breakiif(v.getld()>=R.id.tvOl&&vgetld()<=R.id.tv15){Log.d(this.toString()"onClick......")iTextViewtv=(TextView)findViewByld(v.getld())ilist=map.et(tv.etext()toString().replaceAll("\n","").rpaceAll("",""))iif(list!=null){mListliew.setAdapter(newDemoListAdapter(thilist))i}else{Log.e(LOG"List<NwCatgory>isnull")i上代碼的switch吾句便是用來實現(xiàn)頻道切換的其中上一頁的ID是R.i.main_backwrd_imageView,當程序執(zhí)行到這個case的時候,便調(diào)用showPrevious()方法來示前一的主菜單內(nèi)容,圖.4前一頁圖.6;同樣一頁的ID是.id.main_next_imageView當序執(zhí)到這個case的時候,用showNext()方法來顯示后頁的內(nèi)容,圖.4一頁是圖.50

其實括上15新聞別在,每個邊項都對應(yīng)了一于己的I,即"新中心""體育頻道"、…、"視頻頻道"的ID分別是R.id.tvOl.…·.id.tv1在程序中使用ID來進行調(diào)用,所有這些ID對應(yīng)的選項都包含在main.xml上述代碼中的if語句實現(xiàn)有這些新聞頻道圖標時程序應(yīng)該調(diào)用的方。 新聞閱讀界面設(shè)計在新問示界面我們采用leAndid比較流行的ebVew來進行顯下面以"體育頻道"為例,效果如圖.7所:圖4.7擊"育頻道"后的界示實現(xiàn)這個界面的關(guān)鍵代碼包含在GetNewsMenu.java通過pull解析方法使用工廠類XmlPullParserFactory創(chuàng)建XmlPullParser來解析從新浪網(wǎng)RSS源里讀的xml數(shù)關(guān)碼如:publicclassGetNewsMenu{publicstaticMap<StringList<NwsCategory>>PullParseXML(}throwsExcption{List<NewsCategory>listNews=nu1iNewsCategorynewsCategory=nu1iStringmapKey=nuliXmlPullParserFactorypullParserFactoryXmlPullParserFactory.newlnstance(};XmlPullparserxmlPullParser=pullParserFactory.newPulparser();Log.e("PullParseXML""getXML......");xmlPullParser.setlnput(GetNewsMenuclass.getClassLoader(}.getResourcAsStream("sina_news.xml")"UTF-8");Log.e("PullParseXML""PullParseXML....start....")iinteventType=xmlPullParsergetEventTye(}iwhile(eventType!=XmlPullParser.EN_OCUMEN}{StringnodeName=xmlPullparsergetName(}iswitch(eventType)(caseXmlPullParser.STARTDOCUMENT:break;caseXmlPullParser.STARTTAG:if("item".equals(nodeName)}{newsCategory=newNewsCategory(};if("title".equals(nodeName)&&newsCategory!=null){newsCategory.setTitle(xmlPullparser.nextτext());if("link".equals(nodeName) &&newsCategory!=null){newsCategory.setLink(xmlPullParser.nextText())ibreakicaseXmlPullParser.ENDTAG:if("item".equals(ndeName)){listNewsTitle.add(newsCategorY)ibreak;default:breakieventType=xmlPullParer.next()ireturnlistNewsTitlei下面來談?wù)劷馕鲞^程,這段代首使用工廠類XmlPullParseractory創(chuàng)建XmlPullarser,然后通過調(diào)XmlPullParserFactory.newlnstance()方法來獲取XmlPullParser的實例好輸入XM文件裝載器后開whil循環(huán),pull解析器讀到XML返回的數(shù)字如下所:讀取到xml的聲明返回數(shù)字oSTARDOCUMNT;讀取xml的結(jié)束返回數(shù)字1ENDOCUENT;賣取xml的開始標簽返回數(shù)字2STARTAG;讀取到xml的結(jié)束標簽3ENTAG;讀取到xml文本返回數(shù)字4TEXT通過whie循環(huán)中的switch語句中的不同cae來判斷元素是否是STARTDOCUMET、ENDDOCUMETSTARTAGENTAGTEXT中一再進行相應(yīng)解析,這個事件返回的不是1我們一直取xml文個case在break以都會調(diào)用xmlPullParse.next()方依次主動提件并根據(jù)提取事類進行相的邏輯理。現(xiàn)在在新聞menu菜單里可以選擇自己感興的新聞,例如"英超",界面效果如圖示。這個界面顯示的都是新闖標題同樣是通過pull解析方法使用工廠類XmlPullarserFactory創(chuàng)建XmlPullParser來解析從新浪網(wǎng)RSS里取的xml數(shù)據(jù),方法和技術(shù)與前面介紹的基一里不再贅述。電?m-31MI國 |噩噩囡匾.雪:幅l>噩噩晏肘圭RJ人士號言f、擊!軍主飛毛111Ar人口Ji;斗中' 晏月-王一‘三芒王工-豆」l,.戶子:

ù'ê… ·文[斗士II1II村也f旦!汀吃 E-IDIIIIυ1M."τ甜J'_::::1.-IDIIII。I

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論