第一部分 Android概述
第1章 Android简介 2
1.1 Android简介 2
1.1.1 Android平台 3
1.1.2 Android的市场 4
1.1.3 Android许可 7
1.2 Android的栈组成 8
1.3 开始Android开发 11
1.3.1 Android的Intent 11
1.3.2 激活Android 14
1.3.3 AndroidManifest.xml 20
1.3.4 将应用程序映射到进程 22
1.4 一个Android应用程序 22
1.5 小结 26
第2章 开发环境 27
2.1 Android SDK 27
2.1.1 应用程序编程接口 28
2.1.2 核心Android包 28
2.1.3 可选包 29
2.2 完美契合 29
2.2.1 Java透视图 30
2.2.2 DDMS透视图 32
2.2.3 命令行工具 34
2.3 在Eclipse中构建Android应用程序 36
2.3.1 Android Project Wizard 37
2.3.2 Android示例应用程序代码 37
2.3.3 生成应用程序 42
2.4 Android Emulator 43
2.4.1 皮肤 44
2.4.2 网络速度 44
2.4.3 模拟器配置文件 46
2.5 调试 47
2.6 小结 48
第二部分 Android SDK实战
第3章 用户界面 50
3.1 创建活动 51
3.1.1 创建Activity类 52
3.1.2 探讨活动的生命周期 57
3.2 使用视图 60
3.2.1 通用视图 60
3.2.2 使用ListView 63
3.2.3 利用Handler和Message实现多任务 66
3.2.4 创建自定义视图 67
3.2.5 理解布局 69
3.2.6 处理焦点 71
3.2.7 掌握事件 72
3.3 使用资源 73
3.3.1 支持的资源类型 73
3.3.2 在Java中引用资源 74
3.3.3 通过XML资源定义视图和布局 76
3.3.4 值的外化 78
3.3.5 提供动画 81
3.4 理解AndroidManifest文件 81
3.5 小结 84
第4章 Intent与服务 85
4.1 使用Intent类 86
4.1.1 定义Intent 86
4.1.2 解析Intent 89
4.1.3 匹配自定义URI 92
4.1.4 使用Android提供的活动 96
4.2 使用广播接收器进行侦听 97
4.2.1 扩展Intent概念 97
4.2.2 创建接收器 98
4.3 构建服务 99
4.3.1 服务的两用性 100
4.3.2 创建可运行后台任务的服务 100
4.4 实现进程间通信 103
4.4.1 Android接口定义语言 104
4.4.2 公开远程接口 106
4.4.3 绑定到服务 106
4.4.4 启动服务与绑定服务 108
4.4.5 服务的生命周期 109
4.4.6 Binder类和Parcelable接口 110
4.5 小结 111
第5章 存储和检索数据 112
5.1 使用首选项 112
5.1.1 使用SharedPreferences 113
5.1.2 首选项访问权限 116
5.2 使用文件系统 119
5.2.1 创建文件 119
5.2.2 访问文件 120
5.2.3 作为原始资源的文件 121
5.2.4 XML文件资源 122
5.2.5 通过SD卡实现外部存储 124
5.3 将数据持久存储到数据库中 127
5.3.1 构建和访问数据库 128
5.3.2 使用sqlite3工具 132
5.4 使用ContentProvider类 133
5.4.1 理解URI表示和操作记录 135
5.4.2 创建ContentProvider 142
5.5 小结 148
第6章 联网与Web服务 150
6.1 联网概述 152
6.1.1 联网基础知识 152
6.1.2 客户端与服务器 153
6.2 检查网络状态 154
6.3 使用服务器套接字进行通信 155
6.4 使用HTTP 158
6.4.1 简单HTTP和Java.net 158
6.4.2 使用HttpClient的健壮HTTP 160
6.4.3 创建HTTP和HTTPS帮助类 161
6.5 Web服务 167
6.5.1 POX——将它与HTTP和XML结合在一起 168
6.5.2 REST 170
6.5.3 用还是不用SOAP,这是个问题 173
6.6 小结 174
第7章 电话技术 175
7.1 电话技术背景与术语 176
7.2 访问电话技术信息 177
7.2.1 获取电话技术属性 177
7.2.2 获取电话状态信息 179
7.3 与电话交互 181
7.3.1 使用Intent打电话 181
7.3.2 有用的电话号码相关实用工具 182
7.3.3 拦截电话 184
7.4 处理消息传递:SMS 185
7.4.1 发送SMS消息 185
7.4.2 接收SMS消息 187
7.5 小结 188
第8章 通知与提醒 189
8.1 Toast简介 189
8.2 通知简介 192
8.3 提醒 195
8.4 小结 201
第9章 图形与动画 202
9.1 在Android中绘制图形 202
9.2 动画 206
9.2.1 以编程方式创建动画 209
9.2.2 面向嵌入式系统的OpenGL简介 213
9.3 小结 224
第10章 多媒体 225
10.1 多媒体与OpenCORE简介 225
10.2 播放音频 226
10.3 播放视频 228
10.4 捕捉媒体 230
10.4.1 了解相机 230
10.4.2 捕捉音频 235
10.5 小结 238
第11章 位置服务 239
11.1 在模拟器中模拟位置 241
11.1.1 使用DDMS工具发送坐标 241
11.1.2 GPS交换格式 243
11.1.3 Google Earth Keyhole标记语言 245
11.2 使用LocationManager和LocationProvider 246
11.2.1 使用LocationManager 访问位置数据 247
11.2.2 使用LocationProvider 249
11.2.3 使用LocationListener 接收位置更新 250
11.3 处理地图 253
11.3.1 扩展MapActivity 253
11.3.2 使用MapView 254
11.3.3 使用Overlay将数据放在地图上 256
11.4 使用Geocoder转换位置和地址 259
11.5 小结 262
第三部分 Android应用程序
第12章 全面应用:Field Service Application 264
12.1 Field Service Application的需求 265
12.1.1 基本需求 265
12.1.2 数据模型 266
12.1.3 应用程序架构与集成 267
12.2 Android应用程序之旅 268
12.2.1 应用程序流 268
12.2.2 代码路线图 269
12.2.3 AndroidManifest.xml 271
12.3 Android代码 271
12.3.1 Splash Activity 271
12.3.2 FieldService Activity,第1部分 273
12.3.3 FieldService Activity,第2部分 275
12.3.4 设置 276
12.3.5 数据结构 278
12.4 深入剖析代码 286
12.4.1 RefreshJobs 286
12.4.2 ManageJobs 289
12.4.3 ShowJob 292
12.4.4 CloseJob 296
12.5 服务器代码 302
12.5.1 调度程序用户界面 302
12.5.2 数据库 303
12.5.3 PHP调度程序代码 303
12.5.4 PHP移动集成代码 304
12.6 小结 305
第13章 Android高级编程 306
13.1 Android/Linux:接合 306
13.1.1 工具链 307
13.1.2 构建应用程序 307
13.1.3 安装和运行应用程序 308
13.1.4 构建脚本 310
13.2 更好的方法 311
13.2.1 static标记 311
13.2.2 链接 313
13.2.3 退出,而不是返回 314
13.2.4 启动代码 315
13.3 现在几点了 317
13.3.1 Daytime Server应用程序 318
13.3.2 daytime.c 318
13.3.3 SQLite数据库 320
13.3.4 编译并运行Daytime Server 322
13.4 Daytime Client 324
13.4.1 活动 324
13.4.2 套接字客户机 325
13.4.3 测试Daytime Client 326
13.5 小结 327
附录A 安装Android SDK 329
附录B 在Android设备上签名和安装
应用程序 336