第1课 全面认识Android 2
1.1 手机操作系统 2
1.1.1 主流手机操作系统 2
1.1.2 Android手机操作系统 3
1.2 Android概述 4
1.2.1 Android发展历史 4
1.2.2 Android版本命名 5
1.2.3 Android特性 7
1.2.4 开放手机联盟 8
1.3 Android系统架构 8
1.3.1 应用程序 8
1.3.2 应用程序框架 9
1.3.3 核心库 10
1.3.4 Android运行时 10
1.3.5 Linux内核 10
1.4 搭建Android开发环境 11
1.4.1 安装JDK 11
1.4.2 配置环境变量 12
1.4.3 安装ADT 14
1.4.4 安装Android SDK 16
1.5 模拟器 17
1.5.1 模拟器简介 17
1.5.2 创建模拟器 18
1.5.3 启动模拟器 19
1.5.4 控制模拟器 20
1.6 实例应用:熟悉Android系统 21
1.6.1 实例目标 21
1.6.2 技术分析 21
1.6.3 实现步骤 21
1.7 拓展训练 23
1.8 课后练习 24
第2课 创建第一个Android程序 28
2.1 创建一个问候程序 28
2.1.1 创建项目 28
2.1.2 项目目录结构 31
2.1.3 AndroidManifest.xml文件结构 35
2.2 设计程序界面 36
2.2.1 使用XML标记设计 36
2.2.2 使用代码设计 39
2.2.3 使用混合方式设计 40
2.3 编写代码 40
2.4 运行程序 41
2.5 调试程序 42
2.5.1 设置断点 42
2.5.2 DDMS 43
2.5.3 手动方式 45
2.6 签名程序 46
2.6.1 使用命令行 46
2.6.2 使用ADT工具 47
2.7 Android应用程序生命周期 48
2.8 Android核心组件简介 49
2.8.1 Activity简介 49
2.8.2 BroadcastReceiver简介 50
2.8.3 ContentProvider简介 51
2.8.4 Service简介 51
2.8.5 Intent简介 52
2.8.6 IntentFilter简介 53
2.9 实例应用:实现用户登录功能 54
2.9.1 实例目标 54
2.9.2 技术分析 54
2.9.3 实现步骤 54
2.10 拓展训练 58
2.11 课后练习 58
第3课 Android工具集 62
3.1 ADB工具 62
3.1.1 配置ADB工具 62
3.1.2 查看设备信息 62
3.1.3 管理软件 63
3.1.4 执行Shell命令 64
3.1.5 移动文件 65
3.1.6 查看bug报告 66
3.1.7 转发端口 66
3.1.8 启动和关闭ADB服务 67
3.2 Android工具 67
3.2.1 查看Android版本的ID信息 68
3.2.2 创建AVD设备 68
3.2.3 删除AVD设备 69
3.3 emulator工具 70
3.3.1 参数详解 70
3.3.2 使用模拟器控制台 73
3.4 mksdcard工具 74
3.5 拓展训练 75
3.6 课后练习 75
第4课 定义应用程序布局 78
4.1 View类简介 78
4.2 线性布局 78
4.2.1 垂直线性布局 79
4.2.2 水平线性布局 80
4.3 相对布局 82
4.4 表格布局 84
4.5 帧布局 87
4.6 绝对布局 88
4.7 网格布局 91
4.7.1 网格布局简介 91
4.7.2 网格布局的使用 93
4.8 实例应用:创建计算器 97
4.8.1 实例目标 97
4.8.2 技术分析 97
4.8.3 实现步骤 98
4.9 扩展训练 100
4.10 课后练习 100
第5课 Android基础控件详解 104
5.1 文本框与编辑框 104
5.11 文本框 104
5.1.2 编辑框 107
5.2 按钮 111
5.2.1 普通按钮 111
5.2.2 图片按钮 112
5.3 单选按钮与复选框 115
5.3.1 单选按钮 115
5.3.2 复选框 116
5.4 列表选择框 120
5.5 列表视图 123
5.5.1 使用ListView控件创建列表视图 123
5.5.2 Activity继承ListActivity实现列表视图 125
5.6 图像视图 126
5.7 日期与时间选择器 128
5.7.1 日期选择器 128
5.7.2 时间选择器 129
5.8 计时器 131
5.9 实例应用:设计用户注册界面 133
5.9.1 实例目标 133
5.9.2 技术分析 134
5.9.3 实现步骤 134
5.10 扩展训练 137
5.11 课后练习 138
第6课 Android高级界面设计 140
6.1 自动完成文本框 140
6.2 进度条 141
6.3 拖动条与星级评分条 145
6.3.1 拖动条 145
6.3.2 星级评分条 148
6.4 选项卡 150
6.5 图像切换器 151
6.6 滚动视图 154
6.7 网格视图 155
6.8 画廊视图 158
6.9 实例应用:幻灯片式图片浏览器 161
6.9.1 实例目标 161
6.9.2 技术分析 161
6.9.3 实现步骤 161
6.10 扩展训练 164
6.11 课后练习 164
第7课 程序菜单与对话框 166
7.1 菜单使用 166
7.1.1 菜单类Menu 166
7.1.2 选项菜单 167
7.1.3 子菜单 169
7.1.4 上下文菜单 171
7.2 使用对话框 172
7.2.1 对话框简介 173
7.2.2 普通对话框 173
7.2.3 列表对话框 175
7.2.4 单选按钮对话框 177
7.2.5 复选框对话框 180
7.2.6 进度对话框 182
7.2.7 日期及时间选择对话框 185
7.3 消息提示 190
7.3.1 Toast的使用 190
7.3.2 Notification 195
7.4 扩展训练 198
7.5 课后练习 198
第8课 Android事件处理机制 202
8.1 Android事件处理概述 202
8.1.1 基于回调机制的事件处理 202
8.1.2 基于监听接口的事件处理 202
8.2 处理键盘事件 203
8.2.1 物理按键简介 203
8.2.2 基于回调机制的按键事件处理 204
8.2.3 基于监听接口的按键事件处理 206
8.3 处理触摸事件 207
8.3.1 基于回调机制的触摸事件处理 208
8.3.2 基于监听接口的触摸事件处理 209
8.4 手势的创建与识别 210
8.4.1 手势的创建 210
8.4.2 手势的导出 211
8.4.3 手势的识别 211
8.5 实例应用:实现一个简单的计算器 214
8.5.1 实例目标 214
8.5.2 技术分析 214
8.5.3 实现步骤 214
8.6 扩展训练 218
8.7 课后练习 218
第9课 应用程序之间的通信 222
9.1 Activity的概述 222
9.1.1 Activity的状态及状态间的转换 222
9.1.2 Activity栈 223
9.1.3 Activity生命周期 223
9.2 使用Activity 224
9.2.1 创建Activity 224
9.2.2 配置Activity 225
9.2.3 启动和关闭Activity 225
9.3 多个Activity交换数据 226
9.3.1 使用Bundle在Activity之间交换数据 226
9.3.2 调用另一个Activity 229
9.4 使用Fragment 231
9.4.1 创建Fragment 232
9.4.2 在Activity中添加Fragment 232
9.5 Intent对象成员 233
9.5.1 组件名称 234
9.5.2 动作 234
9.5.3 数据 235
9.5.4 种类 236
9.5.5 额外 236
9.5.6 标记 237
9.6 Intent的使用 237
9.6.1 在Activity之间使用Intent传递信息 237
9.6.2 Intent过滤器 240
9.6.3 使用Intent发送广播消息 243
9.7 实例应用:自我介绍 245
9.7.1 实例目标 245
9.7.2 技术分析 245
9.7.3 实现步骤 245
9.8 扩展训练 253
9.9 课后练习 254
第10课 数据存储解决方案 258
10.1 简单存储 258
10.1.1 使用Shared Preferences存取数据 258
10.1.2 数据的存储位置和格式 262
10.1.3 存取复杂类型的数据 263
10.2 文件存储 266
10.2.1 内部存储 266
10.2.2 外部存储 269
10.3 数据共享 282
10.3.1 Content Provider概述 282
10.3.2 预定义Content Provider 284
10.3.3 自定义Content Provider 288
10.4 实例应用:使用电话号码查询联系人信息 294
10.4.1 实例目标 294
10.4.2 技术分析 295
10.4.3 实现步骤 295
10.5 扩展训练 298
10.6 课后练习 298
第11课 SQLite数据库存储 302
11.1 SQLite数据库简介 302
11.2 手动建库 302
11.3 SQLite数据库管理工具 305
11.4 在Android中使用SQLite数据库 307
11.4.1 SQLite的简单应用 307
11.4.2 SQLite中的数据绑定 312
11.4.3 持久化数据库引擎(db4o) 319
11.5 将数据库与应用程序一起发布 323
11.6 实例应用:实现一个简单的英文词典 324
11.6.1 实例目标 324
11.6.2 技术分析 324
11.6.3 实现步骤 324
11.7 拓展训练 328
11.8 课后练习 328
第12课 访问系统资源和国际化 332
12.1 资源简介 332
12.1.1 资源的分类 332
12.1.2 引用资源 332
12.2 使用资源 334
12.2.1 字符串资源 334
12.2.2 颜色资源 336
12.2.3 XML资源 337
12.2.4 菜单资源 338
12.2.5 尺寸资源 340
12.2.6 布局资源 342
12.2.7 drawable资源 343
12.2.8 基础类型资源 345
12.3 国际化 346
12.4 拓展训练 348
12.5 课后练习 348
第13课 调用Android系统服务 352
13.1 Service简介 352
13.1.1 Service的分类 352
13.1.2 Service类的重要方法 352
13.1.3 Service的声明 353
13.1.4 Service生命周期 354
13.2 Service操作 357
13.2.1 创建Started Service 357
13.2.2 创建Bound Service 359
13.3 系统Service 366
13.3.1 获得系统服务 366
13.3.2 电话管理器TelephonyManager 366
13.3.3 短信管理器SmsManager 368
13.3.4 音频管理器AudioManager 370
13.3.5 闹钟管理器AIarmManage 371
13.4 广播接收者BroadcastReceiver 375
13.5 实例应用:实现一个简单的多次定时提醒功能 378
13.5.1 实例目标 378
13.5.2 技术分析 379
13.5.3 实现步骤 379
13.6 拓展训练 382
13.7 课后练习 382
第14课 多媒体 386
14.1 多媒体开发详解 386
14.1.1 Open Core 386
14.1.2 MediaPlayer 387
14.1.3 MediaRecorder 388
14.2 使用MediaPlayer播放MP3 390
14.3 视频处理 392
14.3.1 使用ViedoView播放视频 392
14.3.2 使用SurfaceView播放视频 395
14.4 实例应用:创建音乐播放器 396
14.4.1 实例目标 396
14.4.2 技术分析 397
14.4.3 实现步骤 397
14.5 扩展训练 404
14.6 课后练习 404
第15课 图形图像处理技术 408
15.1 常用绘图类的介绍 408
15.1.1 Paint与Color类 408
15.1.2 Canvas类 408
15.1.3 Bitmap类 409
15.1.4 BitmapFactory类 409
15.2 绘制2D图像 410
15.2.1 绘制几何图形 410
15.2.2 绘制文本(字符串) 413
15.2.3 绘制路径 415
15.2.4 绘制图片(图像) 417
15.3 图形特效 419
15.3.1 图像旋转 419
15.3.2 图像缩放 420
15.3.3 图像倾斜 421
15.3.4 图像平移 423
15.3.5 图像像素的操作(半透明) 424
15.3.6 Shader类的操作 425
15.4 拓展训练 427
15.5 课后练习 427
第16课 网络编程 430
16.1 Android网络接口 430
16.1.1 Java标准接口 430
16.1.2 Apache接口 431
16.1.3 Android网络接口 431
16.2 HTTP网络编程 432
16.2.1 使用HttpURLConnection 432
16.2.2 使用HttpCIient 440
16.3 Socket网络编程 444
16.3.1 Socket编程基础 444
16.3.2 Socket应用 446
16.4 Web网络编程 449
16.4.1 浏览网页 449
16.4.2 与JavaScript共享数据 452
16.5 网络编程时的乱码解决方案 454
16.6 拓展训练 456
16.7 课后练习 456
第17课 综合案例 460
17.1 公交查询系统 460
17.1.1 功能简介 460
17.1.2 数据库的设计 460
17.1.3 主界面 461
17.1.4 站点查询 463
17.1.5 线路查询 468
17.1.6 换乘查询 474
17.1.7 公共类 479
17.2 打地鼠小游戏 482
17.2.1 功能简介 482
17.2.2 主界面 483
17.2.3 简单模式 485
17.2.4 困难模式 489
17.2.5 帮助和退出 492