《Android Jetpack开发:原理解析与应用实战》是由机械工业出版社出版的一本关于Android方面的书籍,作者是黄林晴,主要介绍了关于Android、Jetpack方面的知识内容,目前在Android类书籍综合评分为:8.5分。
书籍介绍
编辑推荐
随着移动领域的飞速发展,越来越多的工程师开始追求更高效率、更便捷的开发模式。而各种框架层出不穷,比如我们熟悉的MVC、MVP、MVVM等,每种框架都有其优缺点。为了统一开发规范,Google 推出了Jetpack,Jetpack 是一个由多个库组成的套件,可帮助开发者减少样板代码。
这是一本从使用方法、应用场景、实现原理等维度全面讲解Jetpack的著作,全书代码均采用Kotlin语言开发。
书中首先介绍Jetpack的基本知识,然后详细介绍了架构组件Lifecycle、ViewModel、LiveData、ViewBinding、DataBinding、Room、Hilt等,并通过切合实际的需求用例循序渐进地讲解了每个组件的使用方法和使用场景。
紧接着具体分析了Kotlin数据流Flow、Kotlin协程等的使用方法和实现原理,并结合项目中常见的问题深入地讲解如何从0搭建一个组件化的MVVM实战项目框架。
最后探讨了新的响应式UI编程技术——Jetpack Compose的用法,以帮助读者深入学习并理解Jetpack的应用场景。
内容简介
全书共12章,首先介绍Jetpack的基本知识,然后详细介绍了架构组件Lifecycle、ViewModel、LiveData、ViewBinding、DataBinding、Room、Hilt等,并通过切合实际的需求用例循序渐进地讲解了每个组件的使用方法和使用场景。除此之外,还针对当下流行的Kotlin 协程和Flow进行了讲解,让读者了解如何使用这些技术结合Jetpack组件写出更加优雅的代码,并演示了实战项目“出行防疫App”的实现方法。z后介绍了全新的声明式UI编程——Jetpack Compose。
目录
- 前言
- 第1章认识Jetpack 1
- 1.1Android开发架构的发展历程 1
- 1.2什么是Jetpack 3
- 1.3如何构建支持Jetpack的项目 4
- 1.4小结 6
- 第2章使用Lifecycle,感知生命周期 7
- 2.1从广告引导页的需求说起 7
- 2.2Lifecycle的基本使用 10
- 2.2.1使用Lifecycle优化广告引导页的需求 10
- 2.2.2自定义LifecycleOwner 14
- 2.3使用Lifecycle解决实际项目中常见的问题 16
- 2.3.1Dialog内存泄漏问题分析 16
- 2.3.2使用Lifecycle打造一个完美的Dialog 18
- 2.4原理小课堂 19
- 2.5小结 22
- 第3章使用ViewModel管理页面数据 23
- 3.1什么是ViewModel 23
- 3.2使用ViewModel解决广告引导页屏幕旋转问题 26
- 3.3ViewModel的生命周期 28
- 3.4使用ViewModel实现数据共享 31
- 3.5原理小课堂 33
- 3.6小结 36
- 第4章可观察的数据持有者类LiveData 37
- 4.1什么是LiveData 37
- 4.2LiveData的基本使用 38
- 4.3map与 switchMap 41
- 4.4原理小课堂 46
- 4.5小结 49
- 第5章视图绑定组件之ViewBinding 50
- 5.1从findViewById说起 50
- 5.2ViewBinding 的基本使用 53
- 5.3ViewBinding的封装优化 55
- 5.4原理小课堂 56
- 5.5小结 58
- 第6章数据绑定组件之DataBinding 59
- 6.1DataBinding的基本使用 59
- 6.1.1基础布局绑定表达式 60
- 6.1.2利用DataBinding绑定点击事件 64
- 6.1.3标签布局使用DataBinding 66
- 6.2自定义BindingAdapter 67
- 6.3双向数据绑定 70
- 6.4DataBinding与 ViewBinding的区别 73
- 6.5原理小课堂 73
- 6.6小结 75
- 第7章官方数据库框架之Room 76
- 7.1Android数据库ORM框架 76
- 7.2使用Room实现登录账号列表功能 77
- 7.2.1账号列表的需求设计和数据库设计 77
- 7.2.2准备工作 78
- 7.2.3定义数据实体类 78
- 7.2.4定义数据库访问对象 79
- 7.2.5账号列表的查询与新增 80
- 7.2.6账号列表的更新与删除 83
- 7.3Room数据库的升级 86
- 7.4原理小课堂 88
- 7.5小结 90
- 第8章减少手动依赖,探究Hilt 91
- 8.1什么是依赖注入 91
- 8.2基于Dagger看Hilt 93
- 8.3Hilt的基本使用 93
- 8.3.1添加依赖 93
- 8.3.2依赖注入普通对象 95
- 8.3.3依赖注入第三方组件 97
- 8.3.4依赖注入架构组件 101
- 8.4原理小课堂 102
- 8.5小结 104
- 第9章优雅地实现异步任务:Kotlin协程与Flow 105
- 9.1什么是协程 105
- 9.2使用协程优雅地实现异步任务 106
- 9.2.1协程的基本用法 106
- 9.2.2更多构建协程的方式 107
- 9.2.3在Retrofit和架构组件中使用协程 113
- 9.3Kotlin数据流 116
- 9.3.1Flow的基本使用 116
- 9.3.2探究StateFlow与SharedFlow 120
- 9.4原理小课堂 122
- 9.5小结 124
- 第10章分页库Paging3的使用 125
- 10.1Android中分页功能常见的设计方法 125
- 10.2网络请求的封装与使用 126
- 10.3使用Paging3实现网络数据的分页加载 129
- 10.3.1官方推荐的最佳架构 129
- 10.3.2PagingSource的定义与使用 131
- 10.3.3PagingDataAdapter的定义与使用 133
- 10.3.4将结果显示在UI上 134
- 10.3.5监听加载状态 136
- 10.4原理小课堂 140
- 10.5小结 143
- 第11 章打造一个MVVM架构的健康出行App 144
- 11.1项目需求设计与可行性分析 144
- 11.2组件化结构的设计与搭建 149
- 11.3查询城市数据 155
- 11.3.1实现逻辑层代码 156
- 11.3.2实现UI层代码 160
- 11.4查询城市核酸检测机构 165
- 11.4.1实现逻辑层代码 165
- 11.4.2实现UI层代码 167
- 11.5查询疫情风险等级地区 169
- 11.5.1实现逻辑层代码 169
- 11.5.2实现UI层代码 171
- 11.6查询健康出行政策 176
- 11.6.1实现逻辑层代码 176
- 11.6.2实现UI层代码 179
- 11.7小结 182
- 第12章体验最新响应式编程技术Jetpack Compose 183
- 12.1什么是Jetpack Compose 183
- 12.2Compose的基础知识 184
- 12.2.1新建支持Compose的Android 项目 184
- 12.2.2可组合函数与常用注解 187
- 12.3Compose基础组件的使用 188
- 12.3.1Compose 文本组件和图片组件 188
- 12.3.2Compose 布局组件 190
- 12.4Compose列表组件的使用 192
- 12.4.1垂直列表组件Lazy-Column的使用 192
- 12.4.2水平列表组件LazyRow的使用 196
- 12.4.3网格列表组件Lazy-VerticalGrid的使用 197
- 12.5小结 199