第一部分 开发技术 2
第0章 如何学好编程 2
第1章 Android快速入门 4
1.1 什么是Android 4
1.1.1 平台特性 4
1.1.2 平台架构 5
1.1.3 Android市场 5
1.2 搭建Android开发环境 6
1.2.1 系统需求 6
1.2.2 JDK下载 6
1.2.3 JDK安装 8
1.2.4 Android SDK下载与安装 9
1.2.5 Eclipse下载与安装 14
1.2.6 Eclipse汉化 15
1.2.7 ADT插件安装及配置 19
1.3 第一个Android程序 23
1.3.1 创建Android应用程序 23
1.3.2 Android项目结构说明 25
1.3.3 运行Android应用程序 28
1.3.4 调试Android应用程序 29
1.3.5 Android应用开发流程 30
1.4 术语 30
1.5 小结 31
1.6 练习 31
第2章 Android模拟器与工具 32
2.1 使用Android模拟器 32
2.1.1 模拟器概述 32
2.1.2 Android虚拟设备和模拟器 33
2.1.3 Android模拟器启动与停止 34
2.1.4 控制模拟器 34
2.1.5 模拟器与磁盘镜像 35
2.1.6 Android 4.0模拟器介绍 35
2.1.7 模拟器限制 36
2.1.8 模拟器实战 36
2.2 SDK中常用命令 43
2.2.1 adb命令 44
2.2.2 android命令 46
2.2.3 emulator命令 47
2.2.4 mksdcard命令 49
2.3 术语 55
2.4 小结 55
2.5 练习 55
第3章 用户界面设计 56
3.1 控制UI界面 56
3.1.1 使用XML布局文件控制UI界面 56
3.1.2 在代码中控制UI界面 58
3.1.3 使用XML和Java代码混合控制UI界面 60
3.1.4 开发自定义的View 62
3.2 布局管理器 65
3.2.1 线性布局 65
3.2.2 表格布局 67
3.2.3 帧布局 70
3.2.4 相对布局 71
3.3 术语 75
3.4 小结 75
3.5 练习 75
第4章 Android提供的组件 76
4.1 基本组件 76
4.1.1 文本框(TextView) 76
4.1.2 编辑框(EditText) 78
4.1.3 普通按钮(Button) 82
4.1.4 图片按钮(ImageButton) 84
4.1.5 图像视图(ImageView) 85
4.1.6 单选按钮(RadioButton) 87
4.1.7 复选按钮(CheckBox) 91
4.1.8 日期、时间选择器 93
4.1.9 计时器(Chronometer) 95
4.2 高级组件 98
4.2.1 自动完成文本框(AutoComplete-TextView) 98
4.2.2 进度条(ProgressBar) 100
4.2.3 拖动条和星级评分条 102
4.2.4 滚动视图(ScrollView) 106
4.2.5 列表选择框(Spinner) 108
4.2.6 列表视图(ListView) 111
4.2.7 网格视图(GridView) 114
4.2.8 图像切换器(ImageSwitcher) 118
4.2.9 画廊视图(Gallery) 120
4.2.10 选项卡 123
4.3 术语 126
4.4 小结 127
4.5 练习 127
第5章 深入理解Activity 128
5.1 Android核心对象——Activity 128
5.1.1 Activity概述 128
5.1.2 Activity的四种状态 129
5.1.3 Activity的生命周期 129
5.1.4 Activity的属性 131
5.2 创建、启动和关闭Activity 132
5.2.1 创建Activity 132
5.2.2 配置Activity 134
5.2.3 启动和关闭Activity 135
5.3 多个Activity的使用 137
5.3.1 使用Bundle在Activity之间交换数据 137
5.3.2 调用另一个Activity并返回结果 144
5.4 使用Fragment 150
5.4.1 创建Fragment 151
5.4.2 在Activity中添加Fragment 151
5.5 术语 157
5.6 小结 157
5.7 练习 157
第6章 意图与广播 158
6.1 Intent对象简介 158
6.1.1 Intent对象的作用 158
6.1.2 三种不同的Intent传输机制 158
6.2 Intent对象的组成 159
6.2.1 组件名称 159
6.2.2 动作 160
6.2.3 数据 161
6.2.4 种类 167
6.2.5 附加信息 168
6.2.6 标志 172
6.3 Intent应用 174
6.3.1 Intent分类 174
6.3.2 Intent过滤器 174
6.4 BroadcastReceiver使用 182
6.4.1 BroadcastReceiver简介 182
6.4.2 BroadcastReceiver应用 182
6.5 术语 186
6.6 小结 186
6.7 练习 186
第7章 用户资源访问 187
7.1 字符串(string)资源 187
7.1.1 定义字符串资源文件 187
7.1.2 使用字符串资源 187
7.2 颜色(color)资源 190
7.2.1 颜色值的定义 190
7.2.2 定义颜色资源文件 190
7.2.3 使用颜色资源 190
7.3 尺寸(dimen)资源 192
7.3.1 Android支持的尺寸单位 192
7.3.2 定义尺寸资源文件 193
7.3.3 使用尺寸资源 193
7.4 使用布局(Layout)资源 197
7.5 数组(array)资源 198
7.5.1 定义数组资源文件 198
7.5.2 使用数组资源 198
7.6 Drawable资源 199
7.6.1 图片资源 199
7.6.2 StateListDrawable资源 203
7.7 样式(style)和主题(theme)资源 206
7.7.1 样式资源 207
7.7.2 主题资源 208
7.8 使用原始XML资源 211
7.9 使用菜单(menu)资源 213
7.9.1 定义菜单资源文件 213
7.9.2 使用菜单资源 214
7.10 Android程序国际化 220
7.11 术语 225
7.12 小结 226
7.13 练习 226
第8章 Android事件处理 227
8.1 事件处理概述 227
8.2 处理键盘事件 227
8.3 处理触摸事件 230
8.4 手势的创建与识别 232
8.4.1 手势的创建 232
8.4.2 手势的导出 233
8.4.3 手势的识别 233
8.5 术语 236
8.6 小结 236
8.7 练习 236
第9章 通知、对话框与警告 237
9.1 通过Toast显示消息提示框 237
9.2 使用AlertDialog实现对话框 239
9.3 使用Notification在状态栏上显示通知 248
9.4 使用AlarmManager设置警告(闹钟) 254
9.4.1 AlarmManager简介 255
9.4.2 设置一个简单的闹钟 255
9.5 术语 259
9.6 小结 259
9.7 练习 259
第10章 Android程序调试 260
10.1 输出日志信息 260
10.1.1 Log.d方法 260
10.1.2 Log.e方法 262
10.1.3 Log.i方法 263
10.1.4 Log.v方法 264
10.1.5 Log.w方法 265
10.2 程序调试 267
10.3 程序异常处理 268
10.3.1 错误 268
10.3.2 捕捉异常 269
10.3.3 抛出异常 270
10.3.4 异常的使用原则 273
10.4 术语 273
10.5 小结 274
10.6 练习 274
第11章 图形图像与动画 275
11.1 常用绘图类 275
11.1.1 Paint类 275
11.1.2 Canvas类 277
11.1.3 Bitmap类 278
11.1.4 BitmapFactory类 279
11.2 绘制2D图像 283
11.2.1 绘制几何图形 283
11.2.2 绘制文本 286
11.2.3 绘制路径 288
11.2.4 绘制图片 290
11.3 为图像添加特效 298
11.3.1 旋转图像 298
11.3.2 缩放图像 300
11.3.3 倾斜图像 301
11.3.4 平移图像 302
11.3.5 使用BitmapShader渲染图像 303
11.4 Android中的动画 307
11.4.1 实现逐帧动画 307
11.4.2 实现补间动画 309
11.5 术语 318
11.6 小结 318
11.7 练习 319
第12章 多媒体应用开发 320
12.1 播放音频与视频 320
12.1.1 使用MediaPlayer播放音频 320
12.1.2 使用SoundPool播放音频 331
12.1.3 使用VideoView播放视频 338
12.1.4 使用MediaPlayer和SurfaceView播放视频 341
12.2 控制相机拍照 345
12.3 术语 350
12.4 小结 350
12.5 练习 351
第13章 Android数据存储技术 352
13.1 数据存储概述 352
13.2 Shared Preferences使用 352
13.3 Internal Storage使用 361
13.4 External Storage使用 366
13.5 SQLite Databases使用 372
13.6 术语 379
13.7 小结 379
13.8 练习 379
第14章 Content Provider使用 380
14.1 Content Provider概述 380
14.1.1 数据模型 380
14.1.2 URI的用法 381
14.2 预定义Content Provider 381
14.2.1 查询数据 383
14.2.2 数据修改 386
14.3 自定义Content Provider 390
14.3.1 继承Content Provider类 391
14.3.2 声明Content Provider 392
14.4 术语 393
14.5 小结 393
14.6 练习 393
第15章 线程与消息处理 394
15.1 实现多线程 394
15.1.1 创建线程 394
15.1.2 开启线程 395
15.1.3 线程的休眠 395
15.1.4 中断线程 397
15.2 Handler消息传递机制 402
15.2.1 循环者Looper简介 402
15.2.2 消息处理类Handler简介 404
15.2.3 消息类Message简介 405
15.3 术语 412
15.4 小结 412
15.5 练习 412
第16章 Service应用 413
16.1 Service概述 413
16.1.1 Service分类 413
16.1.2 Service类中的重要方法 414
16.1.3 Service的声明 415
16.2 创建Started Service 416
16.2.1 继承IntentService类 416
16.2.2 继承Service类 417
16.2.3 启动服务 419
16.2.4 停止服务 419
16.3 创建Bound Service 424
16.3.1 继承Binder类 425
16.3.2 使用Messenger类 427
16.3.3 绑定到服务 428
16.4 管理Service的生命周期 435
16.5 术语 435
16.6 小结 436
16.7 练习 436
第17章 利用OpenGL实现3D图形 437
17.1 OpenGL简介 437
17.2 绘制3D图形 438
17.2.1 构建3D开发的基本框架 438
17.2.2 绘制一个模型 440
17.3 添加效果 445
17.3.1 应用纹理贴图 445
17.3.2 旋转 447
17.3.3 光照效果 448
17.3.4 透明效果 450
17.4 术语 451
17.5 小结 452
17.6 练习 452
第18章 Action Bar使用 453
18.1 Action Bar简介 453
18.2 Action Bar使用 454
18.2.1 增加Action Bar 454
18.2.2 移除Action Bar 454
18.2.3 增加Action Item 455
18.2.4 Action Bar显示选项 458
18.2.5 Action Bar与Tab 459
18.2.6 增加Action View 463
18.2.7 增加Action Provider 466
18.3 术语 469
18.4 小结 469
18.5 练习 469
第19章 定位服务 470
19.1 定位基础 470
19.1.1 获得位置源 470
19.1.2 查看位置源属性 472
19.1.3 监听位置变化事件 474
19.2 谷歌地图服务 477
19.2.1 安装谷歌API插件 477
19.2.2 新建使用谷歌API的Android项目 478
19.2.3 新建使用谷歌API的Android虚拟设备 478
19.2.4 获得地图API密钥 478
19.3 术语 485
19.4 小结 485
19.5 练习 485
第20章 网络编程及Internet应用 486
20.1 通过HTTP访问网络 486
20.1.1 使用HttpURLConnection访问网络 486
20.1.2 使用HttpClient访问网络 496
20.2 使用WebView显示网页 508
20.2.1 使用WebView组件浏览网页 508
20.2.2 使用WebView加载HTML代码 509
20.2.3 让WebView支持JavaScript 510
20.3 术语 516
20.4 小结 516
20.5 练习 516
第二部分 项目实战第21章 家庭理财通 518
21.1 系统分析 518
21.1.1 需求分析 518
21.1.2 可行性分析 518
21.1.3 编写项目计划书 519
21.2 系统设计 520
21.2.1 系统目标 520
21.2.2 系统功能结构 520
21.2.3 系统业务流程图 521
21.2.4 系统编码规范 521
21.3 系统开发及运行环境 522
21.4 数据库与数据表设计 523
21.4.1 数据库分析 523
21.4.2 创建数据库 523
21.4.3 创建数据表 523
21.5 创建项目 524
21.6 系统文件夹组织结构 525
21.7 公共类设计 525
21.7.1 数据模型公共类 526
21.7.2 Dao公共类 527
21.8 登录模块设计 531
21.8.1 设计登录布局文件 531
21.8.2 登录功能的实现 532
21.8.3 退出登录窗口 532
21.9 系统主窗体设计 533
21.9.1 设计系统主窗体布局文件 533
21.9.2 显示各功能窗口 534
21.9.3 定义文本及图片组件 535
21.9.4 定义功能图标及说明文字 535
21.9.5 设置功能图标及说明文字 536
21.10 收入管理模块设计 537
21.10.1 设计新增收入布局文件 537
21.10.2 设置收入时间 540
21.10.3 添加收入信息 542
21.10.4 重置新增收入窗口中的各个控件 542
21.10.5 设计收入信息浏览布局文件 543
21.10.6 显示所有的收入信息 544
21.10.7 单击指定项时打开详细信息 545
21.10.8 设计修改/删除收入布局文件 545
21.10.9 显示指定编号的收入信息 549
21.10.10 修改收入信息 550
21.10.11 删除收入信息 551
21.11 便签管理模块设计 551
21.11.1 设计新增便签布局文件 551
21.11.2 添加便签信息 553
21.11.3 清空便签文本框 554
21.11.4 设计便签信息浏览布局文件 554
21.11.5 显示所有的便签信息 556
21.11.6 单击指定项时打开详细信息 557
21.11.7 设计修改/删除便签布局文件 557
21.11.8 显示指定编号的便签信息 559
21.11.9 修改便签信息 560
21.11.10 删除便签信息 560
21.12 系统设置模块设计 561
21.12.1 设计系统设置布局文件 561
21.12.2 设置登录密码 562
21.12.3 重置密码文本框 562
21.13 运行项目 563
21.14 将程序安装到Android手机上 564
21.15 开发常见问题与解决方法 565
21.15.1 程序在装有Android系统的手机上无法运行 565
21.15.2 无法将最新修改在Android模拟器中体现 565
21.15.3 退出系统后还能使用记录的密码登录 565
21.16 小结 565
附录 常用网上资源 566