目录

第1章Android的开发环境1
1.1Android移动开发概述1
1.1.1Android的发展1
1.1.2Android平台的架构2
1.2开发环境和开发工具5
1.3创建第一个Android项目5
1.3.1创建新的项目6
1.3.2启动模拟器7
1.3.3运行第一个项目9
习题113第2章Kotlin基础15
2.1Kotlin概述15
2.2第一个Kotlin程序17
2.3函数19
2.4变量和数据类型20
2.4.1变量20
2.4.2数据类型的种类21
2.4.3数据类型的转换22
2.4.4可空类型的处理23
2.4.5数组和集合类型23
2.5操作符和表达式25
2.6控制结构28
2.7Lambda表达式32
2.7.1Lambda表达式的应用32
2.7.2常见的标准函数和Lambda表达式33
2.8面向对象编程35
2.8.1包和目录35
2.8.2类和对象35
2.8.3继承性37
2.8.4接口38
2.9异常处理39
习题241第3章Android的Activity组件44
3.1Activity的创建44
3.2Activity和Intent46
3.2.1显式Intent46
3.2.2隐式Intent51
3.3Activity之间的数据传递55
3.3.1传递常见数据56
3.3.2Serializable对象的传递59
3.3.3Parcelable对象的传递62
3.3.4数据的返回65
3.4Fragment69
3.4.1初识Fragment69
3.4.2动态加载Fragment72
3.4.3Fragment和Activity的交互79
3.5Activity的生命周期80
3.5.1Activity的返回栈80
3.5.2Activity的启动方式80
3.5.3Activity的生命周期86
3.5.4Activity中Fragment的生命周期90
3.6掷骰子游戏95
习题3104第4章Android的界面开发108
4.1Android的布局管理器108
4.1.1常见的基本布局109
4.1.2约束布局113
4.2基本组件121
4.3事件处理125
4.3.1基于监听的事件处理125
4.3.2回调事件响应126
4.4高级组件129
4.4.1Toolbar129
4.4.2DrawerLayout133
4.4.3RecyclerView和CardView137
4.4.4BottomNavigationView 141
4.4.5FloatingActionButton和Snackbar145
4.5心理测试移动应用实例147
4.5.1功能需求分析和设计147
4.5.2心理测试移动应用的功能实现148
习题4163第5章Android的并发处理166
5.1多线程166
5.2Handler机制168
5.3异步任务171
5.4协程178
5.5歌词同步播放184
习题5189第6章Android的广播机制192
6.1BroadcastReceiver组件192
6.2发送广播195
6.2.1标准广播195
6.2.2有序广播196
习题6201第7章Android的Service组件203
7.1Service组件203
7.2Service的生命周期208
7.3Activity和Service的通信209
7.4IntentService213
7.5Notification和前台服务216
7.5.1Notification216
7.5.2前台服务219
7.6用Service前台控制歌曲专辑的播放220
7.6.1功能需求分析和设计220
7.6.2系统的实现222
习题7238第8章Android的网络应用240
8.1网络访问相关配置240
8.2WebView组件241
8.3使用HttpURLConnection访问网络资源244
8.4JSON数据的解析250
8.4.1JSON格式250
8.4.2JSONObject解析JSON数据251
8.4.3GSON解析JSON数据255
8.5使用Retrofit库访问网络资源258
8.6RxJava库实现异步操作268
8.6.1Observer模式269
8.6.2RxJava的相关概念271
8.7智能聊天移动应用实例276
8.7.1功能需求分析和设计276
8.7.2系统的实现278
习题8293第9章数据的持久化处理和ContentProvider组件296
9.1SharedPreferences存储处理296
9.2文件处理309
9.3SQLite数据库320
9.3.1创建和升级SQLite数据库321
9.3.2执行SQL操作326
9.4ContentProvider组件339
9.4.1创建ContentProvider组件340
9.4.2使用ContentProvider组件346
9.5调用相机和媒体库352
9.5.1运行时权限352
9.5.2拍照和显示媒体库的图片357
9.5.3访问媒体库中的视频363
习题9369第10章Android JetPack371
10.1Android JetPack概述371
10.2ViewModel组件372
10.3LifeCycle组件376
10.3.1生命周期的实现378
10.3.2LiveData在生命周期中的应用381
10.4ViewBinding382
10.5DataBinding385
10.6Navigation组件389
10.6.1页面导航的实现390
10.6.2在目的地之间安全传递数据394
10.7Room组件407
10.7.1Room实现数据库的基本操作407
10.7.2Room实现迁移数据库413
10.8WorkManager组件420
10.8.1WorkManager的基本使用方法421
10.8.2任务链426
10.9Paging组件431
10.9.1分页处理432
10.9.2Paging 3组件442
习题10449参考文献451