這是一本Android網(wǎng)絡(luò)編程方面的專著,旨在幫助開(kāi)發(fā)者們高效地編寫出高質(zhì)量的Android網(wǎng)絡(luò)應(yīng)用。不僅系統(tǒng)講解了Android網(wǎng)絡(luò)編程的各項(xiàng)核心技術(shù)和功能模塊,通過(guò)多個(gè)案例解讀了Android網(wǎng)絡(luò)編程的方法和技巧,而且從源碼角度深入解析了Android核心網(wǎng)絡(luò)處理方法和關(guān)鍵應(yīng)用的實(shí)現(xiàn)原理,包含大量最佳實(shí)踐。 全書共11章,分為三個(gè)部分:概述篇(第1章)在介紹了Android開(kāi)發(fā)平臺(tái)后,重點(diǎn)講解了Android網(wǎng)絡(luò)程序的功能及開(kāi)發(fā)環(huán)境的配置,引領(lǐng)讀者走進(jìn)Android網(wǎng)絡(luò)編程的大門;實(shí)戰(zhàn)篇(第2~8章),詳細(xì)講解了TCP、UDP、HTTP等基本網(wǎng)絡(luò)協(xié)議在Android上的應(yīng)用,展示了使用Android處理JSON、SOAP、HTML、XML等數(shù)據(jù)的方法,講解了Android中的RSS編程、Email編程、OAuth認(rèn)證等,解析了Android中Locations、Maps、USB、Wi-Fi、Bluetooth、NFC等網(wǎng)絡(luò)模塊的編程,討論了Android中線程、數(shù)據(jù)存取、消息緩存、界面更新等的處理方法,探討了SIP、XMPP等協(xié)議在Android上的應(yīng)用;源碼分析篇(第9~11章)分析了Android中與HTML處理、網(wǎng)絡(luò)處理以及部分網(wǎng)絡(luò)應(yīng)用相關(guān)的源代碼,幫助讀者從底層原理上加深對(duì)相關(guān)知識(shí)點(diǎn)的理解。 作者簡(jiǎn)介 陳文 資深A(yù)ndroid開(kāi)發(fā)工程師,深入分析過(guò)Android系統(tǒng)的源代碼,對(duì)Android系統(tǒng)的底層原理有非常深入的認(rèn)識(shí),尤其是與網(wǎng)絡(luò)編程相關(guān)的功能模塊。精通XMPP協(xié)議和企業(yè)級(jí)云端系統(tǒng)的構(gòu)建,現(xiàn)從事移動(dòng)互聯(lián)網(wǎng)系統(tǒng)的框架設(shè)計(jì)和研發(fā)工作。此外,他對(duì)Java、HMTL 5、Web數(shù)據(jù)挖掘、個(gè)性化搜索引擎等技術(shù)也有一定的研究。
目錄: 序 前言 第一篇 概述篇 第1章 Android網(wǎng)絡(luò)編程概要2 1.1 Android簡(jiǎn)介2 1.1.1 Android的發(fā)展2 1.1.2 Android功能特性3 1.1.3 Android系統(tǒng)構(gòu)架4 1.2 Android網(wǎng)絡(luò)程序的功能6 1.2.1 通信功能6 1.2.2 及時(shí)分享6 1.2.3 個(gè)人管理6 1.2.4 娛樂(lè)游戲7 1.2.5 企業(yè)應(yīng)用7 1.3 設(shè)置Android開(kāi)發(fā)環(huán)境7 1.3.1 相關(guān)下載7 1.3.2 安裝ADT9 1.3.3 Hello World!11 1.4 網(wǎng)絡(luò)應(yīng)用實(shí)戰(zhàn)案例17 1.4.1 加載一個(gè)頁(yè)面17 1.4.2 下載一個(gè)頁(yè)面21 1.5 小結(jié)21 第二篇 實(shí)戰(zhàn)篇 第2章 Android基本網(wǎng)絡(luò)技術(shù)和編程實(shí)踐24 2.1 計(jì)算機(jī)網(wǎng)絡(luò)及其協(xié)議24 2.1.1 計(jì)算機(jī)網(wǎng)絡(luò)概述24 2.1.2 網(wǎng)絡(luò)協(xié)議概述25 2.1.3 IP、TCP和UDP協(xié)議26 2.2 在Android中使用TCP、UDP協(xié)議31 2.2.1 Socket基礎(chǔ)31 2.2.2 使用TCP通信34 2.2.3 使用UDP通信36 2.3 Socket實(shí)戰(zhàn)案例39 2.3.1 Socket聊天舉例39 2.3.2 FTP客戶端41 2.3.3 Telnet客戶端44 2.4 小結(jié)46 第3章 Android基本W(wǎng)eb技術(shù)和編程實(shí)踐47 3.1 HTTP協(xié)議47 3.1.1 HTTP簡(jiǎn)介47 3.1.2 實(shí)戰(zhàn)案例:基于HTTP協(xié)議的文件上傳51 3.2 Android中的HTTP編程57 3.2.1 HttpClient和URLConnection57 3.2.2 Post和Get在HttpClient的使用58 3.2.3 實(shí)戰(zhàn)案例:使用HttpClient和URLConnection訪問(wèn)維基百科60 3.3 Android處理JSON64 3.3.1 JSON簡(jiǎn)介64 3.3.2 JSON數(shù)據(jù)解析65 3.3.3 JSON打包67 3.3.4 實(shí)戰(zhàn)案例:JSON解析wikipedia內(nèi)容68 3.4 Android處理SOAP71 3.4.1 SOAP簡(jiǎn)介71 3.4.2 SOAP消息72 3.4.3 實(shí)戰(zhàn)案例:SOAP解析天氣服務(wù)74 3.5 Android對(duì)HTML的處理79 3.5.1 解析HTML79 3.5.2 HTML適配屏幕80 3.5.3 java script混合編程81 3.5.4 實(shí)戰(zhàn)案例:Android自定義打開(kāi)HTML頁(yè)面87 3.6小結(jié)91 第4章 Android常見(jiàn)網(wǎng)絡(luò)接口編程92 4.1 Android解析和創(chuàng)建XML92 4.1.1 XML簡(jiǎn)介92 4.1.2 DOM解析XML97 4.1.3 SAX解析XML102 4.1.4 PULL解析XML108 4.1.5 實(shí)戰(zhàn)案例:Android中創(chuàng)建XML110 4.2 Android訂閱RSS113 4.2.1 RSS簡(jiǎn)介113 4.2.2 實(shí)戰(zhàn)案例:簡(jiǎn)單RSS閱讀器115 4.3 Android Email編程122 4.3.1 Android發(fā)送Email122 4.3.2 實(shí)戰(zhàn)案例:Android下Email的Base64加密123 4.4 Android網(wǎng)絡(luò)安全125 4.4.1 Android網(wǎng)絡(luò)安全簡(jiǎn)介125 4.4.2 Android加密和解密127 4.4.3 實(shí)戰(zhàn)案例:Android應(yīng)用添加簽名133 4.5 OAuth認(rèn)證135 4.5.1 OAuth簡(jiǎn)介135 4.5.2 實(shí)戰(zhàn)案例:使用OAuth接口137 4.6 小結(jié)139 第5章 Android網(wǎng)絡(luò)模塊編程141 5.1 Android地圖和定位141 5.1.1 獲取map-api密鑰141 5.1.2 獲取位置144 5.1.3 實(shí)戰(zhàn)案例:利用MapView顯示地圖146 5.2 USB編程150 5.2.1 USB主從設(shè)備150 5.2.2 USB Accessory Mode151 5.2.3 USB Host Mode157 5.2.4 實(shí)戰(zhàn)案例:Android和Arduino交互159 5.3 Wi-Fi編程168 5.3.1 Android Wi-Fi相關(guān)類168 5.3.2 Android Wi-Fi基本操作171 5.3.3 實(shí)戰(zhàn)案例:使用Wi-Fi直連方式傳輸文件177 5.4 藍(lán)牙編程185 5.4.1 藍(lán)牙簡(jiǎn)介185 5.4.2 Android藍(lán)牙API分析185 5.4.3 Android藍(lán)牙基本操作187 5.4.4 實(shí)戰(zhàn)案例:藍(lán)牙連接192 5.5 NFC編程簡(jiǎn)介197 5.5.1 NFC技術(shù)簡(jiǎn)介197 5.5.2 NFC API簡(jiǎn)介198 5.5.3 NFC處理流程分析199 5.6 小結(jié)205 第6章 Android線程、數(shù)據(jù)存取、緩存和UI同步206 6.1 Android線程206 6.1.1 Android線程模型206 6.1.2 異步任務(wù)類211 6.1.3 實(shí)戰(zhàn)案例:利用AsyncTask實(shí)現(xiàn)多線程下載213 6.2 數(shù)據(jù)存取214 6.2.1 Shared Preferences數(shù)據(jù)存儲(chǔ)215 6.2.2 Internal Storage數(shù)據(jù)存儲(chǔ)216 6.2.3 External Storage數(shù)據(jù)存儲(chǔ)217 6.2.4 SQLite Databases數(shù)據(jù)存儲(chǔ)219 6.2.5 實(shí)戰(zhàn)案例:SQLite數(shù)據(jù)庫(kù)操作220 6.3 網(wǎng)絡(luò)判定227 6.3.1 判斷用戶是否連接228 6.3.2 判斷網(wǎng)絡(luò)連接的類型228 6.3.3 監(jiān)控網(wǎng)絡(luò)連接改變228 6.3.4 實(shí)戰(zhàn)案例:根據(jù)廣播消息判斷網(wǎng)絡(luò)連接情況228 6.4 消息緩存230 6.4.1 Android中的緩存機(jī)制230 6.4.2 實(shí)戰(zhàn)案例:下載、緩存和顯示圖片231 6.5 界面更新236 6.5.1 刷新數(shù)據(jù)時(shí)的界面更新236 6.5.2 完成任務(wù)時(shí)的界面更新237 6.5.3 實(shí)戰(zhàn)案例:自定義列表顯示更新238 6.6 小結(jié)248 第7章 基于SIP協(xié)議的VoIP應(yīng)用249 7.1 SIP協(xié)議簡(jiǎn)介249 7.2 SIP服務(wù)器搭建250 7.2.1 下載安裝Brekeke SIP Server250 7.2.2 訪問(wèn)服務(wù)器251 7.2.3 啟動(dòng)服務(wù)器252 7.3 SIP程序設(shè)置253 7.3.1 Android SIP API中的類和接口253 7.3.2 Android極限列表253 7.3.3 完整的Manifest文件254 7.4 SIP初始化通話255 7.4.1 SipManager對(duì)象255 7.4.2 SipProfile對(duì)象256 7.5 監(jiān)聽(tīng)SIP通話257 7.5.1 創(chuàng)建監(jiān)聽(tīng)器258 7.5.2 撥打電話258 7.5.3 接收呼叫259 7.6 實(shí)戰(zhàn)案例:SIP通話261 7.7 小結(jié)270 第8章 基于XMPP協(xié)議的即時(shí)通信應(yīng)用271 8.1 XMPP協(xié)議簡(jiǎn)介271 8.2 使用Openfire搭建XMPP服務(wù)器272 8.3 登錄XMPP服務(wù)器276 8.3.1 Asmack相關(guān)類276 8.3.2 登錄XMPP服務(wù)器277 8.4 聯(lián)系人相關(guān)操作279 8.4.1 獲取聯(lián)系人列表279 8.4.2 獲取聯(lián)系人狀態(tài)280 8.4.3 添加和刪除聯(lián)系人280 8.4.4 監(jiān)聽(tīng)聯(lián)系人添加信息281 8.5 消息處理282 8.5.1 接收消息282 8.5.2 發(fā)送消息283 8.6 實(shí)戰(zhàn)案例:XMPP多人聊天283 8.6.1 創(chuàng)建新多人聊天室284 8.6.2 加入聊天室286 8.6.3 發(fā)送和接收消息287 8.7 小結(jié)288 第三篇 源碼分析篇 第9章 Android對(duì)HTML的處理290 9.1 Android HTML處理關(guān)鍵類290 9.2 HTMLViewer分析292 9.3 瀏覽器源代碼解析296 9.3.1 WebView加載入口分析296 9.3.2 調(diào)用java script接口299 9.4 WebKit簡(jiǎn)單分析300 9.4.1 HTTP Cache管理300 9.4.2 Cookie管理301 9.4.3 處理HTTP認(rèn)證以及證書302 9.4.4 處理java script的請(qǐng)求302 9.4.5 處理MIME類型305 9.4.6 訪問(wèn)WebView的歷史306 9.4.7 保存網(wǎng)站圖標(biāo)306 9.4.8 WebStorage306 9.4.9 處理UI307 9.4.10 Web設(shè)置分析309 9.4.11 HTML5音視頻處理309 9.4.12 縮放和下載311 9.4.13 插件管理311 9.5 小結(jié)313 第10章 Android網(wǎng)絡(luò)處理分析314 10.1 Android網(wǎng)絡(luò)處理關(guān)鍵類及其說(shuō)明314 10.2 Android網(wǎng)絡(luò)處理流程315 10.2.1 監(jiān)控網(wǎng)絡(luò)連接狀態(tài)315 10.2.2 認(rèn)證類316 10.2.3 DHCP狀態(tài)機(jī)317 10.2.4 LocalServerSocket318 10.2.5 響應(yīng)郵件請(qǐng)求320 10.2.6 提供網(wǎng)絡(luò)信息323 10.2.7 Proxy類324 10.2.8 VPN服務(wù)325 10.3 Android封裝的HTTP處理類326 10.3.1 AndroidHttpClient類和DefaultHttpClient類326 10.3.2 SSL認(rèn)證信息處理類327 10.3.3 SSL錯(cuò)誤信息處理328 10.3.4 AndroidHttpClient328 10.4 Android RTP協(xié)議329 10.4.1 傳輸音頻碼330 10.4.2 AudioGroup331 10.4.3 語(yǔ)音流RtpStream和AudioStream332 10.5 Android SIP協(xié)議333 10.5.1 SIP通話簡(jiǎn)介334 10.5.2 SIP初始化335 10.5.3 SipProfile336 10.5.4 SipSession337 10.5.5 SIP包錯(cuò)誤處理338 10.6 小結(jié)339 第11章 Android網(wǎng)絡(luò)應(yīng)用分析340 11.1 Android中使用SAX解析XML340 11.1.1 幾種XML解析方式討論340 11.1.2 SAX解析XML的原理341 11.1.3 SAX發(fā)現(xiàn)XML的根元素342 11.1.4 SAX發(fā)現(xiàn)XML的子元素345 11.2 基于位置的服務(wù)348 11.2.1 位置服務(wù)的基本概念348 11.2.2 位置服務(wù)的基本類348 11.2.3 調(diào)用Google地圖350 11.2.4 根據(jù)位置刷新地圖顯示351 11.3 媒體傳輸協(xié)議353 11.3.1 MTP和PTP簡(jiǎn)介353 11.3.2 定義MTP和PTP的類型354 11.3.3 封裝MTP設(shè)備信息357 11.3.4 封裝MTP對(duì)象的信息358 11.3.5 封裝MTP設(shè)備上存儲(chǔ)單元的信息360 11.4 小結(jié)362
|