[上篇 Android程序设计基础]第1章 Android智能手机软件开发概述 1
1.1 智能手机及其操作系统 1
1.1.1 Symbian简介 2
1.1.2 Android简介 2
1.1.3 Windows Mobile简介 3
1.1.4 IOS简介 3
1.2 为什么要学习Android? 4
1.3 Android SDK简介 5
1.3.1 总体架构概述 5
1.3.2 简单的Android应用程序组成 6
1.4 用于在Eclipse中开发程序的外挂工具ADT 6
1.5 Dalvik虚拟机 7
1.6 虚拟仿真器AVD 7
1.7 在Android Market上发布自己的应用程序 8
1.8 本章小结 9
思考与实践 9
第2章 Android程序开发与应用环境 10
2.1 搭建Android应用程序开发环境 10
2.1.1 JDK的下载与验证 10
2.1.2 Eclipse的下载 10
2.1.3 Android SDK的下载与安装 11
2.1.4 配置Android ADT 11
2.1.5 在Eclipse中设定Android SDK位置 14
2.1.6 创建手机虚拟设备AVD 14
2.2 建立Android应用程序 17
2.2.1 应用程序的主要构成 18
2.2.2 XML布局文件 19
2.2.3 工程的运行与状态信息查看 22
2.3 Android应用程序调试及开发流程 23
2.3.1 DDMS及其启动 23
2.3.2 DDMS功能简介 23
2.3.3 Android应用程序的一般开发流程 25
2.4 APK文件的签名、打包 26
2.5 APK文件的安装 27
2.5.1 用HTC Sync同步连接 27
2.5.2 用91手机助手连接 28
2.6 本章小结 28
思考与实践 28
第3章 Android应用程序基本组成概述 30
3.1 Android应用程序及其主要结构概述 30
3.1.1 源码文件夹src和gen\R.java 32
3.1.2 Android.jar与asserts 32
3.1.3 资源目录res 33
3.1.4 应用程序整体布局文件AndroidManifest.xml 35
3.1.5 default.properties文件 37
3.2 Activity简介 37
3.3 Intent、Intent-filters、Intent Receiver、Broadcast Receiver简介 38
3.4 Service简介 40
3.5 Content Provider简介 41
3.6 Android SDK部分API功能简介 41
3.7 本章小结 42
思考与实践 42
第4章 界面布局与常用资源使用 43
4.1 概述 43
4.1.1 组件的ID属性 44
4.1.2 尺寸参数 46
4.1.3 部分XML布局组件标记及布局属性 46
4.2 布局及其加载 48
4.3 线性布局LinearLayout及其使用 49
4.4 相对布局RelativeLayout及其使用 50
4.5 绝对布局AbsoluteLayout及其使用 52
4.6 表格布局TableLayout及其使用 53
4.7 帧布局FrameLayout及其使用 54
4.8 在Acfivity中定义和引用布局 55
4.9 资源的管理与使用 57
4.10 本章小结 58
思考与实践 58
第5章 Android事件处理机制与常用Widget组件应用 59
5.1 Widget概述 59
5.2 Button 59
5.2.1 在Activity中设定和使用Button 60
5.2.2 侦听按钮被单击的动作 61
5.3 Android中的事件处理机制概述 62
5.3.1 基于回调机制的事件处理 63
5.3.2 基于监听接口的事件处理 66
5.4 TextView与EditText 68
5.4.1 TextView 68
5.4.2 EditText 70
5.4.3 TextView与EditText联合使用 70
5.5 CheckBox 71
5.6 RadioButton 72
5.7 列表ListView 73
5.8 下拉列表Spinner 74
5.9 自动输入提示AutoCompleteTextView 75
5.10 Tabs 76
5.11 本章小结 77
思考与实践 77
第6章 对话框、菜单与提示信息 79
6.1 对话框 79
6.1.1 创建简单的提示对话框 80
6.1.2 创建具有简单界面的提示对话框 80
6.2 菜单 83
6.2.1 选项菜单Options Menu及其编程实现 85
6.2.2 子菜单SubMenu及其编程实现 87
6.2.3 快捷菜单Context Menu及其编程实现 89
6.3 提示信息Toast 91
6.4 温馨信息Notification 92
6.5 实例:简易计算器的设计与实现 94
6.5.1 计算器的基本功能实现 94
6.5.2 Menu设计 96
6.6 本章小结 98
思考与实践 98
第7章 基于Intent的Activity切换及基于Bundle的数据传递 99
7.1 Intent概述 99
7.2 Intent的组成 100
7.3 intent-filter 102
7.4 Intent的实现 103
7.4.1 启动同一个工程中的另一个Activity 103
7.4.2 启动不同工程中的Activity 104
7.4.3 Intent的Uri参数及其应用 105
7.5 基于Bundle的消息传递 106
7.5.1 通过Bundle传递单参数 106
7.5.2 通过Bundle传递多参数 108
7.6 本章小结 109
思考与实践 109
第8章 Service与Broadcast简介 111
8.1 Service简介 111
8.2 创建和启动、停止本地Service 111
8.3 Broadcast及其使用 116
8.3.1 系统广播概述 118
8.3.2 注册BroadcastReceiver 118
8.3.3 静态与动态注册广播 119
8.3.4 使用Service和Broadcast的实例 123
8.4 本章小结 126
思考与实践 127
第9章 数据存取和访问 128
9.1 内部文件存取操作 128
9.2 SQLite数据库及其数据管理机制概述 130
9.2.1 SQLite中部分类及其使用 131
9.2.2 基于SQLite的工程示例 136
9.3 基于Content Provider的数据存取 142
9.3.1 系统Content Provider 142
9.3.2 自定义Content Provider的主要步骤 144
9.3.3 基于Content Provider的数据存储 144
9.3.4 基于Content Provider通讯录的设计与实现 147
9.4 本章小结 156
思考与实践 157
第10章 Android中的多媒体应用 158
10.1 音频及视频播放 158
10.1.1 从raw源文件中播放 158
10.1.2 从本地文件系统中播放 158
10.1.3 从网络文件中播放 159
10.2 音视频文件播放实例 160
10.2.1 raw文件播放 160
10.2.2 本地文件播放 160
10.2.3 网络文件播放 161
10.3 基于Camera类的照相功能的实现 162
10.3.1 主要实现步骤简介 162
10.3.2 基于Camera的工程实例 164
10.4 音视频的录制 166
10.4.1 音频文件的录制 166
10.4.2 视频文件的录制 168
10.4.3 音视频文件的录制实例 169
10.4 本章小结 175
思考与实践 175
[下篇 Android程序设计案例及分析]第11章 案例分析:“搜搜问问”应用程序的设计与实现 176
11.1 背景知识:KSoap、HttpClient、WebView 176
11.1.1 基于KSoap的网络通信 176
11.1.2 Apache HttpClient客户端 177
11.1.3 WebKit与WebView 178
11.2 “搜搜问问”应用程序主要功能的设计与实现 179
11.3 存在的不足和下一步的工作 189
11.4 本章小结 189
思考与实践 189
第12章 案例分析:简易地图程序的设计与实现 190
12.1 应用背景和功能需求简介 190
12.1.1 应用背景 190
12.1.2 功能需求分析 191
12.2 系统总体功能概览 191
12.3 数据库设计 192
12.4 申请Android Maps API Key 193
12.5 系统各模块功能简介 194
12.6 相关功能的设计与实现 196
12.6.1 编写欢迎页面布局 196
12.6.2 页面及菜单的设计与实现 196
12.6.3 规划路径页面的实现 197
12.6.4 编写规划路径页面代码 198
12.6.5 路径记录页面的实现 199
12.6.6 路径列表页面的实现 201
12.6.7 设置页面的实现 201
12.7 程序简要使用说明 202
12.8 本章小结 203
思考与实践 203
第13章 案例分析:“宿舍通”应用程序的设计与实现 204
13.1 应用背景 204
13.2 设计思路与注意事项 204
13.2.1 设计思路 204
13.2.2 注意事项 204
13.3 布局的设计与实现 205
13.4 文件读写类的设计与实现 209
13.5 发送短信及拨打电话相关函数的设计与实现 212
13.5.1 发送短信相关功能的设计与实现 212
13.5.2 ProgressDialog的使用 213
13.5.3 拨打电话功能的实现 216
13.6 MainAcitivity主要逻辑的设计与实现 217
13.7 菜单功能的设计与实现 222
13.8 Setting Activity及其主要逻辑的设计与实现 223
13.9 其他相关工作 225
13.9.1 权限的完善和Activity的注册 225
13.9.2 有关生命周期的修改 226
13.10 不足之处和下一步的完善计划 226
13.11 本章小结 226
思考与实践 226
第14章 案例分析:RSS阅读器的设计与实现 227
14.1 软件功能简介 227
14.2 SAX及其使用 228
14.3 欢迎界面的设计与实现 231
14.4 网络文件的解析 232
14.4.1 主界面的布局和实现 233
14.4.2 二级界面的布局和实现 236
14.4.3 解析器回调函数 238
14.4.4 数据提取 241
14.4.5 属性封装 242
14.5 本章小结 243
思考与实践 243
第15章 案例分析:“俄罗斯方块”游戏的设计与实现 244
15.1 开发背景简介 244
15.2 Android界面组件间的关系 244
15.3 定义和使用View类 245
15.3.1 继承View类 246
15.3.2 使用自定义组件 247
15.4 游戏规则及分析 248
15.5 游戏设计 249
15.6 游戏实现 250
15.6.1 实现begin.xml并在Tetris中实现其功能 251
15.6.2 实现Map.java 253
15.6.3 实现Block.java 256
15.6.4 完善GameView.java 264
15.6.5 实现Tetris的控制功能 265
15.7 本章小结 268
思考与实践 268
附录 IDE开发环境Eclipse、XML及智能手机简介 269
参考文献 279