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

正文內(nèi)容

基于android平臺(tái)的rss閱讀器的設(shè)計(jì)與開發(fā)(編輯修改稿)

2024-12-13 22:12 本頁(yè)面
 

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