这是一本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处理、网络处理以及部分网络应用相关的源代码,读者可以从底层原理上加深对相关知识点的理解。
封面图
目录
- 序
- 前言
- 第一篇概述篇
- 第1章Android网络编程概要 2
- 1.1Android简介 2
- 1.1.1Android的发展 2
- 1.1.2Android功能特性 3
- 1.1.3Android系统构架 4
- 1.2Android网络程序的功能 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安装ADT 9
- 1.3.3Hello 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.3IP、TCP和UDP协议 26
- 2.2在Android中使用TCP、UDP协议 31
- 2.2.1Socket基础 31
- 2.2.2使用TCP通信 34
- 2.2.3使用UDP通信 36
- 2.3Socket实战案例 39
- 2.3.1Socket聊天举例 39
- 2.3.2FTP客户端 41
- 2.3.3Telnet客户端 44
- 2.4小结 46
- 第3章Android基本Web技术和编程实践 47
- 3.1HTTP协议 47
- 3.1.1HTTP简介 47
- 3.1.2实战案例:基于HTTP协议的文件上传 51
- 3.2Android中的HTTP编程 57
- 3.2.1HttpClient和URLConnection 57
- 3.2.2Post和Get在HttpClient的使用 58
- 3.2.3实战案例:使用HttpClient和URLConnection访问维基百科 60
- 3.3Android处理JSON 64
- 3.3.1JSON简介 64
- 3.3.2JSON数据解析 65
- 3.3.3JSON打包 67
- 3.3.4实战案例:JSON解析wikipedia内容 68
- 3.4Android处理SOAP 71
- 3.4.1SOAP简介 71
- 3.4.2SOAP消息 72
- 3.4.3实战案例:SOAP解析天气服务 74
- 3.5Android对HTML的处理 79
- 3.5.1解析HTML 79
- 3.5.2HTML适配屏幕 80
- 3.5.3JavaScript混合编程 81
- 3.5.4实战案例:Android自定义打开HTML页面 87
- 3.6小结 91
- 第4章Android常见网络接口编程 92
- 4.1Android解析和创建XML 92
- 4.1.1XML简介 92
- 4.1.2DOM解析XML 97
- 4.1.3SAX解析XML 102
- 4.1.4PULL解析XML 108
- 4.1.5实战案例:Android中创建XML 110
- 4.2Android订阅RSS 113
- 4.2.1RSS简介 113
- 4.2.2实战案例:简单RSS阅读器 115
- 4.3Android Email编程 122
- 4.3.1Android发送Email 122
- 4.3.2实战案例:Android下Email的Base64加密 123
- 4.4Android网络安全 125
- 4.4.1Android网络安全简介 125
- 4.4.2Android加密和解密 127
- 4.4.3实战案例:Android应用添加签名 133
- 4.5OAuth认证 135
- 4.5.1OAuth简介 135
- 4.5.2实战案例:使用OAuth接口 137
- 4.6小结 139
- 第5章Android网络模块编程 141
- 5.1Android地图和定位 141
- 5.1.1获取map-api密钥 141
- 5.1.2获取位置 144
- 5.1.3实战案例:利用MapView显示地图 146
- 5.2USB编程 150
- 5.2.1USB主从设备 150
- 5.2.2USB Accessory Mode 151
- 5.2.3USB Host Mode 157
- 5.2.4实战案例:Android和Arduino交互 159
- 5.3Wi-Fi编程 168
- 5.3.1Android Wi-Fi相关类 168
- 5.3.2Android Wi-Fi基本操作 171
- 5.3.3实战案例:使用Wi-Fi直连方式传输文件 177
- 5.4蓝牙编程 185
- 5.4.1蓝牙简介 185
- 5.4.2Android蓝牙API分析 185
- 5.4.3Android蓝牙基本操作 187
- 5.4.4实战案例:蓝牙连接 192
- 5.5NFC编程简介 197
- 5.5.1NFC技术简介 197
- 5.5.2NFC API简介 198
- 5.5.3NFC处理流程分析 199
- 5.6小结 205
- 第6章Android线程、数据存取、缓存和UI同步 206
- 6.1Android线程 206
- 6.1.1Android线程模型 206
- 6.1.2异步任务类 211
- 6.1.3实战案例:利用AsyncTask实现多线程下载 213
- 6.2数据存取 214
- 6.2.1Shared Preferences数据存储 215
- 6.2.2Internal Storage数据存储 216
- 6.2.3External Storage数据存储 217
- 6.2.4SQLite 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.1Android中的缓存机制 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.1SIP协议简介 249
- 7.2SIP服务器搭建 250
- 7.2.1下载安装Brekeke SIP Server 250
- 7.2.2访问服务器 251
- 7.2.3启动服务器 252
- 7.3SIP程序设置 253
- 7.3.1Android SIP API中的类和接口 253
- 7.3.2Android极限列表 253
- 7.3.3完整的Manifest文件 254
- 7.4SIP初始化通话 255
- 7.4.1SipManager对象 255
- 7.4.2SipProfile对象 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.1XMPP协议简介 271
- 8.2使用Openfire搭建XMPP服务器 272
- 8.3登录XMPP服务器 276
- 8.3.1Asmack相关类 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.1Android HTML处理关键类 290
- 9.2HTMLViewer分析 292
- 9.3浏览器源代码解析 296
- 9.3.1WebView加载入口分析 296
- 9.3.2调用JavaScript接口 299
- 9.4WebKit简单分析 300
- 9.4.1HTTP Cache管理 300
- 9.4.2Cookie管理 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.8WebStorage 306
- 9.4.9处理UI 307
- 9.4.10Web设置分析 309
- 9.4.11HTML5音视频处理 309
- 9.4.12缩放和下载 311
- 9.4.13插件管理 311
- 9.5小结 313
- 第10章Android网络处理分析 314
- 10.1Android网络处理关键类及其说明 314
- 10.2Android网络处理流程 315
- 10.2.1监控网络连接状态 315
- 10.2.2认证类 316
- 10.2.3DHCP状态机 317
- 10.2.4LocalServerSocket 318
- 10.2.5响应邮件请求 320
- 10.2.6提供网络信息 323
- 10.2.7Proxy类 324
- 10.2.8VPN服务 325
- 10.3Android封装的HTTP处理类 326
- 10.3.1AndroidHttpClient类和DefaultHttpClient类 326
- 10.3.2SSL认证信息处理类 327
- 10.3.3SSL错误信息处理 328
- 10.3.4AndroidHttpClient 328
- 10.4Android RTP协议 329
- 10.4.1传输音频码 330
- 10.4.2AudioGroup 331
- 10.4.3语音流RtpStream和AudioStream 332
- 10.5Android SIP协议 333
- 10.5.1SIP通话简介 334
- 10.5.2SIP初始化 335
- 10.5.3SipProfile 336
- 10.5.4SipSession 337
- 10.5.5SIP包错误处理 338
- 10.6小结 339
- 第11章Android网络应用分析 340
- 11.1Android中使用SAX解析XML 340
- 11.1.1几种XML解析方式讨论 340
- 11.1.2SAX解析XML的原理 341
- 11.1.3SAX发现XML的根元素 342
- 11.1.4SAX发现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.1MTP和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