任务1 创建Android项目 1
1.1 学习情境导入 1
1.2 任务实现 1
1.2.1 创建文件管理器项目 1
1.2.2 创建项目资源 8
1.3 核心知识讲解 9
1.3.1 Android Studio基本使用 9
1.3.2 Android项目结构 14
1.3.3 应用程序资源 15
1.4 能力拓展 20
1.4.1 调试Android项目 20
1.4.2 Android项目管理 23
1.5 项目实践 24
任务2 Activity创建与管理 25
2.1 学习情境导入 25
2.2 任务实现 25
2.2.1 设计闪屏界面 25
2.2.2 实现闪屏功能 28
2.3 核心知识讲解 31
2.3.1 创建Activity 31
2.3.2 Activity的生命周期 31
2.3.3 Activity的调用 33
2.3.4 保存Activity的状态 37
2.4 能力拓展 39
2.4.1 Activity栈与任务 40
2.4.2 ActivityManager与PackageManager 44
2.5 项目实践 46
任务3 布局与基本Widgets控件设计 47
3.1 学习情境导入 47
3.2 任务实现 47
3.2.1 地址栏布局 47
3.2.2 文件容器布局 50
3.2.3 返回键设计 51
3.3 核心知识讲解 52
3.3.1 视图与布局 52
3.3.2 常用控件设计 59
3.4 能力拓展 67
3.4.1 ConstraintLayout 67
3.4.2 Hierachy Viewer 72
3.5 项目实践 76
任务4 Fragment与容器控件设计 77
4.1 学习情境导入 77
4.2 任务实现 77
4.2.1 引导页设计 77
4.2.2 文件显示容器设计 83
4.3 核心知识讲解 85
4.3.1 创建Fragment 85
4.3.2 添加Fragment到Activity 87
4.3.3 Fragment的生命周期 89
4.3.4 管理Fragment 92
4.3.5 Fragment与Activity通信 94
4.4 能力拓展 97
4.4.1 ViewPager与水平滚动 97
4.4.2 CoordinatorLayout与垂直滚动 102
4.5 项目实践 106
任务5 适配器与适配器控件设计 107
5.1 学习情境导入 107
5.2 任务实现 107
5.2.1 获取文件集合 107
5.2.2 显示文件 110
5.3 核心知识讲解 115
5.3.1 适配器 115
5.3.2 适配器控件 117
5.4 能力拓展 121
5.4.1 RecyclerView 121
5.4.2 SwipeRefreshLayout 127
5.5 项目实践 129
任务6 菜单与对话框设计 130
6.1 学习情境导入 130
6.2 任务实现 130
6.2.1 侧滑菜单设计 130
6.2.2 主菜单设计 133
6.2.3 对话框设计 135
6.3 核心知识讲解 138
6.3.1 菜单设计 138
6.3.2 对话框设计 142
6.4 能力拓展 148
6.4.1 使用ActionMode设计动作栏 148
6.4.2 使用ShareActionProvider分享应用 150
6.5 项目实践 151
任务7 AsyncTask与异步任务设计 152
7.1 学习情境导入 152
7.2 任务实现 152
7.2.1 异步文件加载 152
7.2.2 异步删除文件 154
7.3 核心知识讲解 155
7.3.1 线程与单线程模型 155
7.3.2 Android平台的消息处理机制 156
7.3.3 AsyncTask与异步任务 161
7.4 项目实践 162
任务8 Intent与组件间的通信 163
8.1 学习情境导入 163
8.2 任务实现 163
8.2.1 文件打开设计 163
8.2.2 文件分享设计 165
8.3 核心知识讲解 168
8.3.1 Intent与组件间的通信 168
8.3.2 Intent对象 169
8.3.3 Intent的解析 172
8.4 项目实践 174
任务9 Service与后台服务 175
9.1 学习情境导入 175
9.2 任务实现 175
9.2.1 解压文件 175
9.2.2 播放音乐文件 178
9.3 核心知识讲解 185
9.3.1 创建Service 185
9.3.2 Service的生命周期 186
9.3.3 Started Service 188
9.3.4 Bound Service 190
9.4 项目实践 196
任务10 SharedPreferences与系统设置 197
10.1 学习情境导入 197
10.2 任务实现 197
10.2.1 设计配置界面 197
10.2.2 应用配置改变 202
10.3 核心知识讲解 203
10.3.1 使用SharedPreferences保存信息 203
10.3.2 设计应用设置界面 205
10.3.3 文件存储 210
10.4 项目实践 213
任务11 SQLiteOpenHelper与数据库设计 214
11.1 学习情境导入 214
11.2 任务实现 214
11.2.1 书签数据库设计 214
11.2.2 书签数据库操作 216
11.3 核心知识讲解 217
11.3.1 使用SQLiteOpenHelper管理数据库 217
11.3.2 使用Loader异步载入数据 223
11.4 项目实践 227
任务12 ContentProvider与数据共享 228
12.1 学习情境导入 228
12.2 任务实现 228
12.3 核心知识讲解 231
12.3.1 访问ContentProvider 231
12.3.2 通用资源标志符 235
12.3.3 自定义ContentProvider 237
12.4 能力拓展 238
12.4.1 使用ContentObserver监听数据变化 238
12.4.2 存储访问框架SAF 241
12.5 项目实践 244
任务13 BroadcastReceiver与广播通信 245
13.1 学习情境导入 245
13.2 任务实现 245
13.2.1 监听SD卡插拔 245
13.2.2 监听网络变化 246
13.3 核心知识讲解 248
13.3.1 使用BroadcastReceiver监听广播 248
13.3.2 使用App Widgets创建桌面应用 252
13.4 项目实践 259
任务14 HttpConnection与网络通信 260
14.1 学习情境导入 260
14.2 任务实现 260
14.2.1 上传百度网盘 260
14.2.2 应用检查更新 265
14.3 核心知识讲解 269
14.3.1 ConnectivityManager与网络管理 269
14.3.2 HttpURLConnection编程 273
14.3.3 JSON数据解析 280
14.4 能力拓展 287
14.4.1 使用WebView构建网络应用 287
14.4.2 Volley框架 292
14.5 项目实践 297
任务15 测试与发布应用 298
15.1 学习情境导入 298
15.2 任务实现 298
15.2.1 打包应用 298
15.2.2 百度云测试 300
15.3 核心知识讲解 302
15.3.1 Android Studio中的测试环境 302
15.3.2 本地单元测试 304
15.3.3 Instrumentation测试 307
15.4 项目实践 316
参考文献 317