第1章Android的系统架构 2
1.1 Android系统架构概况 2
1.1.1应用层 4
1.1.2框架层 5
1.1.3运行时 5
1.1.4核心类库 7
1.1.5硬件抽象层和Linux内核 7
1.2 Android的核心功能模块 8
1.2.1界面框架 8
1.2.2数据存储 9
1.2.3网络通信 10
1.2.4地理信息 11
1.2.5图形和多媒体处理 11
1.2.6外部设备 12
1.2.7特色功能模块 13
1.3 Android的架构特征和设计思想 13
1.3.1平台开放性 14
1.3.2基于组件的应用设计 14
1.3.3基于网络服务的平台 15
1.4小结 15
第2章Android源代码的下载和编译 16
2.1 Android源代码的获取和编译 17
2.1.1环境搭建 18
2.1.2源代码获取 18
2.1.3源代码的编译 21
2.2 Android源代码结构 22
2.2.1框架层源代码目录frameworks 22
2.2.2应用层源代码目录packages 24
2.2.3其他源代码目录 24
2.3 Android源代码的阅读和编辑 25
2.3.1用Eclipse阅读源代码 25
2.3.2反馈Bug 26
2.3.3提交修改 27
2.4小结 27
第3章Android组件模型解析 28
3.1基于Mashup的应用设计 29
3.1.1 Android中的Mashup 29
3.1.2基于Mashup的Android应用模型 30
3.1.3基于Mashup的应用架构特征 32
3.2界面组件Activity解析 34
3.2.1界面组件的功能和特征 34
3.2.2界面组件的开发 35
3.2.3界面组件的数据结构 39
3.3服务组件Service解析 40
3.3.1服务组件的功能和特征 41
3.3.2服务组件的开发和使用 43
3.3.3服务组件的进程间通信模型 45
3.4触发器组件Broadcast Receiver解析 49
3.4.1触发器组件的功能和特征 49
3.4.2触发器组件的使用 50
3.4.3广播事件的发送 52
3.5数据源组件Content Provider解析 52
3.5.1数据源组件的定位和操作 53
3.5.2数据源组件的开发 55
3.5.3数据源组件的实现细节 57
3.6应用配置文件解析 59
3.6.1权限配置 61
3.6.2环境配置 63
3.6.3应用和组件配置 65
3.7小结 66
第4章Android的Intent机制 67
4.1 Intent对象的作用和构成 68
4.1.1 Intent对象的作用 69
4.1.2 Intent对象的构成 70
4.1.3 Intent对象解析 75
4.1.4 Intent Filter对象 76
4.2意图匹配 78
4.2.1意图匹配的算法流程 79
4.2.2匹配组件的选择 84
4.2.3意图匹配的优化 85
4.3意图机制的应用 86
4.3.1意图机制在界面组件中的应用 86
4.3.2意图机制在服务组件中的应用 88
4.3.3意图机制在触发器组件中的应用 89
4.4小结 90
第5章 组件生命周期解析 91
5.1应用进程模型 92
5.1.1应用、组件和进程 92
5.1.2组件的应用进程配置 94
5.2应用进程托管 96
5.2.1为什么需要进程托管 97
5.2.2进程优先级 97
5.2.3进程回收算法 100
5.2.4进程的强行终止 103
5.2.5掌控进程的优先级 105
5.3组件的生命周期模型 106
5.3.1界面组件的生命周期 107
5.3.2服务组件的生命周期 115
5.3.3触发器组件的生命周期 119
5.3.4数据源组件的生命周期 120
5.3.5应用环境的生命周期 120
5.4任务和界面组件栈 120
5.4.1界面组件的运行模式 122
5.4.2组件的任务黏度 126
5.4.3实际应用中的任务控制 127
5.5小结 128
第6章 组件间的数据传输 129
6.1利用Intent对象进行数据传输 130
6.1.1利用Intent对象回传数据 131
6.1.2利用Intent对象传递数据的优缺点 133
6.2利用文件进行数据共享 134
6.2.1利用文件进行数据共享的实现 134
6.2.2利用文件进行数据共享的优缺点 135
6.3利用应用环境的全局数据共享 136
6.3.1利用应用环境对象共享数据的实现 137
6.3.2利用应用环境对象共享数据的优缺点 138
6.4利用组件共享数据 139
6.4.1利用数据源组件共享数据 139
6.4.2利用服务组件共享数据 140
6.5小结 140
第7章Android控件解析 141
7.1 Android的控件框架 142
7.1.1 Android控件构成 142
7.1.2 Android交互事件传输 143
7.1.3 Android控件属性 145
7.1.4控件的丈量和绘制 150
7.2 Android的窗口机制 150
7.2.1窗口机制的基本原理 151
7.2.2界面组件和窗口 152
7.2.3对话框 154
7.2.4弹出窗口 156
7.3 Android的基本控件介绍 158
7.3.1文本控件 159
7.3.2图像控件 163
7.3.3 Surface控件 164
7.3.4 Layout控件 164
7.3.5适配器控件 167
7.3.6选项卡控件 172
7.3.7浏览器控件 173
7.4自定义控件 175
7.4.1控件的定制 175
7.4.2复合控件 180
7.4.3自绘控件 183
7.5 Android界面新发展 188
7.5.1动作栏 188
7.5.2界面片段 191
7.5.3重新定制选项卡 197
7.5.4交互界面的适配 200
7.6小结 204
第8章 应用资源 205
8.1 Android应用资源体系 206
8.1.1 Android的应用资源构成 206
8.1.2应用资源的适配 208
8.1.3应用资源的动态匹配 209
8.2应用资源的调用 213
8.2.1应用资源的编译和R类 213
8.2.2应用资源的管理 215
8.2.3使用应用资源 216
8.3应用资源的类型 217
8.3.1界面和样式 217
8.3.2字符串和常量 221
8.3.3图像、图形和动画 223
8.3.4其他资源文件 225
8.4小结 225
第9章 数据存储 226
9.1 Android的文件系统 227
9.1.1 Android的目录结构 229
9.1.2 Android的应用数据存储 229
9.1.3 Android的文件操作 231
9.2使用设置文件 233
9.2.1设置文件的存储和使用 234
9.2.2设置界面组件 235
9.3使用数据库 238
9.3.1 Android数据库实现 238
9.3.2 Android数据库的使用 240
9.4存储在云端 243
9.4.1云端存储的架构 244
9.4.2云端存储的使用 245
9.5小结 247
第10章 网络通信 248
10.1 Web通信 249
10.1.1基于HTTP的网络连接 249
10.1.2联网方式的选择 252
10.1.3 WiFi的管理 254
10.2蓝牙 256
10.2.1 Android的蓝牙实现 256
10.2.2基于蓝牙的通信 257
10.3近场通信 259
10.3.1基于NFC的识别和通信 259
10.3.2基于NFC的点对点通信 263
10.4基于WiFi连接的P2P通信 263
10.4.1 Android 4.0的P2P连接实现 264
10.4.2使用Socket进行数据传输 266
10.5小结 268
第11章 地理信息服务 269
11.1 Android的定位服务 270
11.1.1定位服务框架 270
11.1.2位置信息源 272
11.1.3定位选择 273
11.1.4定位实例 274
11.2 Android的地址服务 277
11.2.1地址服务的框架 277
11.2.2使用地址服务 278
11.3 Android的地图服务 279
11.3.1使用地图 279
11.3.2其他使用地图服务的方式 282
11.4小结 283
第12章 多媒体处理 284
12.1 Android的图像处理 285
12.1.1图像的表示 285
12.1.2图像的读取和输出 286
12.1.3图像的呈现 288
12.1.4图像的管理 290
12.2 Android的音视频处理 291
12.2.1 Android音视频的支持框架 291
12.2.2 Android音视频的播放 292
12.2.3 Android音视频的录制 294
12.3 Android中相机的使用 296
12.4小结 300
第13章 其他重要模块 301
13.1通话和短信 302
13.1.1 Android的通话和短信框架 302
13.1.2通话的处理 303
13.1.3短信的发送和接收 305
13.2 App Widget的使用和实现 308
13.2.1 Android的App Widget框架 309
13.2.2 App Widget的界面构造和Remote Views 311
13.2.3 App Widget的事件处理和Pending Intent 313
13.3 Android的应用内搜索 317
13.3.1 Android应用内搜索实现框架 317
13.3.2为应用定制搜索功能 318
13.3.3全局搜索功能 322
13.4 Android的全局通知机制 323
13.4.1全局通知的类型和实现 324
13.4.2 Toast的使用 325
13.4.3状态栏通知 327
13.5 Android联系人处理 331
13.5.1 Android联系人数据存储框架 331
13.5.2 Android联系人操作 332
13.6小结 334