《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ù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

溫馨提示

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

評論

0/150

提交評論