
深入理解Android网路编程
《深入理解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