Kotlin 新版来了,支持跨平台!

作者 : 开心源码 本文共2399个字,预计阅读时间需要6分钟 发布时间: 2022-05-12 共205人阅读

谷歌在今年的 I/O 大会上宣布,Kotlin 编程语言现在是 Android 应用程序开发人员的首选语言(谷歌宣布 Kotlin 成为安卓开发首选)。 还有一个好消息, Kotlin 1.3.30 正式发布,做了对apple的支持。离上次发布1.3 时间过去半年。本次的该版本主要覆盖 1.3 版本的问题修复和工具完善。版本升级的主要范围为 Kotlin/Native、KAPT 的性能优化以及对 IntelliJ IDEA 的支持优化。 我们来回顾下 1.3的 新特性 稳固的协程 Kotlin/Native Beta 多平台项目和工具 用于 Kotlin/Native 和多平台的工具 Ktor 1.0 Beta

本次版本带来的牛逼特性主要对1.3完善,并且做了工具上的支持。

KAPT 支持注解解决器增量编译

KAPT 已经支持注解解决器增量编译,该特性仍处灰度试验阶段,你可以通过在gradle.properties中增加以下配置来启用它: kapt.incremental.apt=true 需要指出的是,在现有版本中引入任何非增量编译的注解解决器或者者依赖的变化(截止目前,包括内部公告的修改)都会导致该板块的注解解决过程退化为非增量模式。 KAPT: 其余提升

引入了两个配置来提升编译性能。其一是使用 Gradle workers:

这个版本也对它做了优化。另一个是 1.3.20 引入的,开启 Compile Avoidance,就是说依赖假如只有方法体发生变化,那么就跳过注解解决。只有在所有的注解解决器都显式的在注解解决的 classpath 公告的情况下,Compile Avoidance 才会生效。

无符号数组的扩展方法

从 1.3 开始我们可以在开发模式下使用无符号数值类型。这个版本我们对无符号类型以及其数组做了更多的支持:

需要注意的是,我们之前即可以在无符号数组上使用函数式操作例如 filter 和 map ,这是由于无符号类型的数组实际上是实现了 Collection 接口的,例如 UIntArray 实现了 Collection 接口。 不过这样就涉及到了性能问题,由于在 UIntArray 被当作 Collection的实例使用时会额外 创立 一个对象出来。现在好了,所有新添加的扩展函数都使用无符号数组类型作为 receiver 以消除额外的对象创立开销。因而不用担心,现在无符号数组和常规数值类型的数组从使用的角度来讲没有什么两样,不会有任何额外的开销了。

Kotlin/Native

Kotlin/Native 支持的目标平台有: Windows 32 位(mingw_x86)。除此之外,Windows 和 macOS 客户也可以混合编译 Kotlin/Native 程序到 Linux x86-64、arm32 以及 Android 和 Raspberry PI 环境上。 Kotlin/Native 对 Apple 平台的支持

对 Apple 平台的支持也有提升。iOS 上未解决的异常信息会被输出到 iOS 崩溃日志当中,iOS 和 macOS 上的异常堆栈(调试模式)也会包含符号信息。 现在也可以使用命令行参数 -Xstatic-framework 或者者以下 Gradle 脚原本构建静态库: 需要注意的一点,现阶段官方表示拉取和编译这些依赖依然需要一个 Xcode 工程。

Kotlin/Native IDE 支持

接下来我们同步下我们的 IDE 对 Kotlin/Native 的支持工作的进展。 除 IntelliJ IDEA 之外,我们也将发布 Kotlin/Native 插件支持 CLion 2019.1、AppCode 2019.1。C interop 形容文件 (.def) 后续也会得到所有 IDE 的支持,虽然目前代码补全功能还没有上线。 对于 CLion and AppCode, 我们也支持了异常堆栈跳转源码的支持。 IntelliJ IDEA 支持

调试功能的提升

当你在调试协程代码时,你可以看到有一个单独的异步堆栈 “Async stack trace” 显示挂起时的变量。 当程序在 suspend 函数或者者 Lambda(例子的第 13行)中的断点中止时, “Async stack trace” 显示了变量在上一次挂起时的状态(12行)。你可以浏览 suspend 函数在当前协程中从上一个挂起点的一律的堆栈 (第12、4行)并确认变量的值: 这会帮助你更方便的了解当前协程的运行状态。 在调试 Kotlin 代码时,可以选择 “Kotlin” 模式来查看变量。 Eclipse IDE 插件升级

Eclipse 插件 0.8.14 主要包含以下升级:Kotlin 1.3.30 编译器支持, 大量的问题修复和整体稳固性的提升。该版本也添加了对 Gradle 工程的试验性质的支持。你可以用 Eclipse Buildship 导入工程,你会发现 Kotlin 会被正常配置。

指定 JVM 版本

假如你的程序运行在 JVM 9, 10, 11, 或者者 12 等版本下,你可以设置 jvmTarget到对应的版本了。这个设置会影响编译的 class 文件的字节码版本,但它们不是后向兼容的。相比之下,新目标版本不会有任何字节码优化也不会有任何新特性,期待后续Kotlin继续升级。 写在最后 无论 Google 对Kotlin 赋予什么期望,总而言之,Google提出新的系统和跨平台方案,意味着Andorid 生态已经向不同领域发力,最近微软的反击也预示者,google的跨端计划已经对微软形成了火力压制,坐等大安卓起飞,移动开发下一春不远了。 于此同时微软也在大力发展自己的.net语言的跨平台,并且也在支持 Pyhon开发语言的各种工具,其实是在对 Flutter和Kotlin 提出了挑战。 大家如何看待 Kotlin 的未来? 欢迎交流~

最后文末放上一个技术交流群:Android IOC架构设计

群内有许多技术大牛,有任何疑问,欢迎广大网友一起来交流,群内还不定期免费分享高阶Android学习视频资料和面试资料包~

再推荐一篇文章:“寒冬未过”,阿里P9架构分享Android必备技术点,让你offer拿到手软!

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Kotlin 新版来了,支持跨平台!

发表回复