第1章 Android平台与开发环境 1
1.1 Android应用开发概述 1
1.1.1 Android发展史与现状 2
1.1.2 Android基本架构 3
1.1.3 Android组件 5
1.2 开发环境 7
1.2.1 JDK安装与配置 7
1.2.2 Android Studio 7
1.2.3 Eclipse 11
1.2.4 Android Studio的优势 12
1.2.5 Genymotion模拟器 13
1.2.6 DDMS 14
1.3 第一个Android程序 15
1.3.1 创建项目 15
1.3.2 运行项目 20
1.3.3 项目分析 20
习题1 22
第2章 Android应用程序构成分析 23
2.1 目录结构分析 23
2.2 Android应用程序结构解析 27
2.2.1 资源文件 27
2.2.2 代码文件 30
2.3 AndroidManifest.xml文件 30
2.4 应用程序运行分析 34
2.4.1 AndroidManifest.xml修改 34
2.4.2 资源文件修改 36
2.4.3 语言国际化 37
2.5 Android的基本组件 38
2.5.1 Activity 38
2.5.2 BroadcastReceiver 40
2.5.3 Service 41
2.5.4 ContentProvider 41
习题2 42
第3章 Android生命周期与通信 43
3.1 生命周期 44
3.1.1 概述 44
3.1.2 Activity生命周期的方法 45
3.1.3 LogCat 47
3.2 Android组件间的通信 51
3.2.1 Intent对象 51
3.2.2 Intent过滤器 52
3.2.3 Intent传递数据 57
3.2.4 获取Activity返回值 57
3.3 项目实现——启动页 59
习题3 61
第4章 布局和控件 62
4.1 基础控件 63
4.1.1 TextView控件 63
4.1.2 EditText控件 64
4.1.3 Button控件及监听事件 65
4.1.4 登录实例 67
4.2 常用布局 68
4.2.1 线性布局 68
4.2.2 相对布局 72
4.2.3 其他布局 74
4.3 常用控件 74
4.3.1 RadioGroup和RadioButton 75
4.3.2 Checkbox控件 75
4.3.3 ImageButton控件 76
4.3.4 ImageView控件 76
4.3.5 Spinner控件 77
4.3.6 注册实例 77
4.4 控件和布局优化 82
4.4.1 Shape 82
4.4.2 Selector 82
4.4.3 登录布局和背景优化 84
4.5 高级控件 89
4.5.1 TextInputLayout 89
4.5.2 ListView 89
4.5.3 RecycleView和CardView 100
习题4 104
第5章 布局和控件进阶 106
5.1 Fragment 107
5.1.1 Fragment的产生与介绍 107
5.1.2 Fragment的生命周期 107
5.1.3 静态使用Fragment 108
5.1.4 动态使用Fragment 113
5.2 Toolbar和对话框 121
5.2.1 Toolbar 121
5.2.2 DialogFragment 122
5.3 Android项目框架综合实例 127
5.3.1 新建项目 128
5.3.2 底部导航 129
5.3.3 任意数量内导航 129
5.3.4 固定数量内导航 136
习题5 141
第6章 系统服务 142
6.1 服务 142
6.1.1 Service的原理和用途 142
6.1.2 使用线程 152
6.2 Timer和Alarm 156
6.2.1 Timer 156
6.2.2 Alarm 158
6.3 Broadcast组件 158
6.3.1 静态注册 159
6.3.2 动态注册 161
6.4 Notification 162
6.4.1 Notification简介 162
6.4.2 PendingIntent 162
6.4.3 Notification的实现 163
习题6 164
第7章 数据存储 165
7.1 简单存储 166
7.2 文件存储 169
7.3 数据库存储 171
7.3.1 SQLite简介 171
7.3.2 手动建库 172
7.3.3 代码建库 177
7.3.4 数据操作 179
7.3.5 第三方工具——xUtils 188
7.4 ContentProvider 194
7.4.1 ContentProvider简介 194
7.4.2 访问系统ContentProvider 196
习题7 201
第8章 后台处理与网络通信 202
8.1 概述 203
8.2 后台线程 204
8.2.1 子线程 204
8.2.2 Handler消息传递机制 205
8.2.3 异步任务 210
8.3 获取网络数据资源 214
8.3.1 通过URL获取网络资源 214
8.3.2 通过URLConnection获取网络资源 216
8.3.3 通过HTTP获取网络资源 218
8.3.4 Eclipse下的Tomcat安装与配置 218
8.3.5 登录案例 221
8.4 JSON 223
8.4.1 概述 223
8.4.2 Google Gson简述 228
8.5 网络通信框架Volley 231
8.5.1 通过Volley获取JSON数据 233
8.5.2 通过Volley加载图片资源 233
8.6 项目实现——天气预报 238
习题8 243
第9章 综合实例——校园订餐App 244
9.1 功能介绍 244
9.1.1 需求分析 244
9.1.2 开发环境搭建 244
9.2 服务器端运行 245
9.2.1 数据库设计 245
9.2.2 服务器端运行配置 247
9.2.3 参数接口 248
9.3 客户端设计 258
9.4 客户端开发 258
9.4.1 登录和注册 264
9.4.2 店铺和菜谱列表 266
9.4.3 菜谱详情和购买 270
9.4.4 收藏 273
9.4.5 搜索 275
9.4.6 我 277
9.5 程序签名与打包 280
附录A 校园订餐App服务器端配置 284
参考文献 288