书籍详情

深入浅出 Android Jetpack

深入浅出 Android Jetpack

作者:萧文翰

出版社:清华大学出版社

出版时间:2022-02-01

ISBN:9787302596103

定价:¥79.00

购买这本书可以去
内容简介
  《深入浅出Android Jetpack》系统地讲解Android Jetpack组件库的使用和原理,具体涉及应用架构、生命周期管理、数据库操作、UI数据绑定等。第1章概括地讲述Android Jetpack的目标、内容等;第2~5章介绍Jetpack组件中的基础内容,具体涉及用于不同Android版本间的UI兼容处理组件、用于Kotlin编程语言的KTX扩展组件、多Dex打包APK组件以及包含单元测试、UI测试、集成测试的测试组件;第6~13章介绍Jetpack组件库中架构的内容,这也是本书的重点部分,具体涉及视图绑定组件、生命周期组件、页面导航组件等多种架构组件,以及用于本地数据库存储的Room组件和用于处理分页加载的Paging组件。通过使用Jetpack可以大大提升Android开发的效率,因此本书非常适合Android开发人员使用。
作者简介
  萧文翰,从业8年,移动开发工程师,先后就职于多家公司,在Android移动开发与测试领域拥有丰富经验。出版著作《Flutter从0基础到App上线》,翻译著作《Android App Hook and Plug-In Technology》等。
目录

第1章  概述 1
1.1  Android Jetpack是什么 1
1.1.1  基础部分 2
1.1.2  架构部分 2
1.1.3  界面部分 3
1.1.4  行为部分 4
1.2  Android Jetpack的发展史与AndroidX 5
1.2.1  Android App开发简史 5
1.2.2  Android Jetpack的诞生和使命 5
1.2.3  Android Jetpack与AndroidX的关系 5
1.3  如何使用本书 6
1.3.1  开发环境概览 6
1.3.2  本书的结构 7
1.3.3  本书的用法 7
第2章  Appcompat UI兼容组件 8
2.1  Appcompat概览 8
2.2  集成Appcompat库 9
2.3  App Bar 9
2.3.1  什么是App Bar 9
2.3.2  添加ToolBar控件 10
2.3.3  给ToolBar设置标题和子标题 11
2.3.4  在ToolBar上添加图标 12
2.3.5  在ToolBar上增加返回按钮 12
2.3.6  在ToolBar上添加菜单 14
2.3.7  为ToolBar添加搜索功能 16
2.3.8  自定义ToolBar样式 17
2.3.9  ToolBar小结 18
2.4  AppCompatActivity与AppCompatDelegate 18
2.4.1  认识AppCompatActivity 19
2.4.2  实战AppCompatDelegate 19
2.5  AppCompatDialogFragment 22
2.5.1  AppCompatDialogFragment和AppCompatDialog 22
2.5.2  实战简单对话框 23
2.5.3  实战列表选择对话框 25
2.5.4  自定义菜单布局 30
2.5.5  AppCompatDialogFragment小结 32
2.6  AppCompatResources 32
2.6.1  点击状态选择器 32
2.6.2  从resId获取Drawable对象 33
2.7  AnimatedStateListDrawableCompat 33
2.7.1  定义动画执行脚本 33
2.7.2  执行动画 34
2.8  ActionMenuView 35
2.8.1  添加菜单项 35
2.8.2  添加ActionMenuView 35
2.8.3  绑定ActionMenuView和菜单项,并实现点击响应 36
2.9  AppCompatAutoCompleteTextView与AppCompatMultiAutoCompleteTextView 37
2.9.1  认识ViewCompat类 37
2.9.2  理解PorterDuff混合模式 37
2.9.3  实战更改背景色调 39
2.10  AppCompatButton和AppCompatToggleButton 40
2.10.1  设置按钮文本风格 40
2.10.2  设置按钮文本是否自动大写 41
2.11  AppCompatCheckBox与AppCompatRadioButton 41
2.12  AppCompatCheckedTextView 42
2.13  AppCompatEditText 42
2.13.1  定义操作菜单 42
2.13.2  实现所选文本自定义操作功能 43
2.14  AppCompatImageButton和AppCompatImageView 45
2.14.1  图片色调适用场景 45
2.14.2  添加矢量图素材 46
2.14.3  定义矢量图色调 47
2.14.4  设置矢量图色调 47
2.15  AppCompatSpinner 48
2.16  AppCompatTextView 50
2.16.1  文本自适应显示使用场景 50
2.16.2  开启自适应显示模式 50
2.16.3  配置自定义缩放方式 52
2.16.4  通过预设值方式缩放 53
2.17  TooltipCompat 53
2.18  其他控件及注意事项 54
第3章  Android KTX扩展组件 55
3.1  概述 55
3.2  Core KTX 56
3.2.1  Animation 56
3.2.2  Content 57
3.2.3  Database 58
3.2.4  Graphics 60
3.2.5  Util 64
3.2.6  View 66
3.3  Collection 67
3.3.1  集成Collection KTX 68
3.3.2  获取集合中所有的Key和Value 68
3.3.3  集合的遍历 68
3.3.4  集合元素的增加与替换 69
3.4  Fragment 70
3.4.1  集成Fragment KTX 70
3.4.2  Fragment事务操作 70
3.5  小结 71
第4章  MultiDex打包APK 72
4.1  APK解构 72
4.2  64KB方法数限制 72
4.3  避免64KB方法数限制 73
4.3.1  问题重现 73
4.3.2  使用MultiDex 74
4.3.3  MultiDex的局限性 75
4.3.4  缩减方法数 76
4.4  问题排查 77
第5章  Test构建测试 80
5.1  概述 80
5.2  构建App的最佳实践 80
5.3  测试的最佳实践 81
5.3.1  测试的分类 81
5.3.2  用于编写测试代码的目录结构 81
5.3.3  选择测试设备 82
5.3.4  添加测试依赖库 82
5.4  单元测试 83
5.4.1  本地单元测试 83
5.4.2  设备单元测试 94
5.5  UI测试 96
5.5.1  Espresso 96
5.5.2  UI Automator 103
5.6  集成测试 109
5.6.1  运行针对Service的测试 109
5.6.2  运行针对Content Provider的测试 112
5.6.3  针对Broadcast的测试 116
第6章  ViewBinding和DataBinding 117
6.1  Android应用架构原则 117
6.1.1  分离关注点 117
6.1.2  通过模型驱动界面 118
6.1.3  官方建议的应用架构 118
6.1.4  Android Jetpack架构组件 119
6.2  视图绑定 119
6.2.1  启用视图绑定支持 119
6.2.2  实战视图绑定 120
6.3  数据绑定 123
6.3.1  声明式编程简述 123
6.3.2  启用数据绑定支持 124
6.3.3  可观察的数据对象 124
6.3.4  实战单向数据绑定 126
6.3.5  创建和自定义绑定类 133
6.3.6  绑定适配器 134
6.3.7  双向数据绑定 136
第7章  生命周期 139
7.1  概述 139
7.2  实战Lifecycle组件 139
7.2.1  添加依赖项 140
7.2.2  实现生命周期感知接口 140
7.2.3  使用生命周期感知类 141
7.3  Lifecycle KTX API 141
第8章  页面导航 143
8.1  页面导航原则 143
8.1.1  向上和返回按钮的逻辑 144
8.1.2  设计导航堆栈 144
8.1.3  针对深层链接跳转的返回处理 144
8.2  实战Navigation组件 145
8.2.1  一个简单的示例 145
8.2.2  添加导航目的地 151
8.2.3  构建导航图 154
8.2.4  在目的地之间跳转 159
8.3  Navigation KTX API 176
8.3.1  Navigation Runtime KTX 176
8.3.2  Navigation Fragment KTX 177
8.3.3  Navigation UI KTX 180
第9章  ViewModel视图数据模型 182
9.1  概述 182
9.2  实战ViewModel 182
9.2.1  处理屏幕旋转 183
9.2.2  在Fragment之间共享数据 185
9.2.3  AndroidViewModel 187
9.3  与DataBinding组件配合使用 188
第10章  LiveData实时数据 192
10.1  概述 192
10.2  LiveData组件的简单使用 193
10.3  跨组件数据共享 195
10.4  转换、获取、合并LiveData对象 197
10.4.1  转换LiveData对象类型 197
10.4.2  获取LiveData对象 198
10.4.3  合并多个LiveData对象 201
10.5  与其他架构组件配合使用 202
10.5.1  LiveData与LifeCycle 202
10.5.2  ViewModel、LiveData与DataBinding 203

