第1章 Android概述 1
1.1 智能手机App简介 1
1.2 Android发展简介 1
1.3 Android系统架构 2
1.3.1 Linux内核层 3
1.3.2 系统运行层 3
1.3.3 应用框架层 4
1.3.4 应用层 4
1.4 Android系统的特点 5
1.5 学习Android应用开发的要求 5
本章小结 6
习题 6
第2章 Android开发环境的搭建与使用 7
2.1 Android开发环境的搭建 7
2.1.1 JDK的安装和配置 8
2.1.2 Android App开发工具的安装和配置 9
2.1.3 创建Android虚拟设备AVD 11
2.2 第一个Android App 13
2.3 Android应用程序逻辑结构 15
2.4 Android应用程序的签名 18
2.4.1 Android应用数字证书签名的作用 18
2.4.2 Android应用数字证书签名的生成 19
2.5 Android应用程序的运行与调试 20
2.5.1 DDMS工具的使用 21
2.5.2 Debug断点调试 24
本章小结 25
习题 25
动手实验 26
第3章 Activity和布局管理 27
3.1 Android四大组件 27
3.2 Activity机制原理 28
3.2.1 Activity的作用与管理 28
3.2.2 Activity的状态与生命周期 29
3.2.3 Activity生命周期实例 30
3.2.4 保存Activity状态参数 33
3.3 界面布局 35
3.3.1 用户界面的构成 35
3.3.2 获取和设置界面布局的方法 35
3.3.3 Android的布局管理器 42
3.3.4 线性布局 42
3.3.5 相对布局 44
3.3.6 表格布局 46
3.3.7 网格布局 49
3.3.8 框架布局 50
3.4 Android的度量单位与资源 52
3.4.1 Android中的度量单位 52
3.4.2 Android的常用资源类型 52
本章小结 56
习题 56
动手实验 57
第4章 UI控件与事件响应 58
4.1 UI控件概述 58
4.2 常用UI控件与事件响应 59
4.2.1 TextView和EditText 59
4.2.2 Button 63
4.2.3 CheckBox和RadioButton 67
4.2.4 Spinner、ListView、GridView 70
4.3 对话框 75
4.3.1 对话框概述 75
4.3.2 对话框举例 76
4.4 菜单 81
4.4.1 菜单概述 81
4.4.2 菜单的类型 82
4.4.3 菜单举例 83
4.5 监测用户在屏幕上的操作 88
4.5.1 单击按键 88
4.5.2 触摸屏幕 89
4.5.3 手势识别与绘制 90
本章小结 94
习题 95
动手实验 95
第5章 Android组件通信 100
5.1 Intent通信机制 100
5.1.1 Intent简介 100
5.1.2 Intent的基本用法 101
5.1.3 隐式Intent的主要属性 101
5.1.4 隐式Intent解析机制 102
5.1.5 Intent应用举例 104
5.2 碎片 115
5.2.1 碎片概述 115
5.2.2 碎片的创建和使用 116
5.3 广播 127
5.3.1 广播概述 127
5.3.2 广播事件分类 128
5.3.3 广播的注册 129
5.3.4 普通广播和有序广播 132
5.3.5 系统广播 136
5.4 通知栏 137
5.4.1 通知栏简介 137
5.4.2 通知栏的相关类 138
5.4.3 通知栏的使用 139
5.4.4 通知栏应用举例 139
本章小结 143
习题 143
动手实验 144
第6章 多线程与UI通信 147
6.1 进程和线程概述 147
6.1.1 Android进程 147
6.1.2 Android线程 148
6.2 Android线程模型 148
6.2.1 单线程模型原则 148
6.2.2 Android实现线程 149
6.2.3 Handler、MessageQueue和Looper 151
6.2.4 从其他线程访问UI线程 155
6.2.5 AsyncTask 156
本章小结 158
习题 158
动手实验 159
第7章 Service的机制与运用 161
7.1 Service简介 161
7.2 Service的分类 162
7.3 Service的生命周期 163
7.4 Service的应用举例 171
7.5 Service与Thread 176
7.6 远程Service的用法 177
7.7 AIDL跨进程通信 178
7.8 Android的系统服务 182
本章小结 186
习题 186
动手实验 186
第8章 Android文件与数据库 187
8.1 Android文件系统概述 187
8.1.1 内部存储 188
8.1.2 外部存储 194
8.1.3 缓存Cache 195
8.2 Shared Preferences数据存取 196
8.2.1 Shared Preferences的作用 196
8.2.2 获得Shared Preferences对象 196
8.2.3 Shared Preferences数据的存入和读取 197
8.3 SQLite数据库 199
8.3.1 SQLite简介 199
8.3.2 SQLite数据类型 199
8.3.3 SQLiteDatabase类 200
8.3.4 SQLiteOpenHelper类 205
8.4 ContentProvider数据存取 210
8.4.1 数据模型 210
8.4.2 URI的组成 211
8.4.3 UriMatcher和ContentUris 211
8.4.4 ContentProvider 212
8.4.5 ContentResolver 213
8.4.6 利用ContentProvider显示通讯录记录 213
8.4.7 利用ContentProvider修改通讯录记录 214
本章小结 217
习题 218
动手实验 219
第9章 Android网络开发 220
9.1 Android网络开发概述 220
9.1.1 HTTP 220
9.1.2 Android的网络编程方式 223
9.2 Volley网络编程 223
9.2.1 Volley概述 223
9.2.2 StringRequest的用法 224
9.2.3 JSONRequest的用法 227
9.2.4 ImageRequest的用法 230
9.3 WebView网络编程 232
本章小结 235
习题 235
动手实验 235
第10章 Android特色应用 236
10.1 Android传感器技术 236
10.1.1 Android传感器介绍 236
10.1.2 传感器信息的获取 237
10.2 地图导航应用 242
10.2.1 百度地图SDK简介 242
10.2.2 百度地图开发环境配置与地图显示 243
10.2.3 百度地图定位功能 246
10.2.4 百度地图应用实例 252
本章小结 254
习题 254
动手实验 255
第11章 综合实例 256
11.1 看图猜成语 256
11.1.1 游戏简介 256
11.1.2 游戏总体设计 257
11.1.3 服务器端设计与实现 259
11.1.4 客户端设计与实现 267
11.2 游戏2048 279
11.2.1 游戏简介 279
11.2.2 初始布局 280
11.2.3 GameView类 281
11.2.4 Num类 283
11.2.5 在GameView类中添加数字 284
11.2.6 设置开局 285
11.2.7 实现滑动处理:数字合并和产生 286
11.2.8 实现积分功能 289
11.2.9 添加新的数字 291
11.2.10 游戏结束的判断和处理 293