第1章 Android简介 1
1.1 Android简介 1
1.1.1 什么是Android 1
1.1.2 其他常见的移动操作系统 2
1.1.3 Android系统的优势 4
1.2 Android发展历程 5
1.2.1 Android发展简史 5
1.2.2 Android SDK版本发展及各版本新特性 6
1.2.3 Android前景展望 10
参考文献 10
第2章 Android系统结构 11
2.1 Android体系结构 11
2.1.1 内核层(Linux Kernel) 12
2.1.2 Android运行时环境(Android Runtime) 13
2.1.3 函数库层(Libraries) 14
2.1.4 应用程序框架层(Application Framework) 15
2.1.5 应用程序层(Applications) 16
2.2 Linux内核简介 16
2.2.1 Linux内核简介 16
2.2.2 Linux进程管理 18
2.2.3 Linux文件系统 23
2.2.4 Linux线程管理 23
2.2.5 Linux内存管理 24
参考文献 25
第3章 Android应用编程基础 26
3.1 Android SDK 26
3.2 Android NDK 27
3.3 Android应用执行环境的特点 27
3.3.1 有限的资源 27
3.3.2 应用程序之间的复用 28
3.3.3 可互换的应用程序 28
3.4 应用程序结构 29
3.4.1 Activity 29
3.4.2 Service 32
3.4.3 Content Provider 33
3.4.4 Intent 34
3.4.5 BroadcastReceiver 36
3.4.6 应用程序资源 37
3.4.7 安全与权限机制 39
3.4.8 AndroidManifest.xml 40
3.5 前置技能 42
参考文献 43
第4章 用户界面 44
4.1 布局类型 45
4.2 控件类型 47
4.2.1 用户操作的捕获与处理 48
4.2.2 常用的一些控件 49
4.3 通知消息 51
4.3.1 浮出消息(Toast) 51
4.3.2 顶部状态通知栏(Status Bar Notification) 53
4.3.3 对话框(Dialog) 56
4.4 菜单(Menu) 61
4.4.1 选项菜单 61
4.4.2 上下文菜单 62
4.4.3 多级菜单 64
4.5 App Widget(桌面小插件) 65
4.5.1 App Widget简介 65
4.5.2 APp Widget示例 65
参考文献 72
第5章 数据存储与共享 73
5.1 两种基本的数据存储方式 73
5.1.1 SharedPreferences 73
5.1.2 文件存储:File 77
5.2 使用SQLite数据库存取数据 82
5.2.1 SQLite简介 82
5.2.2 实现SQLite数据库访问器 83
5.2.3 SQLite示例 87
5.3 Content Provider 91
5.3.1 Content Provider简介 91
5.3.2 通过Content Provider查询数据 93
5.3.3 通过Content Provider修改数据 95
5.3.4 创建Content Provider 97
5.3.5 使用NotePadProvider 102
参考文献 104
第6章 多进程与多线程 105
6.1 进程与线程概念 105
6.1.1 什么是进程 105
6.1.2 进程的特征 105
6.1.3 进程的状态及状态切换 106
6.1.4 什么是线程 106
6.1.5 线程的状态及状态切换 107
6.1.6 进程与线程的关系 107
6.1.7 多线程简介 108
6.1.8 多进程简介 108
6.1.9 同步和互斥问题 109
6.2 Android进程与线程 109
6.2.1 Android进程模型 109
6.2.2 Android线程 113
6.2.3 Android的单线程模型 114
6.2.4 Android多线程 114
6.3 消息机制 118
6.3.1 消息机制的引入 118
6.3.2 Android消息机制的构成 118
6.3.3 消息机制示例 120
6.4 进程间通信 125
6.4.1 Intent 125
6.4.2 Intent Filter 127
6.4.3 Android IPC 129
6.4.4 AIDL 130
6.5 生产者/消费者模型 134
6.5.1 生产者/消费者模型简介 134
6.5.2 Java下解决互斥问题 134
6.5.3 Android下的示例Project 136
参考文献 141
第7章 多媒体编程 142
7.1 音视频支持 142
7.1.1 播放音频 142
7.1.2 录制音频 146
7.1.3 播放视频 147
7.1.4 录制视频 147
7.2 动画效果 150
7.2.1 帧动画(Frame Animation) 150
7.2.2 补间动画(Tween Animation) 152
7.2.3 属性动画系统(Property Animation System) 157
7.3 双缓冲技术 164
7.3.1 双缓冲技术简介 164
7.3.2 Android中的双缓冲技术 164
7.4 使用Path类绘制2D图形 169
7.4.1 Path类介绍 169
7.4.2 触摸画点 170
7.4.3 画线段 172
7.4.4 画其他几何图形 173
参考文献 174
第8章 网络开发 175
8.1 网络通信支持 175
8.1.1 GSM 176
8.1.2 3G 178
8.1.3 Wi-Fi 179
8.1.4 蓝牙 182
8.1.5 NFC 187
8.1.6 小结 188
8.2 Http通信 189
8.2.1 Http简介 189
8.2.2 使用HttpClient接口 190
8.2.3 使用HttpURLConnection接口 193
8.3 Socket通信 196
8.3.1 Socket简介 196
8.3.2 Socket类型 197
8.3.3 Socket连接过程 197
8.3.4 Socket通信示例 198
8.4 Web服务 205
8.4.1 Web服务简介 205
8.4.2 Web服务的使用方式 207
8.4.3 Android使用Web服务 208
8.5 WebView 219
8.5.1 WebView简介 219
8.5.2 使用WebView显示远程网页 220
8.5.3 为WebView添加功能 222
8.6 Wi-Fi的管理与使用 224
8.6.1 Wi-Fi简介 224
8.6.2 Wi-Fi API 224
8.7 Bluetooth的管理与使用 226
8.7.1 Bluetooth简介 226
8.7.2 Bluetooth API 227
8.7.3 Bluetooth示例 228
8.8 NFC 236
8.8.1 NFC简介 236
8.8.2 NFC API 237
8.8.3 NFC示例 238
参考文献 244
第9章 Android WebKit 245
9.1 Web 2.0/3.0技术及应用简介 245
9.1.1 Web 2.0 245
9.1.2 Web 3.0 247
9.2 WebKit引擎 247
9.2.1 WebKit简介 247
9.2.2 Android中的WebKit目录和框架 248
9.3 Android上的WebKit开发 250
9.3.1 基本开发 250
9.3.2 高级开发 257
参考文献 270
第10章 NDK入门 271
10.1 NDK简介 271
10.1.1 Android NDK组成 271
10.1.2 NDK API的性质 271
10.1.3 NDK的作用 272
10.1.4 使用NDK的注意事项 272
10.2 Windows下NDK开发环境的搭建 272
10.2.1 开发环境组成 272
10.2.2 安装Android NDK 273
10.2.3 安装Cygwin 273
10.2.4 安装Eclipse下C/C+++开发工具 277
10.2.5 安装Eclipse下Sequoyah插件 280
10.2.6 验证开发环境:NDK入门示例 281
10.3 Windows下NDK开发示例 288
10.3.1 JNI简介 288
10.3.2 NDK示例 292
参考文献 296
第11章 游戏开发入门 297
11.1 游戏简介 297
11.1.1 游戏的定义 297
11.1.2 电子游戏 297
11.2 Android游戏开发入门 301
11.2.1 Android自带示例Snake简析 301
11.2.2 俄罗斯方块的实现 307
参考文献 334
第12章 Chrome扩展 335
12.1 Chrome简介 335
12.1.1 Chrome的产生 335
12.1.2 Chrome的优势 336
12.1.3 扩展的概念 336
12.2 Chrome与Firefox的比较 337
12.2.1 Chrome与Firefox的内核比较 337
12.2.2 页面加载过程对比 338
12.2.3 扩展性对比 338
12.2.4 对浏览器的性能影响 338
12.2.5 扩展数比较 338
12.2.6 内存消耗 339
12.3 Chrome扩展组件介绍 339
12.3.1 Chrome扩展插件入门 339
12.3.2 Manifest文件介绍 341
12.3.3 Browser action介绍 344
12.3.4 page action介绍 346
12.3.5 content script介绍 349
12.3.6 Theme(主题) 355
12.3.7 权限 356
12.3.8 消息传递 357
12.3.9 安全策略 360
12.3.10 APP打包 360
参考文献 361