第1部分 Java与Android的基础 1
第1章 Android基础与开发环境的建立 1
1-1 Android的基础 2
1-1-1 Google与Android 2
1-1-2 Android的版本与特点 2
1-1-3 Android的基本操作界面 3
1-2 Android的系统架构 5
1-3 Android应用程序的组件 6
1-4 Android应用程序的开发环境 8
1-5 下载与安装Android开发环境 9
1-5-1 下载与安装JDK 9
1-5-2 下载与安装Eclipse IDE 10
1-5-3 下载与安装Android SDK 11
1-5-4 创建与启动Android模拟器 16
思考与实践 18
第2章 创建Android应用程序 19
2-1 Java语言、XML文件与Android 20
2-1-1 Java语言基础 20
2-1-2 Android与Java语言 21
2-1-3 Android与XML文件 21
2-2 创建第一个Android应用程序 22
2-3 创建第二个Android应用程序 28
2-3-1 创建第二个Android应用程序 28
2-3-2 在真机上调试运行Android应用程序 33
2-4 Eclipse IDE的项目管理与使用 35
2-4-1 Eclipse IDE的项目管理 35
2-4-2 切换Android SDK的版本 37
2-4-3 Eclipse IDE的基本使用 37
2-5 Android项目架构 39
2-6 Android模拟器的基本使用 42
思考与实践 45
第3章 XML基础与Java基本语法 46
3-1 XML的基础 47
3-1-1 标记语言的基础 47
3-1-2 XML文件的内容 47
3-1-3 XML文件的组成元素 48
3-1-4 XML文件的命名空间 50
3-2 Android使用的Java语言与API 51
3-2-1 Android使用的Java语言 51
3-2-2 Android支持的Java API 51
3-2-3 Android线上文件 52
3-3 Java变量与数据类型 54
3-3-1 变量声明 54
3-3-2 Java的基本数据类型 55
3-3-3 常量声明 56
3-3-4 赋值语句 56
3-4 Java运算符 56
3-5 Java流程控制 57
3-5-1 条件控制 57
3-5-2 循环控制 61
3-6 Java类方法 64
3-6-1 创建Java的类方法 64
3-6-2 参数传递与返回值 65
3-6-3 Java变量的作用域 66
3-6-4 可变长度的方法参数 67
3-7 Java数组与字符串 67
3-7-1 数组 67
3-7-2 字符串 69
3-7-3 StringBuffer类 70
3-8 Java异常处理 70
思考与实践 72
第4章 Android使用的面向对象语法 74
4-1 对象的基础 75
4-2 类与对象 76
4-2-1 Java的类与对象 76
4-2-2 重载方法与链式调用方法 80
4-2-3 静态成员与静态初始代码块 81
4-3 类的继承 82
4-4 嵌套类与匿名内层类 85
4-5 终态类与抽象类 87
4-5-1 终态类与方法 87
4-5-2 抽象类与方法 88
4-6 接口与包 89
4-6-1 Java的接口 89
4-6-2 实现接口的匿名内层类 90
4-6-3 匿名内层类与this和final关键字 91
4-6-4 包 91
4-7 线程 93
4-7-1 Java线程 93
4-7-2 继承Thread类来创建线程 94
4-8 集合对象与泛型 95
4-8-1 泛型 96
4-8-2 ArrayList类 96
4-8-3 Iterator接口输出元素 99
思考与实践 100
第2部分 Android程序设计——单一活动篇 101
第5章 活动与布局配置 101
5-1 活动类的基础 102
5-1-1 如何运行Android应用程序 102
5-1-2 Context抽象类 102
5-1-3 Activity活动类 103
5-2 活动的生命周期 106
5-2-1 活动堆栈 106
5-2-2 活动的生命周期 106
5-2-3 管理活动的状态 108
5-3 更改活动界面的外观 112
5-4 锁定活动的方向 114
5-4-1 锁定活动的方向 114
5-4-2 切换锁定活动的方向 115
5-5 布局配置 117
5-5-1 布局配置的基础 117
5-5-2 LinearLayout布局配置 119
5-5-3 RelativeLayout布局配置 121
5-5-4 FrameLayout与ScrollView布局配置 123
5-5-5 TableLayout布局配置 124
5-5-6 使用代码创建布局配置 126
5-6 Toast与Log类 128
5-6-1 Toast类 128
5-6-2 调试与Log类 129
思考与实践 130
第6章 创建Android使用界面 131
6-1 界面组件的基础 132
6-1-1 View与ViewGroup类 132
6-1-2 界面组件的类架构 132
6-1-3 Android使用的尺寸单位 133
6-2 Android的事件处理 134
6-2-1 事件处理的基础 134
6-2-2 界面组件的android∶id属性 134
6-2-3 创建事件处理方法 135
6-3 按钮组件 137
6-3-1 Button文字按钮组件 137
6-3-2 ImageButton图形按钮组件 140
6-3-3 ToggleButton切换按钮组件 143
6-4 文字组件 145
6-5 选择组件 149
6-5-1 CheckBox复选框组件 149
6-5-2 RadioGroup与RadioButton单选按钮组件 152
6-6 图形显示组件 155
6-7 格式化Android字体 158
思考与实践 161
第7章 资源管理与对话框 162
7-1 对话框的基础 163
7-1-1 对话框的种类 163
7-1-2 对话框的生命周期 163
7-2 创建与显示对话框 164
7-2-1 信息对话框 165
7-2-2 确认对话框 167
7-2-3 单选对话框 169
7-2-4 复选对话框 172
7-3 更多对话框 176
7-3-1 运行进度对话框 176
7-3-2 日期/时间设置对话框 180
7-3-3 自定义对话框 183
7-4 资源管理 187
7-4-1 资源种类 187
7-4-2 取得应用程序资源 191
7-4-3 取得系统资源 192
7-5 主题、样式与界面动画 193
7-5-1 主题与样式 193
7-5-2 界面组件的动画 195
思考与实践 199
第8章 偏好设置界面与菜单 200
8-1 再谈Android的事件处理 201
8-1-1 Android界面组件的事件 201
8-1-2 长按事件:onLongClickListener 201
8-1-3 键盘事件:onKeyListener 203
8-1-4 触控事件:onTouchListener 205
8-2 创建活动的选项菜单 208
8-2-1 创建选项菜单 208
8-2-2 替选项加上图标和快捷键 211
8-2-3 使用菜单资源创建选项菜单 213
8-2-4 自定义选项菜单 215
8-3 长按菜单的创建 218
8-3-1 创建长按菜单 218
8-3-2 使用菜单资源创建长按菜单 221
8-4 创建子菜单 223
8-5 用户偏好设置界面 226
思考与实践 231
第3部分 Android程序设计——组件与多活动篇 232
第9章 使用意图启动活动与内置应用程序 232
9-1 意图的基础 233
9-1-1 意图与意图筛选 233
9-1-2 意图的种类 233
9-2 使用意图启动活动 234
9-2-1 使用意图启动其他活动 234
9-2-2 传递数据给其他活动 237
9-2-3 取得活动的返回数据 240
9-2-4 使用意图启动偏好设置界面 247
9-2-5 意图筛选的名称冲突问题 248
9-3 再谈AndroidManifest.xml 249
9-4 使用意图启动内置应用程序 253
9-4-1 意图对象和URI 253
9-4-2 使用意图启动内置应用程序 255
9-5 创建多国语系的Android应用程序 260
思考与实践 263
第10章 存储偏好设置、文件与数据库 264
10-1 存储偏好设置 265
10-1-1 存取活动的偏好设置 265
10-1-2 访问应用程序的偏好设置 269
10-1-3 访问偏好设置页面的设置值 271
10-2 存储到文件 274
10-2-1 存储到内部存储设备的文件 274
10-2-2 存储到外部SD卡的文件 278
10-2-3 读取原始资源的文件 280
10-3 关系型数据库与SQLite 282
10-3-1 关系型数据库 283
10-3-2 SQLite数据库引擎 284
10-3-3 SQL语言的基础 284
10-4 SQLite数据库的使用 286
10-4-1 使用SQLiteOpenHelper类创建数据库与数据表 286
10-4-2 使用SQLiteDatabase类访问数据表的记录数据 289
10-4-3 使用SQL命令访问数据库 295
思考与实践 296
第11章 内容提供者、适配器与列表组件 297
11-1 Spinner组件与适配器 298
11-1-1 Spinner组件 298
11-1-2 适配器(Adapter) 298
11-1-3 OnltemSelectedListener监听者对象 299
11-2 ListView组件与ListActivity类 303
11-2-1 ListView组件 303
11-2-2 ListActivity类 306
11-3 内容提供者的基础 309
11-3-1 内容提供者的基础 309
11-3-2 系统内置的内容提供者 310
11-4使用系统的内容提供者 312
11-5 自行创建内容提供者 318
思考与实践 328
第12章 广播接收器、服务与信息提示 329
12-1 系统服务的基础 330
12-2 状态栏与信息提示 331
12-2-1 在状态栏显示提示信息 331
12-2-2 更多的提示方式 335
12-3 广播接收器 336
12-3-1 创建广播接收器 336
12-3-2 发送与接收自定义广播 338
12-3-3 系统服务与广播接收器 343
12-4 创建本地服务 347
12-4-1 服务的生命周期 348
12-4-2 创建本地服务 349
12-4-3 创建与活动通信的本地服务 352
12-5 谈数据共享 357
思考与实践 358
第4部分 Android程序设计——App实例篇 360
第13章 绘图与多媒体 360
13-1 显示图片——移动相簿 361
13-2 音乐播放——音乐播放器 366
13-3 影片播放——视频播放器 371
13-4 声音处理——录音程序 372
13-5 2D绘图——井字游戏 376
13-5-1 2D绘图的基础 376
13-5-2 井字游戏 378
第14章 Google地图与定位服务 385
14-1 定位服务——我在哪里 386
14-1-1 Android的定位服务与坐标 386
14-1-2 使用定位服务——我在哪里 387
14-2 地图解码服务——找出景点坐标 392
14-3 本地服务与定位应用——GPS景点防撞雷达 396
14-4 使用Google Maps API——My地图 401
14-4-1 取得Google Maps API密钥 401
14-4-2 使用MapView组件和MapActivity类——My地图 404
14-5 标记Google地图——追踪个人行踪 408
第15章 网络与通信 417
15-1 WebView组件——移动浏览器 418
15-2 短信处理——我的短信 422
15-3 发送电子邮件——邮件发送工具 427
15-4 文件下载 AsyncTask抽象类——大型文件下载 430
15-5 短信与定位服务——GPS间谍短信 435
第16章 首页画面小工具与硬件接口 440
16-1 首页画面小工具——手机静音切换 441
16-1-1 显示今天日期小工具 441
16-1-2 小工具与IntentService服务——手机静音切换 445
16-2 传感器与游戏控制——跳跳球游戏 449
16-2-1 倾斜监测 449
16-2-2 传感器与游戏控制——跳跳球游戏 453
16-3 相机——行车记录器 457
16-3-1 照相——我的相机 458
16-3-2 录像——行车记录器 464
16-4 相机与传感器的应用——聪明相机 470
16-5 蓝牙——扫描蓝牙设备 472
附录A 创建安装包与发布应用程序 477
A-1 Android应用程序文件的内容 478
A-1-1 应用程序安装包APK 478
A-1-2 应用程序的数字签名 478
A-1-3 AndroidManifest.xml文件 478
A-2 创建数字签名与安装包 479
A-3 安装Android应用程序 481
A-4 发布Android应用程序 482
A-4-1 发布在Web网站 482
A-4-2 发布应用程序到Android Market 483