关于kotlin:使用-Kotlin-Symbol-Processing-10-缩短-Kotlin-构建时间

35次阅读

共计 1448 个字符,预计需要花费 4 分钟才能阅读完成。

作者 / 软件工程师 Ting-Yuan Huang 和 Jiaxiang Chen

Kotlin Symbol Processing (KSP)——用于在 Kotlin 中构建轻量级编译器插件的全新工具现已推出稳固版本!其与 Kotlin 注解解决工具 (KAPT) 的性能类似,但速度进步了 2 倍,同时还能够间接拜访 Kotlin 语言构造并反对多个平台指标。

在过来的几个月里,KSP 共公布了 32 个版本,超过 162 个来自社区反馈的谬误问题被修复。如果您正期待着利用该工具,那当初是时候去尝试了。

为何要构建 KSP

在 Android 团队中,咱们常常会向开发者提出这样一个问题: 就现阶段而言,开发利用时遇到的最大痛点是什么?其中呈现最频繁的问题就是构建速度。多年来,咱们始终在稳步优化 Android 构建工具链,当初咱们非常高兴可能通过 KSP 来实现这些优化。KSP 是应用 Kotlin 进行正文解决的新一代工具: 它将大幅提高 Kotlin 开发者的构建速度,而且不同于 KAPT,该工具提供了对 Kotlin/Native 和 Kotlin/JS 的反对。

为 Room 增加 KSP 反对不仅能晋升编译速度,还能让 Room 更好地了解 Kotlin 代码,比方应用 KAPT 无奈实现的泛型的可空性。KSP 还解锁了如生成 Kotlin 代码等全新可能性,这让 Room 在未来会有更棒的 Kotlin 用户体验。

— Android 软件工程师 Yigit Boyar

为何 KSP 速度更快?

Kotlin 正文解决工具 (KAPT) 通过与 Java 正文解决基础架构相结合,让大部分 Java 语言正文处理器可能在 Kotlin 中开箱即用。为此,KAPT 将 Kotlin 代码编译进 Java 存根,这些存根中保留了 Java 正文处理器关注的信息。然而创立这些存根的老本很高,这意味着编译器必须屡次解析程序中的所有符号 (一次生成存根,另一次实现理论编译)。

KSP 不应用存根生成模型,而是作为 Kotlin 编译器插件运行。其容许正文处理器应用 Kotlin 读取并剖析源程序和资源,让您无需依赖 Java 正文解决基础架构。此举大幅晋升了构建速度 (对于 Room 的 Kotlin 测试利用 而言速度进步了 2 倍),同时也意味着 KSP 能够在非 Android 以及非 JVM 环境 (如 Kotlin/Native 和 Kotlin/JS) 中应用。

开始应用 KSP

要开始应用 KSP,您能够从 GitHub 下载 KSP Playground 我的项目,从中您将理解如何将 KSP 用作正文处理器以及应用利用 / 库:

  • 正文处理器: 将构建器模式作为 KSP 处理器实现的小型 test-processor
  • 应用库: 显示如何在理论 Kotlin 我的项目中应用构建器处理器的 workload 目录

如果您是利用开发者,请查看 反对库列表 以及 疾速入门 指南,理解如何将模块从 KAPT 转移至 KSP。

应用带 KSP 的 Moshi 或 Room

如果您在我的项目中应用 Moshi 或 Room,您只需疾速修复模块的构建文件即可体验 KSP。例如,要在 Gradle 模块中应用 KSP 版 Room,您只需将 KAPT 插件替换为 KSP 并替换 KSP 依赖项:

您能够查看 Room 版本阐明 以理解更多信息。

最初

通过应用 KSP 1.0 版,您能够发现 Kotlin 我的项目的构建速度失去了晋升,因为您将不再应用基于 KAPT 的库。同时,咱们也更新了一些特定的 Android 库,您能够立刻尝试,体验改良后的弱小性能。也欢迎您继续关注官网微信公众账号,随时获取最新资讯。

欢迎您 点击这里 向咱们提交反馈,或分享您喜爱的内容、发现的问题。您的反馈对咱们十分重要,感谢您的反对!

正文完
 0