适用于 Android 开发的 Kotlin 协程和流程 [2024]
完整指南!深入了解 Kotlin 协程和 Flow,以便在您的 Android 应用程序中成功使用它们
讲师:Lukas Lechner
口袋资源独家Udemy付费课程,独家中英文字幕,配套资料齐全!
用不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。
你将学到什么
- 在 Android 上实现 Kotlin 协程和 Flow 的最常见用例
- 深入了解 Kotlin 协程和流程
- 学习高级协程概念(结构化并发、协程作用域和上下文、内部工作原理等)
- 了解如何使用不同的流程构建器创建流程
- 了解Flow算子(生命周期算子、中间算子、终端算子)
- 了解不同类型的流(常规流、共享流、状态流)
- 使用 Flows 创建股票实时跟踪应用程序
- 了解何时在 Android 开发中使用通道
- 了解使用协程相对于回调或 RxJava 的优势。
- 如何使用 Retrofit 顺序和并发执行网络请求。
- 如何将 Room 与协程一起使用。
- 使用协程进行后台处理。
- 协程和流程中的异常处理和取消。
- 如何为基于协程的实现编写单元测试
要求
- 无需具备有关 Kotlin 协程或 Flow 的先验知识,但您应该熟悉 Kotlin 和 Android 的基础知识,以及一些 Android Jetpack 组件(ViewModels、LiveData、Room)和 Retrofit。
描述
Google 推荐 Kotlin Coroutines 和 Flow 作为 Android 上异步编程的首选解决方案。迟早,可能每个 Android 开发人员都会接触到这些主题。
本课程将让您深入了解 Kotlin 协程和 Flow,并展示如何实现Android 应用程序的最常见用例。
本课程由两大部分组成:协程部分和流程部分。
在能够在我们的应用程序中使用流之前,我们首先需要对协程有深入的了解。这就是为什么首先介绍协程的原因。但是,如果您已经有一些协程的经验,那么您也可以立即从流程部分开始,并在需要时跳回协程部分的课程。
在关于协程的部分中,首先,我们将详细了解 Kotlin 协程相对于其他异步编程方法(例如RxJava和Callbacks)的优势。
然后,我们将讨论一些理论基础。这些包括:
- 例程与协程
- 暂停功能
- 协程与线程
- 阻塞与挂起
- 多线程协程
- 内部运作
接下来,我们将在 Android 应用程序中实现 Kotlin 协程的一些最常见的用例。这些包括:
- 使用 Retrofit 顺序和并发执行网络请求
- 实施超时和重试
- 将 Room 与协程一起使用
- 使用协程执行后台处理
- 即使用户离开屏幕,协程也会继续执行。
为了提高您的学习体验,本课程还通过一些练习来挑战您。
学习协程可能会让人不知所措,因为您需要学习很多新概念。然而,我们将从简单开始,随着我们的用例变得越来越复杂,我们将逐步学习新概念。这些新概念是:
- 协程构建器(启动、异步、runBlocking)
- 协程上下文
- 协程调度程序
- 结构化并发
- 协程作用域(viewModelScope、lifecycleScope、GlobalScope)
- 职位和主管职位
- 作用域函数(coroutineScope{} 和supervisorScope{})
- 合作取消
- 不可取消的代码
我们还将深入研究异常处理并讨论以下概念:
- 使用 try/catch 进行异常处理
- 使用 CoroutineExceptionHandlers 进行异常处理
- 何时使用 try/catch 以及何时使用 CoroutineExceptionHandler
- 协程中的异常处理从启动和异步开始
- 作用域函数 coroutineScope{} 和supervisorScope{} 的异常处理细节
单元测试对于每个代码库都非常重要。在课程的最后一部分,我们将为我们之前实现的大多数基于协程的用例编写单元测试。我们将讨论诸如
- 测试协程调度程序
- 创建 JUnit4 规则来测试基于协程的代码
- runBlockingTest{} 协程生成器
- 虚拟时间
- 测试顺序和并发执行
- 测试协程作用域
在关于 Kotlin Flow 的部分中,我们首先介绍所有基础知识。我们将回答“什么是流?”这个问题。然后我们讨论响应式编程的优点和缺点。
之后,我们将看看不同的Flow 构建器和运算符:
- 基本流程构建器
- 码头运营商
- 终端操作员“launchIn()”
- 终端操作员“asLiveData()”
- 生命周期操作符
- 中间算子
在我们的第一个真实Flow 用例中,我们使用 Flow 创建实时库存跟踪功能,该功能使用所有可用的基本流组件。
在下一个模块中,我们将了解Kotlin Flow 的异常处理和取消。
在下面的模块中,您将了解StateFlow和SharedFlow以及以下概念:
- 如何使用“repeatOnLifecycle()”挂起函数使协程具有生命周期感知能力
- 热流 VS 冷流
- 使用“shareIn()”运算符将流转换为 SharedFlow
- 使用“stateIn()”运算符将流转换为 StateFlow
- 何时使用 SharedFlow 何时使用 StateFlow
接下来,您将了解Channels,它们与热流有何不同,以及它们何时在 Android 应用程序中有用。
在本课程结束时,您将对Kotlin 协程和流有基本的了解,并能够编写可读和可维护的异步多线程 Android 应用程序。
本课程适合谁:
- 希望深入了解 Kotlin 协程和 Flow 并希望了解如何在 Android 上实现最常见用例的 Android 开发人员。