《Android模塊化項目實戰(zhàn)》02 閃屏導航寫字字帖_第1頁
《Android模塊化項目實戰(zhàn)》02 閃屏導航寫字字帖_第2頁
《Android模塊化項目實戰(zhàn)》02 閃屏導航寫字字帖_第3頁
《Android模塊化項目實戰(zhàn)》02 閃屏導航寫字字帖_第4頁
《Android模塊化項目實戰(zhàn)》02 閃屏導航寫字字帖_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目二閃屏導航學習目標通過U酒保項目閃屏導航模塊的實現(xiàn),學習如何獲取手機信息和軟件版本信息,了解軟件的更新原理,掌握軟件下載機制,在任務(wù)實現(xiàn)過程中:了解Android原生動作使用方法了解TCP/IP通信協(xié)議掌握HttpURLConnection使用方法掌握PULL解析方法任務(wù)路徑情景導入開發(fā)人員在U酒保項目開發(fā)過程中,通過閃屏導航模塊編寫,實現(xiàn)了軟件的實時更新,為用戶帶來更好的體驗效果,引導用戶熟練使用該軟件。本項目實現(xiàn)了軟件更新,Activity動態(tài)切換等功能。講解了Android原生動作的用法、TCP/IP協(xié)議相關(guān)知識、使用HttpURLConnection實現(xiàn)軟件更新以及PULL解析技術(shù)等。Android原生動作Android原生動作由Google公司發(fā)布,不經(jīng)過第三方修改。在項目開發(fā)過程中,需創(chuàng)建隱式Intent啟動應(yīng)用程序內(nèi)的Activity或SubActivity,并使用其類中的靜態(tài)字符串常量(原生動作)。如表2.1所示。

