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