第1篇 入门篇 2
第1章 Android入门 2
1.1 Android概述 3
1.1.1 Android的定义 3
1.1.2 Android成功案例 5
1.1.3 Android的版本 6
1.1.4 Android市场 8
1.2 Android特性 8
1.2.1 开放性 8
1.2.2 挣脱束缚 9
1.2.3 丰富的硬件 9
1.2.4 开发商 9
1.2.5 Google应用 9
1.3 Android4.3新增特性 9
1.3.1 用户体验 10
1.3.2 多用户切换与受限账户 10
1.3.3 蓝牙 10
1.3.4 WiFi后台自动搜索功能 10
1.3.5 图形 10
1.3.6 音频 11
1.3.7 流媒体加密 11
1.3.8 通知栏 11
1.3.9 相机 11
1.3.10 拨号面板 11
1.3.11 键盘与输入 12
1.3.12 设置 12
1.3.13 支持国际用户 12
1.3.14 新增多国语言支持 12
1.3.15 谷歌套件 12
1.3.16 其他新增特性 12
1.4 如何学习Android 13
1.4.1 如何学好Android 13
1.4.2 AndroidAPI文档的使用 13
1.5 本章小结 14
第2章 搭建Android开发环境 15
2.1 搭建Android开发环境 16
2.1.1 Android开发准备 16
2.1.2 JDK的下载 17
2.1.3 JDK的安装与配置 19
2.1.4 ADT Bundle的下载 22
2.2 第一个Android程序 25
2.2.1 创建Android应用程序 25
2.2.2 创建AVD模拟器 29
2.2.3 运行Android程序 31
2.2.4 调试Android应用程序 31
2.2.5 Android应用开发流程 33
2.3 综合应用 33
2.3.1 创建一个可以运行在所有Android版本上的程序 33
2.3.2 在Android窗口中输出“你好”中文字符串 33
2.4 本章常见错误 35
2.5 本章小结 35
2.6 跟我上机 36
第3章 认识Android模拟器 37
3.1 启动和删除Android模拟器 38
3.1.1 启动Android模拟器 38
3.1.2 删除Android模拟器 39
3.2 Android模拟器常用设置 39
3.2.1 设置语言 40
3.2.2 设置输入法 41
3.2.3 设置日期时间 42
3.3 安装和卸载程序 44
3.3.1 使用adb命令安装和卸载Android程序 44
3.3.2 通过DDMS管理器安装Android程序 46
3.3.3 在Android模拟器中卸载程序 47
3.4 综合应用 48
3.4.1 设置模拟器桌面背景 48
3.4.2 在Android模拟器中安装搜狗拼音输入法 49
3.5 本章常见错误 50
3.6 本章小结 50
3.7 跟我上机 51
第4章 剖析Android程序 52
4.1 Android程序的组成 53
4.1.1 src目录 53
4.1.2 res目录 54
4.1.3 gen目录及R.java文件 56
4.1.4 AndroidManifest.xml文件 58
4.2 Android程序的生命周期 59
4.3 Android程序的基本组件 60
4.3.1 Activity(活动窗口) 60
4.3.2 BroadcastReceiver(广播接收器) 62
4.3.3 Content Provider(数据共享) 63
4.3.4 Service(服务) 65
4.4 综合应用 66
4.4.1 在Android程序中添加Activity 66
4.4.2 在Android程序中添加Service 67
4.5 本章常见错误 68
4.6 本章小结 68
4.7 跟我上机 68
第5章 Android常用组件的使用 69
5.1 Android的UI界面 70
5.1.1 AndroidUI界面概述 70
5.1.2 使用XML布局文件控制UI界面 70
5.1.3 在Java代码中控制UI界面 72
5.1.4 使用XML和Java代码混合控制UI界面 74
5.1.5 开发自定义的View 76
5.2 文本类组件 78
5.2.1 TextView组件 78
5.2.2 EditText组件 81
5.2.3 AutoCompleteTextView组件 83
5.3 按钮类组件 86
5.3.1 Button组件 86
5.3.2 ImageButton组件 88
5.3.3 ToggleButton组件 89
5.4 选择类组件 91
5.4.1 RadioButton组件 91
5.4.2 CheckBox组件 94
5.5 列表类组件 97
5.5.1 ListView组件 97
5.5.2 Spinner组件 102
5.6 图像类组件 104
5.6.1 ImageView组件 104
5.6.2 Gallery组件 106
5.6.3 ImageSwitcher组件 109
5.7 综合应用 111
5.7.1 实现带图标的ListView列表 111
5.7.2 猜猜鸡蛋放在哪只鞋子里 114
5.8 本章常见错误 117
5.9 本章小结 118
5.10 跟我上机 118
第6章 掌握布局管理器 119
6.1 线性布局管理器 120
6.2 绝对布局管理器 124
6.3 框架布局管理器 125
6.4 相对布局管理器 127
6.5 表格布局管理器 129
6.6 综合应用 132
6.6.1 我同意游戏条款 132
6.6.2 应用相对布局管理器显示软件更新提示 135
6.7 本章常见错误 136
6.8 本章小结 137
6.9 跟我上机 137
第7章 Android程序调试与错误处理 139
7.1 输出日志信息的几种方法 140
7.1.1 Log.d方法——输出故障日志信息 140
7.1.2 Log.e方法——输出错误日志信息 141
7.1.3 Log.i方法——输出程序日志信息 142
7.1.4 Log.v方法——输出冗余日志信息 143
7.1.5 Log.w方法——输出警告日志信息 144
7.2 Android程序调试 146
7.3 程序异常处理 147
7.3.1 Android程序出现异常怎么办 147
7.3.2 如何捕捉Android程序异常 148
7.3.3 抛出异常的两种方法 149
7.3.4 何时使用异常处理 152
7.4 综合应用 152
7.4.1 向LogCat视图中输出用户登录时间 152
7.4.2 使用throw关键字在方法中抛出异常 152
7.5 本章常见错误 153
7.6 本章小结 154
7.7 跟我上机 154
第8章 Activity的使用 155
8.1 Activity入门 156
8.1.1 Activity概述 156
8.1.2 Activity的4种状态 156
8.1.3 Activity的属性 157
8.2 Activity的生命周期 159
8.2.1 Activity生命周期概述 159
8.2.2 Activity的方法 160
8.3 Activity常用操作 164
8.3.1 创建Activity 164
8.3.2 启动一个或多个Activity 165
8.3.3 多个Activity之间的传值 169
8.3.4 关闭Activity 172
8.4 综合应用 172
8.4.1 根据输入的生日判断星座 172
8.4.2 带选择头像的用户注册界面 176
8.4.3 仿QQ客户端登录界面 180
8.5 本章常见错误 183
8.6 本章小结 184
8.7 跟我上机 184
第9章 使用Intent进行通信 186
9.1 Intent对象简介 187
9.1.1 Intent对象概述 187
9.1.2 3种不同的Intent传输机制 187
9.2 Intent对象的组成 188
9.2.1 组件名称 188
9.2.2 动作 189
9.2.3 数据 190
9.2.4 种类 193
9.2.5 附加信息 194
9.2.6 标志 197
9.3 解析Intent对象 199
9.3.1 Intent过滤器 199
9.3.2 通用情况 202
9.3.3 使用Intent匹配 203
9.4 使用Intent传递数据 203
9.4.1 无参数Activity跳转 203
9.4.2 向下一个Activity传递数据 203
9.5 综合应用 209
9.5.1 使用Intent实现直接发送短信 209
9.5.2 使用Intent打开网页 212
9.6 本章常见错误 214
9.7 本章小结 214
9.8 跟我上机 214
第2篇 提高篇 218
第10章 Android高级组件的使用 218
10.1 日期时间类组件 219
10.1.1 AnalogClock组件 219
10.1.2 DigitalClock组件 220
10.2 进度条组件 221
10.2.1 ProgressBar组件 221
10.2.2 SeekBar组件 224
10.2.3 RatingBar组件 227
10.3 对话框及消息提示组件 229
10.3.1 Toast组件 229
10.3.2 Notification组件 231
10.3.3 AlertDialog组件 233
10.4 综合应用 238
10.4.1 显示在标题上的进度条 238
10.4.2 仿手机QQ登录状态显示功能 241
10.5 本章常见错误 244
10.6 本章小结 244
10.7 跟我上机 244
第11章 Android中的事件处理 246
11.1 事件处理概述 247
11.2 处理键盘事件 247
11.3 处理触摸事件 248
11.4 手势的创建与识别 250
11.4.1 手势的创建 251
11.4.2 手势的导出 252
11.4.3 手势的识别 252
11.5 综合应用 254
11.5.1 查看手势对应分值 254
11.5.2 使用手势输入数字 255
11.6 本章常见错误 257
11.7 本章小结 257
11.8 跟我上机 257
第12章 数据存储技术 259
12.1 使用SharedPreferences对象存储数据 260
12.2 使用Files对象存储数据 268
12.2.1 openFileOutput()和openFilelnput()方法 268
12.2.2 对Android模拟器中的SD卡进行操作 271
12.3 SQLite数据库编程 273
12.4 综合应用 277
12.4.1 遍历Android模拟器的SD卡 277
12.4.2 在SQLite数据库中批量添加数据 278
12.4.3 使用列表显示数据表中全部数据 281
12.5 本章常见错误 282
12.6 本章小结 283
12.7 跟我上机 283
第13章 Content Provider实现数据共享 285
13.1 Content Provider概述 286
13.1.1 数据模型 286
13.1.2 URI的用法 287
13.2 Content Provider的常用操作 287
13.2.1 查询数据 288
13.2.2 增加记录 289
13.2.3 增加新值 289
13.2.4 批量更新记录 289
13.2.5 删除记录 289
13.3 自定义Content Provider 290
13.3.1 继承Content Provider类 290
13.3.2 声明Content Provider 292
13.4 综合应用 293
13.4.1 查询联系人ID和姓名 293
13.4.2 自动补全联系人姓名 294
13.5 本章常见错误 295
13.6 本章小结 296
13.7 跟我上机 296
第14章 图形图像处理技术 298
14.1 Android中的常用绘图类 299
14.1.1 Paint类 299
14.1.2 Canvas类 301
14.1.3 Bitmap类 302
14.1.4 BitmapFactory 303
14.2 绘制2D图像 303
14.2.1 绘制几何图形 304
14.2.2 绘制文本 306
14.2.3 绘制路径 308
14.2.4 绘制图片 311
14.3 常见的图像特效 313
14.3.1 旋转图像 313
14.3.2 缩放图像 315
14.3.3 倾斜图像 317
14.3.4 平移图像 318
14.3.5 使用BitmapShader渲染图像 320
14.4 Android中的动画 321
14.4.1 实现逐帧动画 321
14.4.2 实现补间动画 322
14.5 综合应用 329
14.5.1 实现带描边的圆角图片 329
14.5.2 实现放大镜效果 330
14.5.3 忐忑的精灵 332
14.6 本章常见错误 333
14.7 本章小结 334
14.8 跟我上机 334
第15章 利用OpenGL实现3D图形 337
15.1 OpenGL概述 338
15.2 绘制3D图形 339
15.2.1 构建3D开发的基本框架 339
15.2.2 绘制一个模型 341
15.3 添加效果 345
15.3.1 应用纹理贴图 346
15.3.2 旋转 347
15.3.3 光照效果 349
15.3.4 透明效果 351
15.4 综合应用 352
15.4.1 绘制一个不断旋转的金字塔 352
15.4.2 使用Android机器人对立方体进行纹理贴图 354
15.5 本章常见错误 356
15.6 本章小结 356
15.7 跟我上机 356
第16章 多媒体应用开发 359
16.1 音频的播放 360
16.1.1 使用MediaPlayer播放音频 360
16.1.2 使用SoundPool播放音频 365
16.2 视频的播放 368
16.2.1 使用VideoView组件播放视频 368
16.2.2 使用MediaPlayer和SurfaceView播放视频 370
16.3 综合应用 374
16.3.1 为游戏界面添加背景音乐和按键音 374
16.3.2 制作开场动画 379
16.4 本章常见错误 380
16.5 本章小结 381
16.6 跟我上机 381
第17章 线程与消息处理 383
17.1 多线程的基本操作 384
17.1.1 创建线程 384
17.1.2 开启线程 385
17.1.3 线程的休眠 385
17.1.4 中断线程 385
17.2 Handler消息传递机制 388
17.2.1 循环者——Looper 388
17.2.2 消息处理类——Handler 390
17.2.3 消息类——Message 391
17.3 综合应用 392
17.3.1 开启新线程实现电子广告牌 392
17.3.2 多彩的霓虹灯 394
17.3.3 简易打地鼠游戏 396
17.4 本章常见错误 398
17.5 本章小结 399
17.6 跟我上机 399
第18章 网络编程技术 401
18.1 通过HTTP访问网络 402
18.1.1 使用HttpURLConnection访问网络 402
18.1.2 使用HttpClient访问网络 410
18.2 使用WebView显示网页 416
18.2.1 使用WebView组件浏览网页 416
18.2.2 使用WebView组件加载HTML代码 418
18.2.3 让WebView组件支持JavaScript 419
18.3 综合应用 421
18.3.1 打造功能实用的网页浏览器 421
18.3.2 获取天气预报 424
18.4 本章常见错误 426
18.5 本章小结 426
18.6 跟我上机 427
第19章 Service服务的使用 429
19.1 Service概述 430
19.1.1 Service的分类 430
19.1.2 Service类的重要方法 430
19.1.3 Service的声明 432
19.2 Started Service的使用 433
19.2.1 继承IntentService类 434
19.2.2 继承Service类 435
19.2.3 启动服务 436
19.2.4 停止服务 437
19.3 Bound Service的使用 437
19.3.1 继承Binder类 438
19.3.2 使用Messenger类 440
19.3.3 绑定到服务 442
19.4 管理Service的生命周期 443
19.5 综合应用 443
19.5.1 继承IntentService输出当前时间 443
19.5.2 继承Service输出当前时间 446
19.5.3 继承Binder类绑定服务显示时间 447
19.5.4 使用Messenger类绑定服务显示时间 450
19.6 本章常见错误 453
19.7 本章小结 453
19.8 跟我上机 453
第3篇 实战篇 456
第20章 Android游戏——数独游戏 456
20.1 需求分析 457
20.2 程序开发及运行环境 457
20.3 程序文件夹组织结构 457
20.4 公共资源文件 458
20.4.1 字符串资源文件 458
20.4.2 数组资源文件 458
20.4.3 颜色资源文件 459
20.5 游戏主窗体设计 459
20.5.1 设计系统主窗体布局文件 460
20.5.2 为界面中的按钮添加监听事件 462
20.5.3 绘制数独游戏界面 463
20.5.4 数独游戏的实现算法 468
20.6 虚拟键盘模块设计 472
20.6.1 设计虚拟键盘布局文件 473
20.6.2 在虚拟键盘中显示可以输入的数字 473
20.7 游戏设置模块设计 475
20.7.1 设计游戏设置布局文件 476
20.7.2 设置是否播放背景音乐和显示提示 476
20.7.3 控制背景音乐的播放与停止 477
20.8 关于模块设计 477
20.8.1 设计关于窗体布局文件 478
20.8.2 显示关于信息 478
20.9 将程序安装到Android手机上 479
20.10 本章小结 480
第21章 Android应用——家庭理财通 481
21.1 需求分析 482
21.2 系统设计 482
21.2.1 系统目标 482
21.2.2 系统功能结构 482
21.2.3 系统业务流程图 482
21.2.4 系统编码规范 483
21.3 系统开发及运行环境 484
21.4 数据库与数据表设计 485
21.4.1 数据库分析 485
21.4.2 创建数据库 485
21.4.3 创建数据表 486
21.5 系统文件夹组织结构 487
21.6 公共类设计 488
21.6.1 数据模型公共类 488
21.6.2 Dao公共类 490
21.7 登录模块设计 495
21.7.1 设计登录布局文件 495
21.7.2 登录功能的实现 496
21.7.3 退出登录窗口 497
21.8 系统主窗体设计 497
21.8.1 设计系统主窗体布局文件 498
21.8.2 显示各功能窗口 499
21.8.3 定义文本及图片组件 500
21.8.4 定义功能图标及说明文字 501
21.8.5 设置功能图标及说明文字 501
21.9 收入管理模块设计 503
21.9.1 设计新增收入布局文件 503
21.9.2 设置收入时间 507
21.9.3 添加收入信息 508
21.9.4 重置新增收入窗体中的各个控件 509
21.9.5 设计收入信息浏览布局文件 509
21.9.6 显示所有的收入信息 510
21.9.7 单击指定项时打开详细信息 511
21.9.8 设计修改/删除收入布局文件 512
21.9.9 显示指定编号的收入信息 515
21.9.10 修改收入信息 517
21.9.11 删除收入信息 518
21.10 便签管理模块设计 518
21.10.1 设计新增便签布局文件 519
21.10.2 添加便签信息 520
21.10.3 清空便签文本框 521
21.10.4 设计便签信息浏览布局文件 521
21.10.5 显示所有的便签信息 523
21.10.6 单击指定项时打开详细信息 525
21.10.7 设计修改/删除便签布局文件 526
21.10.8 显示指定编号的便签信息 528
21.10.9 修改便签信息 528
21.10.10 删除便签信息 529
21.11 系统设置模块设计 529
21.11.1 设计系统设置布局文件 530
21.11.2 设置登录密码 531
21.11.3 重置密码文本框 531
21.12 开发常见问题与解决 532
21.12.1 程序在装有Android系统的手机上无法运行 532
21.12.2 无法将最新修改在Android模拟器中体现 532
21.12.3 退出系统后还能使用记录的密码登录 532
21.13 本章小结 533