第1章 Android开发概述 1
1.1 什么是Android 1
1.2 Android的发展 2
1.3 Android的现状 5
1.4 Android系统架构 9
1.5 手持设备应用开发的特点和原则 11
1.6 总结 16
第2章 Android应用的开发环境 17
2.1 Android开发环境及其组成 17
2.2 从零开始搭建和配置开发环境 19
2.2.1 操作系统配置 19
2.2.2 下载和安装Java SDK 20
2.2.3 下载并安装Android SDK 21
2.2.4 下载安装Eclipse 22
2.2.5 配置和运行Eclipse 24
2.2.6 安装Android Develop Tools(ADT) 25
2.2.7 为ADT配置Android SDK 27
2.2.8 安装Platform 28
2.2.9 配置虚拟设备(Virtual Device) 30
2.2.10 应用测试 31
2.2.11 实机调试环境 34
2.3 熟悉和了解Android SDK 36
2.3.1 Android SDK-目录结构 36
2.3.2 Android SDK-tools和platformtools 37
2.3.3 Android SDK-samples 37
2.3.4 Android SDK-documents 39
2.3.5 Android SDK-platforms 40
2.4 Android Develop Tools 41
2.4.1 Android工程模板 41
2.4.2 Android文件模板 41
2.4.3 Android应用配置文件工具 42
2.4.4 Android应用程序执行(Run...)配置 42
2.4.5 调试工具集DDMS 43
2.4.6 应用程序用户界面视图结构Hierarchy View 44
2.4.7 界面设计工具 44
2.4.8 Android工具菜单 45
2.4.9 测试工具集 45
2.5 Android工具命令行 46
2.6 模拟器和虚拟设备 50
2.6.1 模拟器Emulator 50
2.6.2 虚拟设备配置 51
2.6.3 虚拟设备操作和使用 55
2.7 总结 60
第3章 Android开发基础 62
3.1 手持设备应用开发特点和规范 62
3.2 实例应用第一步 63
3.3 理解Activity 65
3.4 认识神奇的“R” 67
3.5 视图布局layout 69
3.6 实例应用第二步 72
3.6.1 使用列表显示数据 72
3.6.2 创建新的Activity 75
3.6.3 为Activity创建布局模板 78
3.6.4 Activity的调用和显示 80
3.6.5 运行Activity 81
3.7 理解Intent 82
3.7.1 何为Intent 82
3.7.2 Intent的使用 83
3.7.3 数据的放入和取出 84
3.8 实例应用 第三步 85
3.8.1 国际化和本地化 85
3.8.2 业务类 88
3.8.3 改进的列表显示 89
3.8.4 改进列表事件处理 94
3.8.5 改进Intent数据传输 97
3.8.6 为DetailActivity增加返回功能 98
3.8.7 工具栏(Toolbar) 99
3.8.8 偏好设置(Preference) 102
3.8.9 创建和保存微博条目 105
3.8.10 显示数据库记录列表 109
3.8.11 删除列表项目和记录 109
3.9 总结 111
第4章 数据存取 112
4.1 偏好设置(Preferences) 112
4.1.1 读取和写入偏好设置 112
4.1.2 使用PreferencesActivity 114
4.1.3 Preferences应用细节 116
4.2 文件存取 118
4.2.1 Android文件系统结构 118
4.2.2 内部文件存取 119
4.2.3 外部文件存取 120
4.2.4 其他文件的处理 122
4.3 Android中的数据库技术 123
4.3.1 关于Sqlite3 123
4.3.2 数据库访问的实现 124
4.4 Content Provider 129
4.4.1 Content Provider概述 129
4.4.2 读取Content Provider提供的数据 129
4.4.3 修改Content Provider数据 132
4.4.4 实现Content Provider 134
4.5 扩展话题 135
4.5.1 Android应用程序组成 135
4.5.2 Activity的生命周期(Lifecycle) 135
4.5.3 应用程序状态 138
4.5.4 关于Bundle 139
4.5.5 关于Context 140
4.5.6 关于选项菜单(Optional Menu) 141
4.6 总结 142
第5章 Android开发调试 144
5.1 Android调试技术概述 144
5.2 Console和LogCat 147
5.2.1 控制台和LogCat 147
5.2.2 LogCat的应用 149
5.2.3 Log类的使用 150
5.2.4 LogCat命令行 151
5.2.5 标准输出的重定向 151
5.3 DDMS 152
5.3.1 ADB(Android Debug Bridge,Android调试桥) 152
5.3.2 DDMS Perspective(DDMS透视图) 153
5.3.3 Devices(设备) 155
5.3.4 File Explorer(文件管理器) 156
5.3.5 Emulator Control(模拟器控制) 157
5.4 调试工作流程分析 158
5.4.1 调试工作基本流程 158
5.4.2 程序示例和日志调试 159
5.4.3 断点设置和管理 160
5.4.4 调试模式下的程序运行 162
5.4.5 变量查看和修改 164
5.5 开发调试常见错误分析和处理 165
5.5.1 Java程序相关问题 166
5.5.2 Android应用程序相关的问题 167
5.5.3 开发环境相关的问题 169
5.6 总结 170
第6章 服务器 172
6.1 Ruby On Raiils 172
6.1.1 什么是Ruby on Rails 172
6.1.2 关于MVC 175
6.1.3 Rails的安装和配置 177
6.2 基于Rails的Web应用开发 180
6.2.1 Rails Web应用程序概述 181
6.2.2 模型设计 181
6.2.3 生成结果相关文件 183
6.2.4 访问过程分析 191
6.2.5 数据处理过程 192
6.2.6 应用程序配置 194
6.3 Web应用改进 195
6.3.1 JSON 195
6.3.2 数据获取服务 198
6.3.3 数据修改服务 199
6.3.4 安全访问控制 200
6.4 总结 203
第7章 客户端——访问网络数据服务(基础)7.1 访问HTTP数据服务 204
7.1.1 网络访问权限 204
7.1.2 使用Connection方法访问服务器 205
7.1.3 使用Client方式访问服务器 206
7.2 参数设置和Post访问 208
7.2.1 网络访问参数 208
7.2.2 Get方式的参数处理 209
7.2.3 Post访问方式和参数设置 210
7.2.4 网络访问控制参数 211
7.3 处理响应 212
7.3.1 检查响应状态 212
7.3.2 输入响应内容 213
7.3.3 处理JSON对象 214
7.3.4 业务对象生成 215
7.4 总结 216
第8章 客户端——访问网络数据服务(高级)8.1 Android应用系统的安全性 217
8.1.1 网络应用信息安全概述 217
8.1.2 网络访问认证安全 218
8.1.3 HTTP基本认证在Android中的客户端实现 221
8.1.4 HTTP摘要认证在Android中的客户端实现 223
8.1.5 自定义HTTP Client连接认证体系设计 225
8.1.6 网络传输和内容安全 232
8.2 后台任务的执行处理 236
8.2.1 网络访问操作的问题和需求 236
8.2.2 Thread类和Runnable接口 237
8.2.3 线程间信息的通信 238
8.2.4 AsyncTask(异步任务) 242
8.2.5 实现任务线程池 245
8.2.6 改进的网络访问类 247
8.3 网络数据访问服务 250
8.3.1 Service概述 250
8.3.2 Android中Service的实现 251
8.3.3 Service的周期执行和启动执行 252
8.3.4 与Service交互 255
8.4 Widget(桌面小程序) 256
8.5 组装和集成 265
8.6 总结 265
第9章 测试、优化、团队开发和发布 267
9.1 Android应用测试 267
9.1.1 测试技术概述 267
9.1.2 Android测试框架 270
9.1.3 Android测试示例 272
9.2 程序性能优化 280
9.2.1 编码的性能考虑和最佳实践 280
9.2.2 程序执行跟踪和描绘 285
9.2.3 界面布局优化 288
9.3 团队开发 290
9.3.1 版本控制技术概述 291
9.3.2 SVN系统的安装和配置 294
9.3.3 使用SVN进行开发的版本控制 296
9.3.4 工作管理和协作 304
9.4 发布和部署 308
9.4.1 Android安装文件和过程概述 308
9.4.2 Android应用程序签名 310
9.4.3 Android应用程序分发和安装 312
9.5 总结 314
第10章 Socket编程 315
10.1 Socket技术概述 315
10.2 示例应用程序 317
10.3 TCP Socket应用实现 320
10.3.1 TCP Socket客户端类 320
10.3.2 TCP Socket服务器端 322
10.3.3 启动和关闭TCP Socket服务器 324
10.3.4 TCP Socket信息发送 325
10.4 UDP Socket应用实现 325
10.4.1 UDP Socket客户端 325
10.4.2 UDP Socket服务器端代码 326
10.4.3 启动和关闭UDP Socket服务器 327
10.4.4 发送UDP信息 328
10.5 远程数据传输 328
10.6 总结 331
第11章 Android浏览器和Web视图技术 332
11.1 手持设备平台Web应用的发展 332
11.1.1 原生应用程序和Web应用程序 332
11.1.2 从WAP到Web 333
11.2 Android浏览器和WebKit 336
11.3 基于Web视图技术的开发 337
11.3.1 系统Intent方式 337
11.3.2 WebView方式 338
11.3.3 WebView事件处理 339
11.3.4 WebView和HTML内容的交互 340
11.3.5 WebView技术的应用场合 342
11.4 HTML5 343
11.4.1 HTML5概况 343
11.4.2 用户界面组件 344
11.4.3 CSS增强 346
11.4.4 图形绘制 348
11.4.5 位置应用 350
11.4.6 视频和音频 352
11.4.7 本地存储 352
11.4.8 Web Worker 355
11.4.9 Web Sockets(Web插座) 356
11.4.10 服务器发送事件(Server Sent Events,SSE) 357
11.4.11 Math ML数学描述语言 358
11.5 为Android设备开发Web应用程序 359
11.6 总结 362
第12章 系统内容和硬件相关应用 363
12.1 示例应用程序 363
12.1.1 基本程序 363
12.1.2 列表项目数据转换 365
12.1.3 事件响应处理 366
12.2 系统基本信息 366
12.2.1 基本信息 366
12.2.2 网络类型 367
12.2.3 网络接口和IP地址 368
12.2.4 获取电话号码 369
12.3 内容管理和集成 370
12.3.1 网络访问和信息搜索 370
12.3.2 联系人网络访问和信息搜索 371
12.3.3 图片选取 372
12.3.4 媒体文件播放 374
12.4 电话相关应用 375
12.4.1 拨打电话 375
12.4.2 发送短信 376
12.4.3 使用模拟器进行电话和短信功能的测试 378
12.4.4 接收和读取短信 380
12.4.5 发送彩信(MMS) 381
12.4.6 发送电子邮件 382
12.5 地理位置应用 383
12.5.1 定位 383
12.5.2 地图 385
12.5.3 MapView 386
12.5.4 POI应用(Point of Interest兴趣点) 391
12.6 Bluetooth蓝牙通讯技术 393
12.7 NFC近场通讯技术 397
12.7.1 NFC概述 398
12.7.2 Android NFC应用开发 398
12.7.3 高级NFC应用开发概述 402
12.8 传感器 408
12.9 总结 410