朱涛 · Kotlin 编程第一课
朱涛
Google 认证的 Kotlin、Android 开发者专家,博客“Kotlin Jetpack 实战”作者
6717 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 50 讲
朱涛 · Kotlin 编程第一课
15
15
1.0x
00:00/00:00
登录|注册

34 | Kotlin与Jetpack简直是天生一对!

你好,我是朱涛。今天,我们来聊聊 Android 的 Jetpack。
在我看来,Kotlin 和 Jetpack,它们两个简直就是天生一对。作为 Android 开发者,如果只用 Kotlin 不用 Jetpack,我们其实很难在 Android 平台充分发挥 Kotlin 的语言优势。而如果我们只用 Jetpack 而不用 Kotlin,那么,我们将只能用到 Jetpack 的小部分功能。毕竟,Jetpack 当中有很多 API 和库,是专门为 Kotlin 提供的。
经过前面课程内容的学习,相信现在你已经对 Kotlin 十分熟悉了,那么,接下来就让我们来看看 Jetpack 吧!这节课里,我会为你介绍 Jetpack 核心库的基本概念、简单用法,以及它跟 Kotlin 之间的关系,从而也为我们下节课的实战项目打下基础。

Jetpack 简介

Jetpack,它有“喷气式背包”的意思。对于我们开发者来说,它其实就是 Google 官方为我们提供的一套开发套件,专门用来帮助 Android 开发者提升开发效率、提升应用稳定性的。
Android Jetpack,最初的宣传图标,就是“穿着喷气式背包的 Android 机器人”。大概意思就是:有了 Jetpack,Android 就能“起飞了”。这当然只是一种夸张的比喻,不过,从我实际的开发体验来说,Jetpack 确实可以给 Android 开发者带来极大的好处,尤其是当 Jetpack 与 Kotlin 结合到一起的情况下。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Kotlin与Jetpack在Android开发中的天衣无缝的结合,为开发者提供了更高效、稳定的开发体验。Jetpack是Google官方提供的一套开发套件,旨在提升Android开发效率和应用稳定性。KTX是Jetpack中特殊的库,由Kotlin编写,为Kotlin开发者提供额外的API补充,通过扩展函数、属性等方式提升开发效率。Lifecycle是Jetpack中的核心组件,用于统一Activity和Fragment的生命周期行为,帮助开发者更好地面向生命周期编程。通过示例代码,文章展示了KTX的简化代码、Lifecycle的统一生命周期管理等特点,强调了Kotlin与Jetpack的天生契合,为Android开发者提供了更便捷、高效的开发方式。 文章主要介绍了Android开发中的Jetpack和KTX,以及它们与Kotlin协程的结合。KTX通过扩展函数、属性、高阶函数等方式为Android原有API增加了新特性,而Lifecycle统一了Activity和Fragment的生命周期管理。特别强调了KTX为Lifecycle增加了协程支持,通过lifecycleScope实现了协程与生命周期的绑定,避免了协程泄漏的问题。文章还提到了ViewModel的viewModelScope,通过源码分析了其实现原理。总的来说,Kotlin与Jetpack的结合为Android开发者提供了更高效、稳定的开发体验,使得开发更加便捷、高效。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《朱涛 · Kotlin 编程第一课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • Paul Shan
    思考题:viewModelScope是一个CloseableCoroutineScope,这个对象是懒加载的,第一次使用的时候才会创建,一旦创建以后,这个对象有一个close函数,会在ViewModel clear的时候调用,确保了viewModelScope的Coroutine scope和viewModel生命周期一致。了viewModelScope总体上和lifecycle的scope实现类似。区别是创建的时候,lifecycle用的是无锁+不断循环+compareAndSet方式,而viewModelScope实现的是synchronized带锁的方式,请问老师Android为什么会在两种类似的情况下采用不同的线程同步策略?

    作者回复: Lifecycle只是简单的单个状态变更,所以用CAS能够最大程度保证效率。ViewModel使用synchronized,主要还是因为其中的mBagOfTags,它是一个Map,Android官方因为一些旧系统的限制,导致无法使用ConcurrentHashMap,所以才出此下策。

    2022-04-11
    3
    6
  • 遥远的救世主
    Android KTX 已经归档,不推荐使用了
    2022-09-15归属地:浙江
    3
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部