第11章  WorkManager任务管理器 207
11.1  概述 207
11.2  添加WorkManager依赖 208
11.3  实战WorkManager 208
11.3.1  定义任务 209
11.3.2  单次任务的调度 210
11.3.3  周期性任务的调度 210
11.3.4  预约执行的任务 211
11.3.5  为任务添加执行策略 211
11.3.6  为失败的任务设置重试策略 212
11.3.7  任务的管理 213
11.3.8  链式任务流 217
11.3.9  向任务传递数据 218
11.3.10  在任务中执行异步操作 220
11.3.11  针对需要长时间执行的任务的处理 221
第12章  Room数据库组件 224
12.1  概述 224
12.2  Room的简单使用 225
12.2.1  添加Room依赖 225
12.2.2  设计数据表并实现实体类 226
12.2.3  实现数据库操作 226
12.3  实体类 228
12.3.1  构建复合主键 228
12.3.2  自定义字段/数据表名 228
12.3.3  忽略特定的成员变量 229
12.3.4  定义实体之间的关系 229
12.4  数据访问对象类 235
12.5  DAO类的实现规范 235
12.6  数据的查询操作 235
12.6.1  基本数据查询操作 235
12.6.2  多条件查询 236
12.6.3  过滤查询结果 237
12.6.4  数据的插入操作 237
12.6.5  数据的更新操作 238
12.6.6  数据的删除操作 238
12.7  数据库的升级 238
12.8  设置预置数据 239
12.9  类型转换器 240
12.10  与LiveData组件配合使用 241
第13章  Paging分页加载组件 243
13.1  概述 243
13.2  实战Paging组件 243
13.2.1  添加依赖项 244
13.2.2  Paging组件的结构 244
13.2.3  构建数据源 245
13.2.4  构建视图模型 248
13.2.5  构建用户界面 248
13.2.6  监听和显示加载状态 250

猜您喜欢

读书导航