![《Android模塊化項(xiàng)目實(shí)戰(zhàn)》02 閃屏導(dǎo)航寫字字帖_第1頁](http://file4.renrendoc.com/view/fce22aa9698c0b86b552efe1cd090fac/fce22aa9698c0b86b552efe1cd090fac1.gif)
![《Android模塊化項(xiàng)目實(shí)戰(zhàn)》02 閃屏導(dǎo)航寫字字帖_第2頁](http://file4.renrendoc.com/view/fce22aa9698c0b86b552efe1cd090fac/fce22aa9698c0b86b552efe1cd090fac2.gif)
![《Android模塊化項(xiàng)目實(shí)戰(zhàn)》02 閃屏導(dǎo)航寫字字帖_第3頁](http://file4.renrendoc.com/view/fce22aa9698c0b86b552efe1cd090fac/fce22aa9698c0b86b552efe1cd090fac3.gif)
![《Android模塊化項(xiàng)目實(shí)戰(zhàn)》02 閃屏導(dǎo)航寫字字帖_第4頁](http://file4.renrendoc.com/view/fce22aa9698c0b86b552efe1cd090fac/fce22aa9698c0b86b552efe1cd090fac4.gif)
![《Android模塊化項(xiàng)目實(shí)戰(zhàn)》02 閃屏導(dǎo)航寫字字帖_第5頁](http://file4.renrendoc.com/view/fce22aa9698c0b86b552efe1cd090fac/fce22aa9698c0b86b552efe1cd090fac5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目二閃屏導(dǎo)航學(xué)習(xí)目標(biāo)通過U酒保項(xiàng)目閃屏導(dǎo)航模塊的實(shí)現(xiàn),學(xué)習(xí)如何獲取手機(jī)信息和軟件版本信息,了解軟件的更新原理,掌握軟件下載機(jī)制,在任務(wù)實(shí)現(xiàn)過程中:了解Android原生動(dòng)作使用方法了解TCP/IP通信協(xié)議掌握HttpURLConnection使用方法掌握PULL解析方法任務(wù)路徑情景導(dǎo)入開發(fā)人員在U酒保項(xiàng)目開發(fā)過程中,通過閃屏導(dǎo)航模塊編寫,實(shí)現(xiàn)了軟件的實(shí)時(shí)更新,為用戶帶來更好的體驗(yàn)效果,引導(dǎo)用戶熟練使用該軟件。本項(xiàng)目實(shí)現(xiàn)了軟件更新,Activity動(dòng)態(tài)切換等功能。講解了Android原生動(dòng)作的用法、TCP/IP協(xié)議相關(guān)知識(shí)、使用HttpURLConnection實(shí)現(xiàn)軟件更新以及PULL解析技術(shù)等。Android原生動(dòng)作Android原生動(dòng)作由Google公司發(fā)布,不經(jīng)過第三方修改。在項(xiàng)目開發(fā)過程中,需創(chuàng)建隱式Intent啟動(dòng)應(yīng)用程序內(nèi)的Activity或SubActivity,并使用其類中的靜態(tài)字符串常量(原生動(dòng)作)。如表2.1所示。
原生動(dòng)作簡介Android原生動(dòng)作(1)Intent動(dòng)作機(jī)制簡介。Intent用于應(yīng)用程序之間的通訊和應(yīng)用程序內(nèi)部的Activity/Service之間的交互。因此,可將Intent理解為不同組件之間通信的“媒介”。它可以啟動(dòng)一個(gè)Activity或啟動(dòng)一個(gè)服務(wù)(Service),還可發(fā)起一個(gè)廣播(Broadcasts)。Intent通過以上方式負(fù)責(zé)對應(yīng)用中單次操作的動(dòng)作、動(dòng)作涉及的數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述。Android根據(jù)該Intent的描述,負(fù)責(zé)找到對應(yīng)的組件,將Intent傳遞給調(diào)用的組件,完成組件調(diào)用。Intent動(dòng)作機(jī)制Android原生動(dòng)作實(shí)現(xiàn)照片選擇器demo,使用原生動(dòng)作調(diào)用系統(tǒng)攝像頭拍照,并將照片顯示到界面,還可進(jìn)行照片選擇,實(shí)現(xiàn)步驟如下所示:復(fù)制圖片工具類到如圖2.8所示路徑中。初始化界面,實(shí)現(xiàn)“選擇拍照或相冊”按鈕單擊事件,并彈出拍照相冊選擇框,效果如圖2.9所示,具體代碼如CORE0201所示。選擇拍照或相冊,調(diào)用Android原生動(dòng)作進(jìn)入系統(tǒng)拍照或相冊界面,進(jìn)行拍照并顯示到主界面中或選擇相冊照片顯示到主界面,效果如圖2.10至2.12所示,具體如代碼CORE0202所示。原生動(dòng)作實(shí)現(xiàn)步驟TCP是一種可靠的連接傳送服務(wù)。在傳送過程中,主機(jī)與交換機(jī)之間通過比特流通信(即數(shù)據(jù)作為無結(jié)構(gòu)字節(jié)流)建立會(huì)話,其過程分以下三個(gè)階段:通過TCP傳輸?shù)淖止?jié)流指定順序號(hào),獲得可靠性。TCP使用IP提供的網(wǎng)絡(luò)互聯(lián)功能進(jìn)行穩(wěn)定的數(shù)據(jù)傳輸。IP不斷將報(bào)文傳輸?shù)骄W(wǎng)絡(luò)上,TCP負(fù)責(zé)確認(rèn)報(bào)文是否上傳。在協(xié)同IP操作中TCP負(fù)責(zé)握手過程、報(bào)文管理、流量控制、錯(cuò)誤檢測及處理。TCP/IP簡介TCP/IPTCP/IP的可靠性可以從以下六個(gè)方面體現(xiàn)。(1)應(yīng)用程序被分割為TCP認(rèn)為最合適發(fā)送的數(shù)據(jù)塊,由TCP傳遞給IP的信息單位,稱為報(bào)文段或段(segment)。(2)TCP發(fā)出一個(gè)報(bào)文段后,會(huì)啟動(dòng)一個(gè)定時(shí)器,等待目的端確認(rèn)收到報(bào)文段。如不能及時(shí)收到確認(rèn),將重發(fā)該報(bào)文段。當(dāng)TCP收到發(fā)自TCP連接另一端數(shù)據(jù)時(shí),將發(fā)送一個(gè)確認(rèn)。TCP有延遲確認(rèn)的功能,此功能未打開時(shí)是立即確認(rèn),打開后,由定時(shí)器觸發(fā)確認(rèn)時(shí)間點(diǎn)。TCP/IP可靠性TCP/IP(3)TCP將保持首部和數(shù)據(jù)的檢驗(yàn)和。是一個(gè)端到端的檢驗(yàn)和,目的是檢測數(shù)據(jù)在傳輸過程中發(fā)生變化。如果收到報(bào)文段的檢驗(yàn)和有差錯(cuò),TCP將丟棄這個(gè)報(bào)文段并且不確認(rèn)收到此報(bào)文段。(4)TCP報(bào)文段作為IP數(shù)據(jù)報(bào)傳輸,而IP數(shù)據(jù)報(bào)的到達(dá)可能會(huì)失序,因此TCP報(bào)文段的到達(dá)也可能會(huì)失序。TCP將對收到的數(shù)據(jù)進(jìn)行重新排序,以正確的順序交給應(yīng)用層。TCP/IP可靠性TCP/IP(5)IP數(shù)據(jù)報(bào)會(huì)發(fā)生重復(fù),TCP的接收端會(huì)丟棄重復(fù)數(shù)據(jù)。(6)TCP可提供流量控制,TCP連接的每個(gè)對象都有固定大小的緩沖空間。TCP的接收端只允許另一端發(fā)送接收端緩沖區(qū)所能接納的數(shù)據(jù)。這將防止較快主機(jī)導(dǎo)致較慢主機(jī)的緩沖區(qū)溢出。TCP/IP可靠性TCP/IPTCP首部長度單位為4字節(jié),可表示的最大十進(jìn)制值是15,該字段的單位是32位字節(jié)。當(dāng)IP首部長度為1111(就是十進(jìn)制15),首部長度達(dá)到最大值60字節(jié)。TCP首部結(jié)構(gòu)如下表2.2所示。TCP首部結(jié)構(gòu)TCP/IPHTTP頭字段指在HTTP請求和回復(fù)消息中協(xié)議頭部分的組件。它定義了某個(gè)HTTP事務(wù)中的操作參數(shù)。當(dāng)建立HttpURLConnection和遠(yuǎn)程資源連接時(shí),程序可以通過如表2.3所示方法設(shè)置請求頭字段。HttpURLConnectionHTTP頭字段簡介通過設(shè)置請求頭字段建立遠(yuǎn)程資源連接后,程序可使用如表2.4所示方法訪問頭字段和內(nèi)容。HttpURLConnectionHTTP頭字段簡介訪問頭字段后,可以使用如表2.5所示方法獲取特定響應(yīng)頭字段值。HttpURLConnectionHTTP頭字段簡介URL對象是統(tǒng)一資源定位符,由協(xié)議名、主機(jī)、端口和資源組成,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址。資源可以是簡單的文件或目錄,也可以是復(fù)雜對象的引用。互聯(lián)網(wǎng)上每個(gè)文件都有唯一的URL。URL請求分為兩類:GET請求和POST請求。GET請求可獲取靜態(tài)頁面,將參數(shù)放在URL字串后。POST的參數(shù)不放在URL字串中,而是放在HTTP請求的正文中。HttpURLConnectionURL簡介HttpURLConnection繼承了URLConnection,URL可傳給構(gòu)造器String類型的參數(shù)生成指向特定地址的URL實(shí)例。HttpURLConnection主要用于通過HTTP協(xié)議向服務(wù)器發(fā)送請求,并可以獲取服務(wù)器返回的數(shù)據(jù)。HttpURLConnection類沒有公開的構(gòu)造方法,但可通過.URL的openConnection()方法獲取一個(gè)URLConnection的實(shí)例,每個(gè)HttpURLConnection都可用于生成單個(gè)請求,請求后在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實(shí)現(xiàn)步驟XML(可拓展標(biāo)記語言)提供描述結(jié)構(gòu)化數(shù)據(jù)的方法是一種簡單、與平臺(tái)無關(guān)并被廣泛采用的標(biāo)準(zhǔn)。XML相對于HTML的優(yōu)點(diǎn)是它將用戶界面與結(jié)構(gòu)化數(shù)據(jù)分隔開來。使得集成來自不同源的數(shù)據(jù)成為可能。客戶信息、訂單、研究結(jié)果、賬單付款、病歷、目錄數(shù)據(jù)及其他信息都可以轉(zhuǎn)換為XML。與控制數(shù)據(jù)的顯示和外觀的HTML標(biāo)記不同,XML標(biāo)記用于定義數(shù)據(jù)本身的結(jié)構(gòu)和數(shù)據(jù)類型。PULL解析XML簡介Android移動(dòng)設(shè)備資源寶貴,內(nèi)存有限,根據(jù)不同需求選擇以下技術(shù)來解析XML,有利于提高訪問的速度。PULL解析器的運(yùn)行方式基于事件模式,PULL在解析過程中需自己獲取產(chǎn)生的時(shí)間并作出相應(yīng)的操作。PULL解析器具有小巧輕便、解析速度快、簡單易用等特點(diǎn),適用于Android移動(dòng)設(shè)備,Android系統(tǒng)內(nèi)部使用PULL解析器解析各種XML。PULL解析PULL簡介DOM解析器具有簡單、直觀等特點(diǎn)。在處理XML文件時(shí),將XML文件解析成樹狀結(jié)構(gòu)并放入內(nèi)存中進(jìn)行處理。在XML文件較小時(shí),可選擇該解析器。SAX解析器是以事件作為解析XML文件的模式,它將XML文件轉(zhuǎn)化成一系列的事件,由不同的事件處理器來決定如何處理。XML文件較大時(shí),選擇SAX技術(shù)較為合理。SAX技術(shù)可高效利用Android有限的內(nèi)存資源,并且Android提供了傳統(tǒng)的SAX使用方法以及便捷的SAX包裝器。PULL解析PULL簡介XMLPULL在解析過程中返回?cái)?shù)字,需要獲取產(chǎn)生的事件,并進(jìn)行相關(guān)操作如表2.6所示:PULL解析PULL解析器工作原理及方法PULL提供了開始元素和結(jié)束元素。當(dāng)某個(gè)元素開始時(shí),可以調(diào)用parser.nextText從XML文檔中提取所有字符數(shù)據(jù)。當(dāng)解析到文檔結(jié)束時(shí),自動(dòng)生成EndDocument事件,常用的XMLPULL接口和類如表2.7所示。PULL解析PULL解析器工作原理及方法使用表2.7所示接口實(shí)現(xiàn)PULL解析XML文件,效果如圖2.15所示,步驟如下:PULL解析PULL解析器工作原理及方法創(chuàng)建parseXMLWithPull()解析XML文件,設(shè)置輸入內(nèi)容,并獲取解析事件,具體代碼如CORE0209所示。設(shè)置輸入內(nèi)容,具體代碼如CORE0210所示。獲取當(dāng)前解析時(shí)間,返回?cái)?shù)字,具體代碼如CORE0211所示。保存內(nèi)容,具體代碼如CORE0212所示。判斷是否結(jié)束返回,并獲取START_TAG開始解析XML,具體代碼如CORE0213所示。用nextText()獲取節(jié)點(diǎn)內(nèi)具體內(nèi)容,具體代碼如CORE0214所示。獲取結(jié)束解析標(biāo)簽END_TAG,具體代碼如CORE0215所示。運(yùn)行項(xiàng)目,實(shí)現(xiàn)如圖2.15所示效果。PULL解析PULL解析器工作原理及方法通過以下步驟實(shí)現(xiàn)U酒保的閃屏導(dǎo)航模塊,具體步驟如下所示。第一步:將UJB_01導(dǎo)入工程,在其基礎(chǔ)上進(jìn)一步實(shí)現(xiàn)UJB項(xiàng)目閃屏導(dǎo)航模塊。首先點(diǎn)擊“OpenanexistingAndroidStudioproject”打開磁盤路徑查找所需項(xiàng)目并導(dǎo)入,如圖2.15、圖2.16所示。實(shí)現(xiàn)如圖2.17所示結(jié)果圖。第二步:獲取上下文、配置文件、網(wǎng)絡(luò)管理器以及當(dāng)前軟件版本號(hào),并從服務(wù)器獲取最新版本號(hào)進(jìn)行比對,如代碼CORE0216所示。任務(wù)實(shí)施第三步:如果軟件不需要更新,進(jìn)行“第一次”進(jìn)入軟件判斷,如果是第一次安裝,則進(jìn)入導(dǎo)航界面,否則進(jìn)入主界面,并設(shè)置閃屏動(dòng)畫,如代碼CORE0217所示。效果如圖2.18所示。第四步:判斷當(dāng)前網(wǎng)絡(luò)連接狀態(tài),如果沒有設(shè)置網(wǎng)絡(luò)時(shí),進(jìn)行網(wǎng)絡(luò)設(shè)置。如代碼CORE0218所示,效果如圖2.19所示。第五步:如果當(dāng)前版本號(hào)小于服務(wù)器獲取版本號(hào),實(shí)現(xiàn)下載提示框功能,如代碼CORE0219所示,效果如圖2.20所示。任務(wù)實(shí)施第六步:判斷是否有SD卡,并獲取下載路徑,通過網(wǎng)絡(luò)實(shí)現(xiàn)APK下載功能,并安裝,如代碼CORE0220所示,效果如圖2.21所示。第七步:通過for循環(huán)添加導(dǎo)航圖片,實(shí)現(xiàn)導(dǎo)航界面初始化,如代碼CORE0221所示。第八步:創(chuàng)建適配器,將背景圖片在ViewPager中進(jìn)行填充,如代碼CORE0222所示。第九步:當(dāng)滑動(dòng)到最后一個(gè)導(dǎo)航界面時(shí),顯示進(jìn)入U(xiǎn)酒保主界面按鈕,如代碼CORE0223所示。效果如圖2.22所示。第十步:點(diǎn)擊按鈕將信息傳到SharedPreferences中進(jìn)行存儲(chǔ),進(jìn)入主界面,如代碼CORE0224所示。第十一步:運(yùn)行項(xiàng)目,實(shí)現(xiàn)效果如圖2.3-2.6。任務(wù)實(shí)施本項(xiàng)目介紹了U酒保閃屏導(dǎo)航模塊的實(shí)現(xiàn),通過對本項(xiàng)目的學(xué)習(xí)可以了解Android原生動(dòng)作、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)殖買賣的合同范本
- 2025企業(yè)年金基金托管合同范本
- 2025江蘇省建設(shè)工程造價(jià)咨詢合同(示范文本)
- 油罐安全合同范本
- 2025企業(yè)管理資料范本福建勞動(dòng)合同范本
- 2025衢州市衢江區(qū)高家鎮(zhèn)湖仁村物業(yè)用房及廠房租賃合同
- 汽車貨物運(yùn)輸合同協(xié)議書
- 2025【合同范本】農(nóng)村土地承包合同
- 2025“誰造誰有”林地使用合同書
- 貨物運(yùn)輸合同協(xié)議書模板
- 工程造價(jià)咨詢服務(wù)方案(技術(shù)方案)
- 整體租賃底商運(yùn)營方案(技術(shù)方案)
- 常用藥物作用及副作用課件
- 小學(xué)生作文方格紙A4紙直接打印版
- 老人心理特征和溝通技巧
- 幼兒阿拉伯?dāng)?shù)字描紅(0-100)打印版
- 標(biāo)桿地產(chǎn)集團(tuán) 研發(fā)設(shè)計(jì) 工程管理 品質(zhì)地庫標(biāo)準(zhǔn)研發(fā)成果V1.0
- TMS開發(fā)業(yè)務(wù)需求文檔
- 2023年1月浙江高考英語聽力試題及答案(含MP3+錄音原文)
- HI-IPDV10芯片產(chǎn)品開發(fā)流程V10宣課件
- 房產(chǎn)抵押注銷申請表
評論
0/150
提交評論