首页>参考读物>计算机科学与技术>软件与程序设计

Android Jetpack开发:原理解析与应用实战
作者 : 黄林晴 著
出版日期 : 2022-06-21
ISBN : 978-7-111-70615-1
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 208
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

全书共12章,首先介绍Jetpack的基本知识,然后详细介绍了架构组件Lifecycle、ViewModel、LiveData、ViewBinding、DataBinding、Room、Hilt等,并通过切合实际的需求用例循序渐进地讲解了每个组件的使用方法和使用场景。除此之外,还针对当下流行的Kotlin 协程和Flow进行了讲解,让读者了解如何使用这些技术结合Jetpack组件写出更加优雅的代码,并演示了实战项目“出行防疫App”的实现方法。z后介绍了全新的声明式UI编程——Jetpack Compose。

图书特色

CSDN认证专家多年实践经验结晶,从使用方法、应用原理、项目实战等维度
详细介绍Jetpack。
内容全面,实战性强,帮助读者深入理解Jetpack的设计思想和应用场景。

图书前言

为什么要写这本书
虽然我长期在CSDN上输出技术文章,也获得了不错的反响,但之前从来没有想过要写一本书,因为我知道写书是一件比写博客困难许多的事情。
技术交流群中许多读者问过我有没有比较系统的Jetpack学习资料可以推荐,我的回答一直都是官方文档。当我通过官方文档学习Jetpack的时候,发现里面往往都是比较简单的小例子,许多读者看完之后依旧不清楚Jetpack组件该如何使用。目前国内外讲解Jetpack的书籍寥寥无几,博客中讲解的知识点又比较零散,导致读者无法将Jetpack与真实的项目结合起来使用。
一次偶然的机会,机械工业出版社华章分社的编辑Lisa联系到我,问我是否有兴趣出版一本关于Jetpack的书籍,这着实让我受宠若惊。再基于上述原因,我坚定了写一本关于Jetpack图书的决心,于是,本书诞生了。
读者对象
本书适合已有Android开发基础并想要学习或者已经使用Jetpack开发的读者。全书代码使用Kotlin编写,所以需要读者有一定的Kotlin基础,即使没有Kotlin基础也没有太大关系,从这本书开始一起学习吧!
如何阅读本书
全书共12章,第1章介绍Jetpack的基本知识,主要包括Android开发架构的发展历程和如何构建支持Jetpack的项目。介绍完基本知识之后,第2章到第10章详细介绍架构组件的基本使用和在实际项目中可能遇到的一些问题,其中主要包括Lifecycle、ViewModel、LiveData、ViewBinding、DataBinding、Room、Hilt等基础架构组件,通过切合实际的需求用例循序渐进地讲解每个组件的使用方法和使用场景。除此之外还讲解了当下最流行的Kotlin协程和Flow相关知识,让读者了解如何使用这些技术结合Jetpack组件写出更加优雅的代码。学习完前面的基础知识后,第11章通过实战项目“健康出行App”演示如何搭建组件化结构的项目,并且将上述理论转化为实际成果。第12章作为扩展内容讲解了最新的响应式UI编程技术——Jetpack Compose。
读者可以根据自身情况来决定如何阅读本书。如果你是初学者,建议从第1章开始循序渐进地阅读,这样不会太吃力。如果你已经熟悉Jetpack的部分组件,可直接选择感兴趣的章节阅读,每个章节后面的原理小课堂也一定不要错过。
勘误和支持
由于作者的水平有限,编写的时间也很仓促,加之技术在不断更新和迭代,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。读者可以通过以下方式提供反馈。
关注微信公众号“Android技术圈”,回复“勘误”,在收到消息的页面评论、留言。
通过我的博客(https://huanglinqing.blog.csdn.net)评论、留言。
我会在收到信息后及时回复,对于一些反馈较多或重要的问题,我会通过公众号和博客集中回复。
书中的全部源文件除可以从华章网站(www.hzbook.com)的本书页面下载外,也可以从https://github.com/huanglinqing123下载。我会根据相应的功能同步更新代码。如果你有更多的宝贵意见,欢迎发送邮件至邮箱huanglinqing6@gmail.com,期待你的反馈。
致谢
感谢我的妻子任丽君,她在我迷茫时开导我,支持和鼓励我写作。也感谢她对家庭的付出,让我有更多的时间来完成书稿。
感谢我的好友郭国阳、李武,他们在整个写作过程中提出了宝贵意见与技术勘误。感谢养老研发移动端组与我并肩作战的同事们,团队良好的技术氛围为新技术的探索提供了有力的支持。
感谢机械工业出版社华章分社的编辑Lisa,感谢她的魄力和远见,并且在这半年多的时间中始终支持我的写作,她的鼓励和帮助引导我顺利完成全部书稿。
最后我一定要感谢我的父母、老师,他们将我培养成人,并时时刻刻给我信心和力量!
谨以此书,献给所有Android开发者。

黄林晴  
中国,合肥,2021年12月

上架指导

计算机\程序设计

封底文字

对于移动端开发者来说,经历了Android开发的蛮荒时代,也经历了百花齐放、百家争鸣的过程,如今,迎来了移动端开发的标准化时代。Jetpack正是Android标准化框架的核心,也将是所有移动端开发者必须掌握的核心技术。本书作者从一线资深开发者的角度向大家展示了Jetpack组件的使用方式和实现细节,同时还提供了详细的案例代码,让大家可以系统地学习Jetpack的各种技术细节并掌握相关原理,值得推荐。
——徐宜生 《Android群英传》作者

很开心看到介绍 Jetpack 套件的著作问世,如果你想成为一名优秀的Android工程师,则必须要熟练掌握近两年 Google大力推荐的主流技术Jetpack。Jetpack 可以帮助开发者遵循优秀的实践原则,编写在各种 Android 设备上运行一致的代码,从而专注于真正的代码编写而不是重复的业务实现。这本书兼顾了深度和广度,由浅入深地介绍了Jetpack的方方面面,非常值得一读。
——沉默王二 《Java程序员进阶之路》作者,CSDN博客之星

Jetpack 自问世以来,便备受开发者关注。因为它不仅提供了优秀的编码实践,还能够帮助开发者轻松地实现多系统和多设备的功能一致性。它将开发者的关注点由原来的细枝末节转换成真正需要关注的编码实现,着实极大地提高了开发者的编码效率与代码的执行性能。本书通过示例对Jetpack中的技术进行了详细的介绍,并配有完备的代码,是学习和上手Jetpack的绝佳之选。
——段建华 技术小黑屋博主,droidcon、GDG 等技术活动演讲嘉宾

Jetpack是Google官方提供的可帮助开发人员遵循优秀实践原则的套件,越来越多的项目都在使用Jetpack组件开发。本书结合实例综合性地介绍Jetpack核心库的使用方法及原理,可帮助开发人员更好地理解Jetpack组件库的设计思想,同时能更好地将其运用在项目中。
——黄俊彬 Thoughtworks高级咨询师

图书目录

前言
第1章 认识Jetpack 1
1.1 Android开发架构的发展历程 1
1.2 什么是Jetpack 3
1.3 如何构建支持Jetpack的项目 4
1.4 小结 6
第2章 使用Lifecycle,感知生命周期 7
2.1 从广告引导页的需求说起 7
2.2 Lifecycle的基本使用 10
2.2.1 使用Lifecycle优化广告引导页的需求 10
2.2.2 自定义LifecycleOwner 14
2.3 使用Lifecycle解决实际项目中常见的问题 16
2.3.1 Dialog内存泄漏问题分析 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.3 ViewModel的生命周期 28
3.4 使用ViewModel实现数据共享 31
3.5 原理小课堂 33
3.6 小结 36
第4章 可观察的数据持有者类LiveData 37
4.1 什么是LiveData 37
4.2 LiveData的基本使用 38
4.3 map与 switchMap 41
4.4 原理小课堂 46
4.5 小结 49
第5章 视图绑定组件之ViewBinding 50
5.1 从findViewById说起 50
5.2 ViewBinding 的基本使用 53
5.3 ViewBinding的封装优化 55
5.4 原理小课堂 56
5.5 小结 58
第6章 数据绑定组件之DataBinding 59
6.1 DataBinding的基本使用 59
6.1.1 基础布局绑定表达式 60
6.1.2 利用DataBinding绑定点击事件 64
6.1.3 标签布局使用DataBinding 66
6.2 自定义BindingAdapter 67
6.3 双向数据绑定 70
6.4 DataBinding与 ViewBinding的区别 73
6.5 原理小课堂 73
6.6 小结 75
第7章 官方数据库框架之Room 76
7.1 Android数据库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.3 Room数据库的升级 86
7.4 原理小课堂 88
7.5 小结 90
第8章 减少手动依赖,探究Hilt 91
8.1 什么是依赖注入 91
8.2 基于Dagger看Hilt 93
8.3 Hilt的基本使用 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.3 Kotlin数据流 116
9.3.1 Flow的基本使用 116
9.3.2 探究StateFlow与SharedFlow 120
9.4 原理小课堂 122
9.5 小结 124
第10章 分页库Paging3的使用 125
10.1 Android中分页功能常见的设计方法 125
10.2 网络请求的封装与使用 126
10.3 使用Paging3实现网络数据的分页加载 129
10.3.1 官方推荐的最佳架构 129
10.3.2 PagingSource的定义与使用 131
10.3.3 PagingDataAdapter的定义与使用 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.2 Compose的基础知识 184
12.2.1 新建支持Compose的Android 项目 184
12.2.2 可组合函数与常用注解 187
12.3 Compose基础组件的使用 188
12.3.1 Compose 文本组件和图片组件 188
12.3.2 Compose 布局组件 190
12.4 Compose列表组件的使用 192
12.4.1 垂直列表组件Lazy-Column的使用 192
12.4.2 水平列表组件LazyRow的使用 196
12.4.3 网格列表组件Lazy-VerticalGrid的使用 197
12.5 小结 199

教学资源推荐
作者: Harvey M.Deitel,Paul J.Deitel
作者: 贾伯琪 顾为兵 苏仕华 张四海 何克东 编著
作者: (美)Victor Shtern
作者: [美] 托尼·加迪斯(Tony Gaddis) 著
参考读物推荐
作者: 于俊 向海 代其锋 马海平 著
作者: (美)凯 S.霍斯特曼(Cay S. Horstmann)著
作者: 陈营辉 赵海波
作者: 刘欣 李慧 等编著