原生動作簡介Android原生動作(1)Intent動作機制簡介。Intent用于應(yīng)用程序之間的通訊和應(yīng)用程序內(nèi)部的Activity/Service之間的交互。因此,可將Intent理解為不同組件之間通信的“媒介”。它可以啟動一個Activity或啟動一個服務(wù)(Service),還可發(fā)起一個廣播(Broadcasts)。Intent通過以上方式負責對應(yīng)用中單次操作的動作、動作涉及的數(shù)據(jù)、附加數(shù)據(jù)進行描述。Android根據(jù)該Intent的描述,負責找到對應(yīng)的組件,將Intent傳遞給調(diào)用的組件,完成組件調(diào)用。Intent動作機制Android原生動作實現(xiàn)照片選擇器demo,使用原生動作調(diào)用系統(tǒng)攝像頭拍照,并將照片顯示到界面,還可進行照片選擇,實現(xiàn)步驟如下所示:復制圖片工具類到如圖2.8所示路徑中。初始化界面,實現(xiàn)“選擇拍照或相冊”按鈕單擊事件,并彈出拍照相冊選擇框,效果如圖2.9所示,具體代碼如CORE0201所示。選擇拍照或相冊,調(diào)用Android原生動作進入系統(tǒng)拍照或相冊界面,進行拍照并顯示到主界面中或選擇相冊照片顯示到主界面,效果如圖2.10至2.12所示,具體如代碼CORE0202所示。原生動作實現(xiàn)步驟TCP是一種可靠的連接傳送服務(wù)。在傳送過程中,主機與交換機之間通過比特流通信(即數(shù)據(jù)作為無結(jié)構(gòu)字節(jié)流)建立會話,其過程分以下三個階段:通過TCP傳輸?shù)淖止?jié)流指定順序號,獲得可靠性。TCP使用IP提供的網(wǎng)絡(luò)互聯(lián)功能進行穩(wěn)定的數(shù)據(jù)傳輸。IP不斷將報文傳輸?shù)骄W(wǎng)絡(luò)上,TCP負責確認報文是否上傳。在協(xié)同IP操作中TCP負責握手過程、報文管理、流量控制、錯誤檢測及處理。TCP/IP簡介TCP/IPTCP/IP的可靠性可以從以下六個方面體現(xiàn)。(1)應(yīng)用程序被分割為TCP認為最合適發(fā)送的數(shù)據(jù)塊,由TCP傳遞給IP的信息單位,稱為報文段或段(segment)。(2)TCP發(fā)出一個報文段后,會啟動一個定時器,等待目的端確認收到報文段。如不能及時收到確認,將重發(fā)該報文段。當TCP收到發(fā)自TCP連接另一端數(shù)據(jù)時,將發(fā)送一個確認。TCP有延遲確認的功能,此功能未打開時是立即確認,打開后,由定時器觸發(fā)確認時間點。TCP/IP可靠性TCP/IP(3)TCP將保持首部和數(shù)據(jù)的檢驗和。是一個端到端的檢驗和,目的是檢測數(shù)據(jù)在傳輸過程中發(fā)生變化。如果收到報文段的檢驗和有差錯,TCP將丟棄這個報文段并且不確認收到此報文段。(4)TCP報文段作為IP數(shù)據(jù)報傳輸,而IP數(shù)據(jù)報的到達可能會失序,因此TCP報文段的到達也可能會失序。TCP將對收到的數(shù)據(jù)進行重新排序,以正確的順序交給應(yīng)用層。TCP/IP可靠性TCP/IP(5)IP數(shù)據(jù)報會發(fā)生重復,TCP的接收端會丟棄重復數(shù)據(jù)。(6)TCP可提供流量控制,TCP連接的每個對象都有固定大小的緩沖空間。TCP的接收端只允許另一端發(fā)送接收端緩沖區(qū)所能接納的數(shù)據(jù)。這將防止較快主機導致較慢主機的緩沖區(qū)溢出。TCP/IP可靠性TCP/IPTCP首部長度單位為4字節(jié),可表示的最大十進制值是15,該字段的單位是32位字節(jié)。當IP首部長度為1111(就是十進制15),首部長度達到最大值60字節(jié)。TCP首部結(jié)構(gòu)如下表2.2所示。TCP首部結(jié)構(gòu)TCP/IPHTTP頭字段指在HTTP請求和回復消息中協(xié)議頭部分的組件。它定義了某個HTTP事務(wù)中的操作參數(shù)。當建立HttpURLConnection和遠程資源連接時,程序可以通過如表2.3所示方法設(shè)置請求頭字段。HttpURLConnectionHTTP頭字段簡介通過設(shè)置請求頭字段建立遠程資源連接后,程序可使用如表2.4所示方法訪問頭字段和內(nèi)容。HttpURLConnectionHTTP頭字段簡介訪問頭字段后,可以使用如表2.5所示方法獲取特定響應(yīng)頭字段值。HttpURLConnectionHTTP頭字段簡介URL對象是統(tǒng)一資源定位符,由協(xié)議名、主機、端口和資源組成,是互聯(lián)網(wǎng)上標準資源的地址。資源可以是簡單的文件或目錄,也可以是復雜對象的引用?;ヂ?lián)網(wǎng)上每個文件都有唯一的URL。URL請求分為兩類:GET請求和POST請求。GET請求可獲取靜態(tài)頁面,將參數(shù)放在URL字串后。POST的參數(shù)不放在URL字串中,而是放在HTTP請求的正文中。HttpURLConnectionURL簡介HttpURLConnection繼承了URLConnection,URL可傳給構(gòu)造器String類型的參數(shù)生成指向特定地址的URL實例。HttpURLConnection主要用于通過HTTP協(xié)議向服務(wù)器發(fā)送請求,并可以獲取服務(wù)器返回的數(shù)據(jù)。HttpURLConnection類沒有公開的構(gòu)造方法,但可通過.URL的openConnection()方法獲取一個URLConnection的實例,每個HttpURLConnection都可用于生成單個請求,請求后在HttpURLConnection的InputStream或OutputStream上調(diào)用close()方法釋放網(wǎng)絡(luò)資源。HttpURLConnection請求流程如圖2.13所示。HttpURLConnectionHttpURLConnection簡介創(chuàng)建并獲取URL地址,建立HttpURLConnection對象,具體代碼如CORE0203所示。設(shè)置HttpURLConnection為POST請求方式,判斷httpUrlConnection的讀入方式,并連接服務(wù)器。具體代碼如CORE0204所示。建立URLConnection連接,具體代碼如CORE0205所示。創(chuàng)建輸出流對象,寫入數(shù)據(jù),發(fā)送HttpURLConnection請求,具體代碼如CORE0206所示。HttpURLConnection獲取響應(yīng),具體代碼如CORE0207所示。將接受到的信息轉(zhuǎn)換位字符串,并輸出結(jié)果。具體代碼如CORE0208所示。HttpURLConnectionHttpURLConnection實現(xiàn)步驟XML(可拓展標記語言)提供描述結(jié)構(gòu)化數(shù)據(jù)的方法是一種簡單、與平臺無關(guān)并被廣泛采用的標準。XML相對于HTML的優(yōu)點是它將用戶界面與結(jié)構(gòu)化數(shù)據(jù)分隔開來。使得集成來自不同源的數(shù)據(jù)成為可能。客戶信息、訂單、研究結(jié)果、賬單付款、病歷、目錄數(shù)據(jù)及其他信息都可以轉(zhuǎn)換為XML。與控制數(shù)據(jù)的顯示和外觀的HTML標記不同,XML標記用于定義數(shù)據(jù)本身的結(jié)構(gòu)和數(shù)據(jù)類型。PULL解析XML簡介Android移動設(shè)備資源寶貴,內(nèi)存有限,根據(jù)不同需求選擇以下技術(shù)來解析XML,有利于提高訪問的速度。PULL解析器的運行方式基于事件模式,PULL在解析過程中需自己獲取產(chǎn)生的時間并作出相應(yīng)的操作。PULL解析器具有小巧輕便、解析速度快、簡單易用等特點,適用于Android移動設(shè)備,Android系統(tǒng)內(nèi)部使用PULL解析器解析各種XML。PULL解析PULL簡介DOM解析器具有簡單、直觀等特點。在處理XML文件時,將XML文件解析成樹狀結(jié)構(gòu)并放入內(nèi)存中進行處理。在XML文件較小時,可選擇該解析器。SAX解析器是以事件作為解析XML文件的模式,它將XML文件轉(zhuǎn)化成一系列的事件,由不同的事件處理器來決定如何處理。XML文件較大時,選擇SAX技術(shù)較為合理。SAX技術(shù)可高效利用Android有限的內(nèi)存資源,并且Android提供了傳統(tǒng)的SAX使用方法以及便捷的SAX包裝器。PULL解析PULL簡介XMLPULL在解析過程中返回數(shù)字,需要獲取產(chǎn)生的事件,并進行相關(guān)操作如表2.6所示:PULL解析PULL解析器工作原理及方法PULL提供了開始元素和結(jié)束元素。當某個元素開始時,可以調(diào)用parser.nextText從XML文檔中提取所有字符數(shù)據(jù)。當解析到文檔結(jié)束時,自動生成EndDocument事件,常用的XMLPULL接口和類如表2.7所示。PULL解析PULL解析器工作原理及方法使用表2.7所示接口實現(xiàn)PULL解析XML文件,效果如圖2.15所示,步驟如下:PULL解析PULL解析器工作原理及方法創(chuàng)建parseXMLWithPull()解析XML文件,設(shè)置輸入內(nèi)容,并獲取解析事件,具體代碼如CORE0209所示。設(shè)置輸入內(nèi)容,具體代碼如CORE0210所示。獲取當前解析時間,返回數(shù)字,具體代碼如CORE0211所示。保存內(nèi)容,具體代碼如CORE0212所示。判斷是否結(jié)束返回,并獲取START_TAG開始解析XML,具體代碼如CORE0213所示。用nextText()獲取節(jié)點內(nèi)具體內(nèi)容,具體代碼如CORE0214所示。獲取結(jié)束解析標簽END_TAG,具體代碼如CORE0215所示。運行項目,實現(xiàn)如圖2.15所示效果。PULL解析PULL解析器工作原理及方法通過以下步驟實現(xiàn)U酒保的閃屏導航模塊,具體步驟如下所示。第一步:將UJB_01導入工程,在其基礎(chǔ)上進一步實現(xiàn)UJB項目閃屏導航模塊。首先點擊“OpenanexistingAndroidStudioproject”打開磁盤路徑查找所需項目并導入,如圖2.15、圖2.16所示。實現(xiàn)如圖2.17所示結(jié)果圖。第二步:獲取上下文、配置文件、網(wǎng)絡(luò)管理器以及當前軟件版本號,并從服務(wù)器獲取最新版本號進行比對,如代碼CORE0216所示。任務(wù)實施第三步:如果軟件不需要更新,進行“第一次”進入軟件判斷,如果是第一次安裝,則進入導航界面,否則進入主界面,并設(shè)置閃屏動畫,如代碼CORE0217所示。效果如圖2.18所示。第四步:判斷當前網(wǎng)絡(luò)連接狀態(tài),如果沒有設(shè)置網(wǎng)絡(luò)時,進行網(wǎng)絡(luò)設(shè)置。如代碼CORE0218所示,效果如圖2.19所示。第五步:如果當前版本號小于服務(wù)器獲取版本號,實現(xiàn)下載提示框功能,如代碼CORE0219所示,效果如圖2.20所示。任務(wù)實施第六步:判斷是否有SD卡,并獲取下載路徑,通過網(wǎng)絡(luò)實現(xiàn)APK下載功能,并安裝,如代碼CORE0220所示,效果如圖2.21所示。第七步:通過for循環(huán)添加導航圖片,實現(xiàn)導航界面初始化,如代碼CORE0221所示。第八步:創(chuàng)建適配器,將背景圖片在ViewPager中進行填充,如代碼CORE0222所示。第九步:當滑動到最后一個導航界面時,顯示進入U酒保主界面按鈕,如代碼CORE0223所示。效果如圖2.22所示。第十步:點擊按鈕將信息傳到SharedPreferences中進行存儲,進入主界面,如代碼CORE0224所示。第十一步:運行項目,實現(xiàn)效果如圖2.3-2.6。任務(wù)實施本項目介紹了U酒保閃屏導航模塊的實現(xiàn),通過對本項目的學習可以了解Android原生動作、

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論