第1章 从零开始认识Android 1
1.1 智能手机和系统 1
1.1.1 智能手机的特点 1
1.1.2 常用的手机系统 2
1.2 Android简介 3
1.2.1 Android的诞生 3
1.2.2 Android的发展 3
1.2.3 Android的特点和优势 4
1.3 Android的系统架构 6
1.3.1 系统架构概述 6
1.3.2 应用程序 6
1.3.3 应用程序框架 7
1.3.4 核心库 7
1.3.5 Android运行时 8
1.3.6 Linux内核 9
1.4 Android的四大组件 9
1.4.1 Activity组件 9
1.4.2 Service组件 10
1.4.3 BroadcastReceiver组件 10
1.4.4 Content Provider组件 10
1.5 Android 4.4 11
1.5.1 Android 4.4的新增功能 11
1.5.2 Android 4.4的改进功能 12
1.5.3 Android 4.4的发展方向 12
1.6 思考与练习 13
第2章 Android开发环境与开发工具 15
2.1 配置Android开发环境 15
2.1.1 安装JDK工具包 15
2.1.2 配置环境变量 16
2.1.3 安装ADT插件 18
2.1.4 实验指导——手动安装ADT插件和汉化Eclipse工具 20
2.2 安装Android SDK工具包 21
2.3 使用Android模拟器 23
2.3.1 创建模拟器 23
2.3.2 启动模拟器 25
2.3.3 控制模拟器 26
2.3.4 使用模拟器控制台 27
2.4 Android工具 28
2.4.1 查看Android版本的ID信息 28
2.4.2 创建AVD设备 29
2.4.3 删除AVD设备 30
2.5 Emulator工具 31
2.6 实验指导——管理SD卡 34
2.7 Keytool工具和Jarsigner工具 35
2.8 实验指导——使用ADT签名程序 36
2.9 ADB工具 37
2.9.1 查看ADB版本 37
2.9.2 查看设备信息 38
2.9.3 管理软件 38
2.9.4 移动文件 40
2.9.5 执行Shell命令 41
2.9.6 查看Bug报告 42
2.9.7 转发端口 43
2.9.8 启动和关闭ADB服务 43
2.10 AAPT工具 43
2.11 DDMS工具 44
2.12 思考与练习 46
第3章 Android应用程序剖析 47
3.1 创建Android应用程序 47
3.2 程序目录解析 49
3.2.1 appcompat_v7包 49
3.2.2 src目录 50
3.2.3 gen目录 52
3.2.4 res目录 53
3.2.5 其他目录 56
3.2.6 AndroidManifest.xml文件 56
3.2.7 projiect.properties文件 58
3.3 应用程序权限说明 58
3.3.1 系统的常用权限 59
3.3.2 声明和调用权限 60
3.4 设计图形界面 62
3.4.1 打开界面文件 62
3.4.2 设计图形界面 63
3.4 运行应用程序 65
3.5 调试应用程序 66
3.5.1 设置断点 66
3.5.2 调试程序 67
3.5.3 输出日志信息 68
3.6 实验指导——倒计时计数功能的实现 69
3.7 思考与练习 71
第4章 用户界面设计 73
4.1 界面编程与视图组件 73
4.1.1 视图组件与容器组件 73
4.1.2 使用XML布局界面 76
4.1.3 使用代码布局界面 79
4.1.4 使用混合方式 80
4.1.5 开发自定义视图 82
4.2 Android界面布局类 83
4.3 线性布局 84
4.4 表格布局 87
4.5 帧布局 89
4.6 相对布局 91
4.7 绝对布局 94
4.8 网格布局 96
4.9 思考与练习 102
第5章 Android基础组件详解 104
5.1 文本类组件 104
5.1.1 文本框 104
5.1.2 编辑框 107
5.2 按钮类组件 108
5.2.1 普通按钮 108
5.2.2 图片按钮 110
5.2.3 单选按钮 111
5.2.4 复选框 114
5.3 图像视图 116
5.4 列表类组件 119
5.4.1 列表框 119
5.4.2 列表视图 122
5.4.3 列表视图高级应用 125
5.5 日期与时间组件 126
5.5.1 日期选择器 127
5.5.2 时间选择器 127
5.5.3 计时器 128
5.6 实验指导——时间和日期处理 129
5.7 思考与练习 131
第6章 应用程序与Activity 133
6.1 Activity简介 133
6.1.1 Activity概述 133
6.1.2 Activity的生命周期 135
6.1.3 Activity的属性 136
6.2 Activity的创建和启动 137
6.2.1 创建Activity 137
6.2.2 配置Activity 139
6.2.3 启动和关闭Activity 140
6.3 多个Activity的使用 140
6.3.1 Activity的切换 141
6.3.2 Activity数据传递 142
6.4 使用Fragment 144
6.4.1 Fragment简介 144
6.4.2 创建Fragment 144
6.4.3 在Activity中添加Fragment 146
6.4.4 操作Fragment 147
6.5 实验指导——单选题应用程序 149
6.6 思考与练习 151
第7章 Intent和BroadcastReceiver的应用 152
7.1 Intent对象简介 152
7.2 Intent对象组成元素 153
7.2.1 组件名称 153
7.2.2 动作 155
7.2.3 种类 160
7.2.4 数据 162
7.2.5 额外 164
7.2.6 标记 164
7.3 实验指导——添加联系人 165
7.4 Intent过滤器 168
7.5 BroadcastReceiver组件 171
7.5.1 BroadcastReceiver简介 171
7.5.2 发送广播 173
7.5.3 有序广播 175
7.5.4 接收系统广播 178
7.6 实验指导——拦截系统短信提示 180
7.7 思考与练习 181
第8章 Android高级界面设计 183
8.1 窗口小部件 183
8.1.1 进度条 183
8.1.2 拖动条 185
8.1.3 星级评分条 187
8.2 图像类控件 188
8.2.1 图像切换器 188
8.2.2 画廊视图 190
8.2.3 滚动视图 190
8.2.4 网格视图 191
8.3 其他控件 194
8.3.1 自动完成编辑框 194
8.3.2 选项卡 196
8.3.3 多页视图 198
8.4 实验指导——拖动条切换图像 200
8.5 思考与练习 202
第9章 访问系统资源 204
9.1 系统资源概述 204
9.1.1 资源类型 204
9.1.2 使用资源 206
9.2 字符串资源 207
9.2.1 定义字符串资源 207
9.2.2 使用字符串资源 209
9.3 数组资源 211
9.3.1 定义数组资源 211
9.3.2 使用数组资源 212
9.4 颜色资源 213
9.4.1 定义颜色资源 213
9.4.2 使用颜色资源 214
9.5 尺寸资源 215
9.5.1 定义尺寸资源 215
9.5.2 使用尺寸资源 216
9.6 类型和主题资源 217
9.6.1 类型资源 217
9.6.2 主题资源 218
9.7 Drawable资源 220
9.7.1 了解Drawable资源 220
9.7.2 定义和使用Drawable资源 221
9.8 菜单资源 223
9.8.1 定义菜单资源 224
9.8.2 使用菜单资源 225
9.9 原始XML资源 228
9.10 实验指导——选择上下文菜单项并更改字体颜色 229
9.11 思考与练习 231
第10章 Android多媒体应用 233
10.1 基本绘图 233
10.1.1 绘图类 233
10.1.2 绘制几何图形 236
10.1.3 绘制路径 240
10.1.4 绘制文本 241
10.2 图像操作 242
10.2.1 绘制图像 243
10.2.2 旋转图像 243
10.2.3 缩放图像 244
10.2.4 平移图像 245
10.2.5 倾斜图像 245
10.3 实验指导——通过定时器扭曲图像 246
10.4 动画特效 249
10.4.1 逐帧动画 249
10.4.2 补间动画 251
10.5 视频和音频 254
10.5.1 使用MediaPlayer播放音频 254
10.5.2 使用VideoView播放视频 258
10.5.3 使用SurfaceVicw播放视频 260
10.6 思考与练习 262
第11章 Android事件处理机制 264
11.1 Android事件处理概述 264
11.2 基于监听的事件 265
11.2.1 监听的处理流程 265
11.2.2 事件监听器 268
11.2.3 内部类和外部类作为事件监听器类 270
11.2.4 匿名内部类作为事件监听器类 272
11.2.5 Activity作为事件监听器类 273
11.2.6 绑定到组件事件属性 273
11.3 基于回调的事件 274
11.3.1 回调机制与监听机制 274
11.3.2 基于回调的事件传播流程 276
11.3.3 基于回调的触摸事件处理 278
11.4 Handler消息传递机制 280
11.4.1 Handler类简介 280
11.4.2 Handler的工作原理 282
11.5 手势的创建与识别 285
11.5.1 手势的创建 286
11.5.2 手势的导出 287
11.5.3 手势的识别 287
11.6 思考与练习 289
第12章 Android数据存储 291
12.1 SharedPreferences对象数据的存储 291
12.1.1 了解SharedPreferences 291
12.1.2 使用SharedPreferences 292
12.1.3 数据存储位置和格式 295
12.2 File数据存储 296
12.2.1 写入数据 296
12.2.2 读取数据 299
12.2.3 保存数据到SDCard 300
12.3 SQLite数据库 302
12.3.1 了解SQLite 302
12.3.2 使用SQLite 304
12.4 内容提供者ContentProvider 310
12.4.1 了解ContentProvider 310
12.4.2 自定义ContentProvider 312
12.5 实验指导——预定义ContentProvider读取联系人 319
12.6 思考与练习 322
第13章 调用Android系统服务 324
13.1 了解Service 324
13.1.1 Service的分类 324
13.1.2 Service的生命周期 325
13.1.3 Service的常用方法 326
13.1.4 声明Service 326
13.2 实验指导——启动和停止Started Service 327
13.3 系统服务 331
13.3.1 获取系统服务 331
13.3.2 使用WindowManager 332
13.3.3 使用AlarmManager 333
13.4 实验指——TelephonyManager实现电话管理器 337
13.5 思考与练习 339
第14章 Android网络编程 341
14.1 网络编程基础 341
14.2 HTTP通信 342
14.2.1 使用HttpURLConnection 342
14.2.2 使用HttpClient 345
14.3 Socket网络编程 345
14.4 Web网络编程 348
14.4.1 使用WebView浏览网页 348
14.4.2 WebView与JavaScript 351
14.5 实验指导——登记系统 352
14.6 思考与练习 353
第15章 贪吃蛇游戏 355
15.1 功能简介 355
15.2 项目结构 355
15.3 实现思路分析 356
15.3.1 游戏界面模块实现 356
15.3.2 游戏控制模块实现 357
15.3.3 TileView类的设计 358
15.3.4 SnakeView类的设计 358
15.4 详细设计 358
15.4.1 Snake类的详细设计 358
15.4.2 TileView类的详细设计 360
15.4.3 SnakeView类的详细设计 361
15.4.4 界面设计 366
参考答案 370
参考文献 374