龙空技术网

Android 开发是选择 Java 还是 Kotlin?Google 有话说

朗小妹儿 110

前言:

现在看官们对“java开发和android开发的区别”大约比较关心,看官们都需要剖析一些“java开发和android开发的区别”的相关文章。那么小编也在网摘上汇集了一些关于“java开发和android开发的区别””的相关资讯,希望各位老铁们能喜欢,姐妹们一起来学习一下吧!

来源:medium.com作者 | Nick Heath译者 | 苏本如,责编 | 屠敏出品 | CSDN(ID:CSDNnews)

Google 对于从 Java 切换到 Kotlin 时的注意事项提供了第一手的经验,本文对此作了详细阐述。

Google 一直在权衡是否让它的 Android 开发者从使用 Java 语言来构建应用程序切换到使用 Kotlin 语言。

Google Android Studio 的技术负责人 Jeffrey van Gogh 表示,这个问题在 Google 发出的“Android 应用程序开发应该优先使用 Kotlin”的这份声明中被提出来了。

但是 Android 开发“Kotlin-first”意味着什么?在今年的 Google I/O 大会上,van Gogh 对使用 Java 和 Kotlin 开发的后果作了详细地说明。

“当然,我们在很多方面将继续支持 Java 编程语言,”他在出示下面这张表时说道。

图片来源:谷歌

“但是,如果你看看其他的地方,比如我们的在线培训示例,我们将首先使用 Kotlin 编程语言,然后我们将"尽力而为(best effort)"地使用 Java。

当然,还有一些功能,比如多平台项目和 Jetpack Compose UI 工具包,这些功能只会用 Kotlin 语言提供。”

Google 已经在一系列自己的产品中开始使用 Kotlin 语言的这一现实,很好地回答 Android 开发者是否应该从 Java 切换到 Kotlin 这个问题。

对于 Google 而言,已经开始使用 Kotlin 的产品包括 Google Drive、Google Home、Nest 和 Android SystemUI。

“请不要把“Kotlin-first”理解成你需要用 Kotlin 来重新改写你所有的 Java 代码。这不是我们希望你做的,”

他说道,此外,他还补充道,Google 本身也没有打算用 Kotlin 重写现有的所有软件。

“看看 Android Studio,这是成千上万行的代码。现在只有 10% 的 Android Studio 的特定代码是用 Kotlin 写的。”

“我们采取的做法是,我们只用 Kotlin 来编写新的功能。

这是可行的,因为 Kotlin 与 Java 具有很强的互操作性。

你可以用 Kotlin 编写单个类,并将其它所有的类交给 Java;或者用 Kotlin 编写 99% 的代码,而将剩余的部分交给 Java。”

他补充说,还需要考虑一些复杂因素,比如说 App 开发所处的阶段,他说显然在项目开始的时候就使用 Kotlin 来实现新功能更加有意义。

他还说,另一个问题是开发团队内部对 Kotlin 到底有多大的热情。

“这取决于你的团队。他们对 Kotlin 语言感兴趣吗?他们对采用它有安全感吗?”他说。

van Gogh 同时指出,采用 Kotlin 也有一些不利因素需要权衡。比如开发人员需要一段时间才能熟悉 Kotlin 的惯用方法,来编写出符合规范的代码。

他说:“Kotlin 语言有很好的特性,更高的生产率和满意度,但你必须考虑学习曲线,人们需要时间来学习 Kotlin 的惯用方法,来编写出符合规范的代码。”

“我们看到大多数人在第一周开始写 Kotin 时,他们实际上是在用 Kotlin 写 Java 代码,他们花了三到六个月的时间才真正开始写符合 Kotlin 习惯的代码。”

他说,由于 Kotlin 编译器通常比使用 Java 的速度慢,软件构建过程也需要更长的时间,不过 Google 正在“努力”提升编译器的速度。

他补充说,当使用 Kotlin 时,生成的 APK(用于在安卓设备上安装应用程序的软件包)也相对较大。

他说,Google 在 Android 系统上有“一大堆正在进行的 Kotlin 工作”。

包括 Jetpack Compose 的开发工作、用于 Jetpack 的新 Kotlin 扩展(KTX)API 的开发工作,正在努力提升最新的 1.3.30 版 Kotlin 中的编译器速度的构建工作,以及改进工具、文档和示例代码的开发工作。

原文:

本文为 CSDN 翻译,转载请注明来源出处。

以上就是今天的分享啦~

如果大家有问题或者想了解更多的

技术干货可以私信发送【微信】添加朗妹儿微信哟~

标签: #java开发和android开发的区别