封面
版权信息
内容简介
作者简介
前言
第1章 概述
1.1 Android Jetpack是什么
1.1.1 基础部分
1.1.2 架构部分
1.1.3 界面部分
1.1.4 行为部分
1.2 Android Jetpack的发展史与AndroidX
1.2.1 Android App开发简史
1.2.2 Android Jetpack的诞生和使命
1.2.3 Android Jetpack与AndroidX的关系
1.3 如何使用本书
1.3.1 开发环境概览
1.3.2 本书的结构
1.3.3 本书的用法
第2章 Appcompat UI兼容组件
2.1 Appcompat概览
2.2 集成Appcompat库
2.3 App Bar
2.3.1 什么是App Bar
2.3.2 添加ToolBar控件
2.3.3 给ToolBar设置标题和子标题
2.3.4 在ToolBar上添加图标
2.3.5 在ToolBar上增加返回按钮
2.3.6 在ToolBar上添加菜单
2.3.7 为ToolBar添加搜索功能
2.3.8 自定义ToolBar样式
2.3.9 ToolBar小结
2.4 AppCompatActivity与AppCompatDelegate
2.4.1 认识AppCompatActivity
2.4.2 实战AppCompatDelegate
2.5 AppCompatDialogFragment
2.5.1 AppCompatDialogFragment和AppCompatDialog
2.5.2 实战简单对话框
2.5.3 实战列表选择对话框
2.5.4 自定义菜单布局
2.5.5 AppCompatDialogFragment小结
2.6 AppCompatResources
2.6.1 点击状态选择器
2.6.2 从resId获取Drawable对象
2.7 AnimatedStateListDrawableCompat
2.7.1 定义动画执行脚本
2.7.2 执行动画
2.8 ActionMenuView
2.8.1 添加菜单项
2.8.2 添加ActionMenuView
2.8.3 绑定ActionMenuView和菜单项,并实现点击响应
2.9 AppCompatAutoCompleteTextView与AppCompatMultiAutoCompleteTextView
2.9.1 认识ViewCompat类
2.9.2 理解PorterDuff混合模式
2.9.3 实战更改背景色调
2.10 AppCompatButton和AppCompatToggleButton
2.10.1 设置按钮文本风格
2.10.2 设置按钮文本是否自动大写
2.11 AppCompatCheckBox与AppCompatRadioButton
2.12 AppCompatCheckedTextView
2.13 AppCompatEditText
2.13.1 定义操作菜单
2.13.2 实现所选文本自定义操作功能
2.14 AppCompatImageButton和AppCompatImageView
2.14.1 图片色调适用场景
2.14.2 添加矢量图素材
2.14.3 定义矢量图色调
2.14.4 设置矢量图色调
2.15 AppCompatSpinner
2.16 AppCompatTextView
2.16.1 文本自适应显示使用场景
2.16.2 开启自适应显示模式
2.16.3 配置自定义缩放方式
2.16.4 通过预设值方式缩放
2.17 TooltipCompat
2.18 其他控件及注意事项
第3章 Android KTX扩展组件
3.1 概述
3.2 Core KTX
3.2.1 Animation
3.2.2 Content
3.2.3 Database
3.2.4 Graphics
3.2.5 Util
3.2.6 View
3.3 Collection
3.3.1 集成Collection KTX
3.3.2 获取集合中所有的Key和Value
3.3.3 集合的遍历
3.3.4 集合元素的增加与替换
3.4 Fragment
3.4.1 集成Fragment KTX
3.4.2 Fragment事务操作
3.5 小结
第4章 MultiDex打包APK
4.1 APK解构
4.2 64KB方法数限制
4.3 避免64KB方法数限制
4.3.1 问题重现
4.3.2 使用MultiDex
4.3.3 MultiDex的局限性
4.3.4 缩减方法数
4.4 问题排查
第5章 Test构建测试
5.1 概述
5.2 构建App的最佳实践
5.3 测试的最佳实践
5.3.1 测试的分类
5.3.2 用于编写测试代码的目录结构
5.3.3 选择测试设备
5.3.4 添加测试依赖库
5.4 单元测试
5.4.1 本地单元测试
5.4.2 设备单元测试
5.5 UI测试
5.5.1 Espresso
5.5.2 UI Automator
5.6 集成测试
5.6.1 运行针对Service的测试
5.6.2 运行针对Content Provider的测试
5.6.3 针对Broadcast的测试
第6章 ViewBinding和DataBinding
6.1 Android应用架构原则
6.1.1 分离关注点
6.1.2 通过模型驱动界面
6.1.3 官方建议的应用架构
6.1.4 Android Jetpack架构组件
6.2 视图绑定
6.2.1 启用视图绑定支持
6.2.2 实战视图绑定
6.3 数据绑定
6.3.1 声明式编程简述
6.3.2 启用数据绑定支持
6.3.3 可观察的数据对象
6.3.4 实战单向数据绑定
6.3.5 创建和自定义绑定类
6.3.6 绑定适配器
6.3.7 双向数据绑定
第7章 生命周期
7.1 概述
7.2 实战Lifecycle组件
7.2.1 添加依赖项
7.2.2 实现生命周期感知接口
7.2.3 使用生命周期感知类
7.3 Lifecycle KTX API
第8章 页面导航
8.1 页面导航原则
8.1.1 向上和返回按钮的逻辑
8.1.2 设计导航堆栈
8.1.3 针对深层链接跳转的返回处理
8.2 实战Navigation组件
8.2.1 一个简单的示例
8.2.2 添加导航目的地
8.2.3 构建导航图
8.2.4 在目的地之间跳转
8.3 Navigation KTX API
8.3.1 Navigation Runtime KTX
8.3.2 Navigation Fragment KTX
8.3.3 Navigation UI KTX
第9章 ViewModel视图数据模型
9.1 概述
9.2 实战ViewModel
9.2.1 处理屏幕旋转
9.2.2 在Fragment之间共享数据
9.2.3 AndroidViewModel
9.3 与DataBinding组件配合使用
第10章 LiveData实时数据
10.1 概述
10.2 LiveData组件的简单使用
10.3 跨组件数据共享
10.4 转换、获取、合并LiveData对象
10.4.1 转换LiveData对象类型
10.4.2 获取LiveData对象
10.4.3 合并多个LiveData对象
10.5 与其他架构组件配合使用
10.5.1 LiveData与LifeCycle
10.5.2 ViewModel、LiveData与DataBinding
第11章 WorkManager任务管理器
11.1 概述
11.2 添加WorkManager依赖
11.3 实战WorkManager
11.3.1 定义任务
11.3.2 单次任务的调度
11.3.3 周期性任务的调度
11.3.4 预约执行的任务
11.3.5 为任务添加执行策略
11.3.6 为失败的任务设置重试策略
11.3.7 任务的管理
11.3.8 链式任务流
11.3.9 向任务传递数据
11.3.10 在任务中执行异步操作
11.3.11 针对需要长时间执行的任务的处理
第12章 Room数据库组件
12.1 概述
12.2 Room的简单使用
12.2.1 添加Room依赖
12.2.2 设计数据表并实现实体类
12.2.3 实现数据库操作
12.3 实体类
12.3.1 构建复合主键
12.3.2 自定义字段/数据表名
12.3.3 忽略特定的成员变量
12.3.4 定义实体之间的关系
12.4 数据访问对象类
12.5 DAO类的实现规范
12.6 数据的查询操作
12.6.1 基本数据查询操作
12.6.2 多条件查询
12.6.3 过滤查询结果
12.6.4 数据的插入操作
12.6.5 数据的更新操作
12.6.6 数据的删除操作
12.7 数据库的升级
12.8 设置预置数据
12.9 类型转换器
12.10 与LiveData组件配合使用
第13章 Paging分页加载组件
13.1 概述
13.2 实战Paging组件
13.2.1 添加依赖项
13.2.2 Paging组件的结构
13.2.3 构建数据源
13.2.4 构建视图模型
13.2.5 构建用户界面
13.2.6 监听和显示加载状态
更新时间:2023-08-10 16:45:07