freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android平臺的rss閱讀器的設(shè)計與開發(fā)-文庫吧

2025-01-01 12:59 本頁面


【正文】 droid平臺上可以使用Simple API for XML(SAX)、Document Object Model(DOM)和Android附帶的pull解析器解析XML文件。 (1)使用SAX讀取XML文件 SAX是一個解析速度快并且占用內(nèi)存少的XML解析器,非常適合用于Android等移動設(shè)備。SAX解析XML文件采用的是事件驅(qū)動,也就是說,它并不需要解析完整個文檔,在按內(nèi)容順序解析文檔的過程中,SAX會判斷當前讀到的字符是否合法XML語法中的某部分,如果符合就會觸發(fā)事件。所謂事件,其實就是一些回調(diào)(callback)方法,這些方法(事件)定義在ContentHandler接口[5]。下面是一些ContentHandler接口常用的方法: startDocument()當遇到文檔的開頭的時候,調(diào)用這個方法,可以在其中做一些預(yù)處理的工作。 endDocument()和上面的方法相對應(yīng),當文檔結(jié)束的時候,調(diào)用這個方法,可以在其中做一些善后的工作。 startElement(String namespaceURI, String localName, String qName, Attributes atts)當讀到一個開始標簽的時候,會觸發(fā)這個方法。namespaceURI就是命名空間,localName是不帶命名空間前綴的標簽名,qName是帶命名空間前綴的標簽名。通過atts可以得到所有的屬性名和相應(yīng)的值。要注意的是SAX中一個重要的特點就是它的流式處理,當遇到一個標簽的時候,它并不會紀錄下以前所碰到的標簽,也就是說,在startElement()方法中,所有你所知道的信息,就是標簽的名字和屬性,至于標簽的嵌套結(jié)構(gòu),上層標簽的名字,是否有子元屬等等其它與結(jié)構(gòu)相關(guān)的信息,都是不得而知的,都需要你的程序來完成。這使得SAX在編程處理上沒有DOM來得那么方便。 endElement(String uri, String localName, String name)這個方法和上面的方法相對應(yīng),在遇到結(jié)束標簽的時候,調(diào)用這個方法。 characters(char[] ch, int start, int length)這個方法用來處理在XML文件中讀到的內(nèi)容,第一個參數(shù)用于存放文件的內(nèi)容,后面兩個參數(shù)是讀到的字符串在這個數(shù)組中的起始位置和長度,使用new String(ch,start,length)就可以獲取內(nèi)容。(2)使用DOM讀取XML文件 除了可以使用 SAX解析XML文件,大家也可以使用熟悉的DOM來解析XML文件。 DOM解析XML文件時,會將XML文件的所有內(nèi)容讀取到內(nèi)存中,然后允許您使用DOM API遍歷XML樹、檢索所需的數(shù)據(jù)。使用DOM操作XML的代碼看起來比較直觀,并且,在某些方面比基于SAX的實現(xiàn)更加簡單。但是,因為DOM需要將XML文件的所有內(nèi)容讀取到內(nèi)存中,所以內(nèi)存的消耗比較大,特別對于運行Android的移動設(shè)備來說,因為設(shè)備的資源比較寶貴,所以建議還是采用SAX來解析XML文件,當然,如果XML文件的內(nèi)容比較小采用DOM是可行的。(3)使用Pull解析器讀取XML文件 除了可以使用 SAX和DOM解析XML文件,大家也可以使用Android內(nèi)置的Pull解析器解析XML文件。 Pull解析器的運行方式與 SAX 解析器相似。它提供了類似的事件,如:開始元素和結(jié)束元素事件,()可以進入下一個元素并觸發(fā)相應(yīng)事件。事件將作為數(shù)值代碼被發(fā)送,因此可以使用一個switch對感興趣的事件進行處理。當元素開始解析時,()方法可以獲取下一個Text類型元素的值[3]。 本章小結(jié)本章對Android平臺的特征、架構(gòu)以及Android應(yīng)用的構(gòu)成和工作機制進行了詳細的分析。對于Android應(yīng)用程序來說,主要由Activity、Intent Receiver、Service和Content Provider四部分組成,但并不是對于每一個應(yīng)用程序,這四部分都是必須的。Activity是應(yīng)用程序中最重要的一種構(gòu)造塊,我們對其進行了詳細的分析,包括Activity的生命周期以及Activity之間的切換。第三章 開發(fā)環(huán)境介紹及構(gòu)建Android平臺為開發(fā)者提供了源碼開放的軟件開發(fā)包( SDK) ,它包含了使用Java語言開發(fā)Android平臺應(yīng)用的必要工具和組件(API) 。進行開發(fā)前先要建立合適的開發(fā)環(huán)境,其中基于Java的整合型可擴展平臺Eclipse是我們的首選。搭建環(huán)境所需要的軟件:l 操作系統(tǒng):Windows XP 或 Linux;l 軟件包:Android SDK,ADT;l IDE環(huán)境:Eclipse IDE + ADT ;l JDK:Java Runtime Environmt,JDK;安裝步驟:l 安裝JDK 然后配置環(huán)境變量;l 安裝Eclipse;l Android SDK配置/安裝:首先在,選擇相應(yīng)的系統(tǒng)進行安裝;l 安裝Android ADT插件:,在導(dǎo)航菜單中選擇HelpInstall New Software。在work with中輸入 ADD 然后輸入name,隨便取個有意義的,都選中安裝,完畢后重啟Eclipse;,選擇WindowsPreferencesAndroid,選擇Android SDK的位置[6]。第四章 需求分析RSS閱讀器扮演著與用戶直接交互并且提供服務(wù)的重要角色,它需要提供良好的用戶體驗,方便用戶操作,接收用戶的操作并把這些操作轉(zhuǎn)換成相應(yīng)的命令,采用用戶活動的方式完成各個服務(wù)的邏輯流程。本軟件主要解析騰訊和新浪提供的RSS Reed,其功能需求主要包括以下幾方面內(nèi)容,業(yè)務(wù)流程如圖41所示:(1)不同View之間的切換功能用戶通過手指的左右滑動來切換不同的視圖,方便用戶在不同視圖中查看信息和行操作。如圖42所示:(2)新浪Rss功能根據(jù)頻道名稱解析出這個頻道所包含的內(nèi)容并記錄,在根據(jù)這些內(nèi)容鏈接網(wǎng)絡(luò),通過HtmlParse的解析獲取相應(yīng)的內(nèi)容并保存;切換不同的頻道。如圖43所示:圖41 業(yè)務(wù)流程圖圖42 主界面用例圖圖43 新浪Rss用例圖(3)騰訊Rss功能該功能與新浪Rss相似,如圖44所示:圖44 騰訊Rss用用例圖(4)歷史記錄瀏覽功能記錄用戶瀏覽過的內(nèi)容,以方便用戶再次查看,這樣節(jié)省GPRS流量,減少用戶的損失;當用戶不需要這些記錄的時候可以清除掉這些記錄。如圖45所示:(5)收藏功能當用戶對一些文章感興趣時,可以將其添加至收藏列表;當用戶不需要某條記錄是可將其從收藏列表中刪除。如圖46所示:(6)本地緩存在瀏覽新聞和文章的過程中會下載圖片和文字內(nèi)容,將這些內(nèi)容保存值本地,在下次瀏覽同樣的內(nèi)容的時候就不用再次鏈接網(wǎng)絡(luò),直接在本地讀取就可,節(jié)省用戶的GPRS流量;當手機存儲空間不足時用戶可以選擇刪除這些本地緩存。圖 45 瀏覽記錄用例圖圖46 我的收藏用例圖(7)異步更新訪問網(wǎng)絡(luò)比較耗時間,顯示一些提示信息向用戶表示本軟件正在運行,并異步加載數(shù)據(jù),更新UI界面。手機軟件要有良好的用戶體驗,良好的用戶體驗體現(xiàn)在以下幾個方面:(1)界面友好用戶界面要簡潔直觀,設(shè)計合理,方便用戶操作,讓用戶操作起來比較舒服,并且UI視覺效應(yīng)好。(2)快速響應(yīng)快速處理用戶的輸入或請求,對于需要長時間處理的部分,在其處理時可以給用戶一個提示,告知用戶該軟件正在運行。(3)無縫性一個常見的無縫問題就是一個應(yīng)用的后臺進程(如service或broadcast receiver)對某事件作出響應(yīng)而彈出對話框,這看起來仿佛并無大礙,特別是當你在模擬器上單獨地構(gòu)建和測試你的應(yīng)用時。然而,當你的應(yīng)用在真正的設(shè)備上運行,后臺線程顯示對話框時,你的應(yīng)用當時可能沒有獲得用戶焦點。這就會出現(xiàn)你的應(yīng)用會在活動的應(yīng)用后面顯示對話框,或者從當前應(yīng)用中獲得焦點并顯示對話框的情況,而管論當時用戶正在做什么(如正在打電話等)。那樣的行為可能對你的應(yīng)用或用戶不起作用。為了避免這些問題,你的應(yīng)用應(yīng)該利用適當?shù)南到y(tǒng)資源——Notification類,來通知用戶。利用通知,你的應(yīng)用可以通過在狀態(tài)條上顯示一個圖標來通知用戶事件已經(jīng)發(fā)生,而非獲得焦點和打斷用戶[1]。(1)Rss Feed的存儲,主要是騰訊和新浪數(shù)據(jù)源的存儲,(2)收藏夾內(nèi)容的管理,主要是對收藏內(nèi)容的添加和刪除操作。(3)圖片資源的緩存,將下載的圖片資源存儲在手機自帶的內(nèi)存或者存儲在SDCARD中;用戶也可以清楚這些緩存資源;使用緩存資源來節(jié)省GPRS流量。(4)記錄用戶瀏覽過的內(nèi)容,方便用戶再次查看Android安全中的一個重要的設(shè)計點是在默認的情況下應(yīng)用沒有權(quán)限執(zhí)行對其他應(yīng)用程序,操作系統(tǒng)或用戶的有害操作。這些操作包括讀取用戶的隱私數(shù)據(jù),訪問網(wǎng)絡(luò),保持設(shè)備活動等等,應(yīng)用程序的進程是一個安全的黑盒子,在沒有給它權(quán)限的時候它不能干擾其他應(yīng)用程序。第五章 Android數(shù)據(jù)庫的設(shè)計數(shù)據(jù)結(jié)構(gòu)組織和數(shù)據(jù)庫文件的設(shè)計要根據(jù)不同的用途,使用要求等來決定數(shù)據(jù)整體組織形式等一些問題。數(shù)據(jù)庫中的數(shù)據(jù)按一定數(shù)據(jù)模型組織、描述和存儲,具有較小的重復(fù)度。較高的數(shù)據(jù)獨立性和易擴展性,并且可以再被一定范圍內(nèi)的各種用戶共享。在涉及數(shù)據(jù)庫的軟件開發(fā)中,需要根據(jù)有待解決的問題的性質(zhì)、規(guī)模,以及所采用的前端程序創(chuàng)建工具等,做出合適的數(shù)據(jù)庫類型選擇。 數(shù)據(jù)庫及字段屬性設(shè)計本項目中的數(shù)據(jù)庫設(shè)計比較簡單,主要涉及兩個表:mylove和history;Mylove主要是存儲收藏的內(nèi)容,history主要存儲歷史瀏覽記錄,這兩個表的字段一樣,下面介紹history的字段,如表51所示:字段說明:id 記錄的id號,title 內(nèi)容的標題,link 內(nèi)容的URL,body 內(nèi)容主體。表51 history字段表屬性數(shù)據(jù)類型允許空主鍵IdINTEGERNOT nullPrimary keyTitleTEXTLinkTEXTBodyTEXTMylove與history相同,就不重復(fù)介紹了。這里將介紹如何進行Android數(shù)據(jù)庫的連接,Android中自帶的SQLite數(shù)據(jù)庫是十分小型的數(shù)據(jù)庫,這樣正適合Android這種移動平臺使用。Android數(shù)據(jù)庫的存儲位置在data/data/項目文件夾/databases/目錄下,Android是利用ContentProvider作為內(nèi)容提供商,SQLiteOpenHelper數(shù)據(jù)庫幫助類來進行對數(shù)據(jù)庫的創(chuàng)建和操作。()方法直接對數(shù)據(jù)庫進行操作。程序中數(shù)據(jù)庫的類為RssDB extend SQLiteOpenHelper(繼承關(guān)系)。Android提供了標準的數(shù)據(jù)庫創(chuàng)建方式,繼承SQLiteOpenHelper,實現(xiàn)onCreate和onUpgrade兩個方法,有個好處就是便于數(shù)據(jù)庫版本的升級,連接數(shù)據(jù)庫的算法如下: public RssDB(Context context) {//創(chuàng)建數(shù)據(jù)庫 super(context, DB_NAME, null, DB_VERTION)。 } public void onCreate(SQLiteDatabase db) { //類創(chuàng)建是調(diào)用,在這里主要創(chuàng)建table} public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //版本升級時調(diào)用}數(shù)據(jù)庫創(chuàng)建不成功會拋出FileNodFindException異常。 數(shù)據(jù)庫操作打開數(shù)據(jù)庫操作:db = ();this表示RSSDB執(zhí)行sql語句:(sql)。插入數(shù)據(jù):()刪除數(shù)據(jù):()。更新數(shù)據(jù):()查詢數(shù)據(jù):()。當執(zhí)行完這些操作后,一定要關(guān)閉數(shù)據(jù)庫連接:()。這些操作的具體使用方法可參照Android SDK。 第六章 系統(tǒng)設(shè)計與實現(xiàn) Rss資源的收集和分析目前有很多門戶網(wǎng)站支持Rss訂閱,例如新浪,騰訊,搜狐,百度等,本軟件主要收集了新浪和騰訊的Rss 站點,例如新浪所提供的站點分為:新聞中心,體育新聞,科技新聞,財經(jīng)新聞,軍事新聞等;新聞中心中包括各個站點的鏈接,例如新聞中心中的新聞要聞的Rss地址是,體育新聞中的國際足壇的Rss地址是。新浪具體的Rss站點的詳細信息可參考這個鏈接:,里面有詳細的分類和各分類的Rss地址。騰訊的Rss站點和新浪的類似,詳細信息可參考這個鏈接:。Rss有固定的格式,截取新浪新聞的新聞要聞的部分內(nèi)容:?xml version= encoding=utf8? ………. item title ![CDATA[[科技]中國互聯(lián)網(wǎng)5月批發(fā)IPO 富豪與泡沫齊飛(05/05 10:58)]] /title link:///link author/author guid:///guid category ![CDATA[]] /category pubDateThu, 5 May 2011 02:58:57 GMT/pubDate ments/ments description ![CDATA[  侯繼勇 北京報道5月4日晚,人人網(wǎng)在北京國貿(mào)三期地下一層中國大宴會廳舉行慶功宴。除了人人網(wǎng)留守國內(nèi)的高管,主要參會人員是媒體記者?;顒右呀?jīng)格式化:有領(lǐng)導(dǎo)講話,有晚宴,有抽獎,最后是人人網(wǎng)創(chuàng)始人陳一舟的視頻連線――接受國內(nèi)媒體記者采訪,卻會回避所有尖銳....]] /description /item item title ![CDATA[[科技]福布斯:人人公司加入中國高價科技股俱樂部(05/05 10:56)]] /title link:///link author/a
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1