虽然 Android Studio 的负责人 Jeffery 已经澄清,只是 Kotlin-First 而不是 Kotlin-Must,并不须要将 App 用 Kotlin 重写一遍。可是 OkHttp 已经开始用 Kotlin 重写的工做,咱们来看看此次重写后带来的差别。git
在今年的 Google I/O 大会上,Google 宣布将以 Kotlin 做为 Android 开发的一级编程语言。而同天,Google 就开源了只支持 Kotlin 的 Jetpack Compose,以借此呼应这一战略。程序员
消息一出,很多 Android 开发就担忧之后是否是只能用 Kotlin 开发了。Android Studio 的负责人 Jeffery Van Gogh,马上发文表示,"Kotlin-First" 只是表示 Kotlin 将比 Java 在 Android 中占据更重要的地位,可是并不须要将现有 Java 开发的 Android App 使用 Kotlin 重写一遍。github
Jeffer 也表示,在 Android Studio 的十几万代码中,大约只有 10% 的 Kotlin 代码,也只会用 Kotlin 来编写新功能。编程
只是 Kotlin-First,而非 Kotlin-Must。markdown
虽然说 Google 也不建议咱们将现有的 App 用 Kotlin 重写一遍,可是 OkHttp 这个 Android 下最火的网络框架开源库,已经开始着手用 Kotlin 将整个库重写一遍。网络
接下来咱们看看此次升级的细节吧。框架
Kotlin 是由 JetBrains 公司开发,与 Java 100% 互通,而且具有诸多 Java 尚不支持的新特性。就我我的的使用体验来讲,Kotlin 仍是很是不错的,惟一有问题的可能就是写 Kotlin 太爽了,致使在同项目中编写 Java 代码时,有那么零点几秒的恍惚。编程语言
近期 Jesse Wilson 表示,已经使用 Kotlin 语言,把 OkHttp 3.0 所有重写一遍,并将其命名为 OkHttp4。oop
这次升级主要是受到了 Okio 2 的启发,而 OkHttp 4 的功能和逻辑,与 OkHttp 3.0 彻底一致,等于只是用 Kotlin 将以前的 Java 版本,复刻了一遍。学习
在仅用 Kotlin 将原项目重写一遍,带来了一些数据指标的变化,咱们一块儿来看看。
从代码行数,能够看到,Kotlin 的编写代码量在减小。
代码行减小了 7%,可是若是严格利用 Kotlin 的特性,相似 ConnectionSpec 这个类,能够减小 40% 的代码。
Kotlin 的编译时间是增长了。
能够看到,Kotlin 的编译速度,相较于 Java 是变慢了。这主要是由于 Kotlin 的编译器比通用 Java 编译器要慢的缘故。
由于编译器的差别,也将致使 Kotlin 编译后的文件,会比 Java 编译后的代码要大。
大约大了 60%,这仍是挺使人惊讶的。经过反编译能够发现,这些额外的代码,主要来自 JVM 重载、Kotlin 元数据、空检查以及伴生对象的代码。
做为 Android 开发,如今是时候使用 Kotlin 了。在 Android 开发中,Kotlin 将比 Java 得到更重要的地位,更多的在线培训中以及官方 Demo 都会优先使用 Kotlin 作支持,而对 Java 只是 “尽可能知足”,而且有一些功能,可能只提供 Kotlin 的支持,例如本次开源的 Jetpack Compose。
从 OkHttp 的重写这个事情上来看,Kotlin 编写的代码,虽然编译速度更慢、编译的二进制文件更大,可是咱们开发人员编写的代码将更少。
这些也符合趋势,程序员作的更少,机器作的更多,不过我相信 Google 在后期应该也会针对这些状况作一些优化,以达到知足生产的需求。
reference:
本文对你有帮助吗?留言、转发、点好看是最大的支持,谢谢!
公众号后台回复成长『成长』,将会获得我准备的学习资料,也能回复『加群』,一块儿学习进步;你还能回复『提问』,向我发起提问。