今年五月份的 Google I/O 上,我们正式向全球宣布 Kotlin-first 的这一重要理念,Kotlin 将成为 Android 开发者的首选语言,十月份举办的 Android Dev Summit 2019 大会上,我们发布了使用 Kotlin API 开发的 Jetpack Compose开发者预览版。
我们于近期开始连载了关于 Kotlin 迁移指南的系列文章,帮助开发者们顺利迁移并开始使用 Kotlin 构建 Android 应用。本篇是本系列的下篇,我们将为您解答一些使用 Kotlin 构建应用时的常见问题。
您可以点击下面链接回顾本系列的上篇和中篇:
在 Android 开发中使用 Kotlin 语言的常见问题解答
Android 为何将 Kotlin 语言列为一级支持语言?
Kotlin 是一种与 Android 兼容的语言,它不仅语法简洁、更具表达性,还具备类型安全和空值安全的特性。它与 Java 语言可以无缝互通,热爱 Java 语言的开发者可以在继续使用 Java 语言的同时,逐步加入 Kotlin 代码并充分利用 Kotlin 库,轻松完成转换。此外,许多 Android 开发者已经发现 Kotlin 不仅可以提高开发速度,还能为编程带来更多乐趣,因此,我们希望为这些 Kotlin 用户提供更好的支持。您可以参阅 Kotlin官方网站,详细了解 Kotlin 和 Android。
我已经在使用 Kotlin 语言,有哪些变化值得关注?
短期内您将注意到的最大变化是: Android Studio 3.0 及更高版本中包含了经过全面测试的 Kotlin 支持工具。我们相信,这一变化将为您带来更轻松、更稳定的开发体验。
如何在 Android Studio 中使用 Kotlin?
Android Studio 3.0 及更高版本全面支持 Kotlin。以前,您需要添加 Kotlin 插件才能使用 Kotlin;而现在,所有新发布的 Android Studio 版本中都内置了这些工具。因此,您无需执行任何额外步骤,就可以直接使用 Kotlin 文件创建新项目,将 Java 语言代码转换成 Kotlin 代码,调试 Kotlin 代码以及执行其他操作。详情请参阅 "Kotlin 使用入门"。
如何在 Android Studio 中调试 Kotlin 代码?
Kotlin 代码的调试方法与 Java 代码相同。您不需要执行任何其他操作。
IDE 还为 Kotlin 提供其他哪些类型的支持 (例如 Lint、自动填充、重构等)?
从 Android Studio 3.0 开始,我们的 IDE 已为 Kotlin 提供全面的工具支持。但是,目前还存在一些已知问题和限制,我们正在努力解决。
关于在 Android Studio 中使用 Kotlin 的已知问题:https://developer.android.google.cn/studio/preview/kotlin-issues.html
Kotlin 前景如何?
JetBrains 开发的 Kotlin 语言有着深思熟虑的设计理念,这是我们采纳该语言的原因之一。Google 正在与 JetBrains 开展合作,确保开发者在整个开发过程中 (从语言到框架再到工具) 都能获得出色的体验。此外,我们非常期待通过双方的努力,为 Kotlin 语言创建一个非营利基金会以便进行后续的开发。
Kotlin 是开源语言吗?
Kotlin 的首选许可是 Apache Software License 2.0 版 ("Apache 2.0"),Kotlin 软件的大部分内容都是根据 Apache 2.0 授权用户使用。尽管该项目将尽可能遵循此首选许可,但也可能存在根据具体情况进行处理的例外情况。例如,Kotlin 使用的部分第三方依赖项可能使用不同的开放源代码许可,但这些许可与 Apache 2 许可并不冲突。
如何在 Java 和 Kotlin 语言之间做出选择?
您无需二选一!您可以根据需要同时使用两种语言。如果您需要了解 Kotlin 是否适合自己,可以在 Android 开发中试用 Kotlin 语言,也可以参阅这些 Kotlin 资源,详细了解该语言。
我可以在 Kotlin 中调用 Android 或其他 Java 语言库的 API 吗?
可以。Kotlin 与 Java 语言具有互操作性。此设计让 Kotlin 代码可以透明地调用 Java 语言方法;对于 Kotlin 独有的功能,可采用注释轻松向 Java 代码公开。对于未使用任何 Kotlin 特有语义的 Kotlin 文件,Java 代码可以直接引用,无需添加任何注释。两相结合,您就可以同时使用 Java 代码和 Kotlin 代码。要了解详情,请参阅Kotlin 互操作文档。
你们有 Android API 的 Kotlin 参考文档吗?
有!我们正努力使所有 Android API 文档都包含惯用 Kotlin 参考。它们尚未准备就绪,但您可以在 Android 参考概览中找到指向可用 Kotlin 参考的链接。如果您要寻找核心 Kotlin 语言参考,请查看Kotlin 标准库参考。
我可以在同一个项目中同时使用 Java 文件和 Kotlin 文件吗?
可以。您可以根据自己的喜好或多或少采用 Kotlin 语言进行开发,然后利用 Kotlin 与 Java 的互操作性将 Kotlin 代码与 Java 代码结合在一起。
我可以在 Kotlin 代码中使用 C++ 代码吗?
可以,Kotlin 完全支持 JNI。您只需使用 external 修饰符标记 JNI 方法即可。
如何将 Kotlin 代码添加到我的新项目中?
当您在 Android Studio 中创建新项目时,只需选中 Include Kotlin support 复选框即可。有关详情,请参阅 Kotlin 使用入门。
如何将 Kotlin 代码添加到我的现有项目中?
在 Project 窗口中选择相应模块,然后依次选择 File > New,选择任意 Android 模板,然后选择 Kotlin 作为 Source language。有关详情,请参阅 Kotlin 使用入门。
如何将 Java 语言代码转换成 Kotlin 代码?
打开 Java 文件,然后依次选择 Code > Convert Java File to Kotlin File。您也可以新建一个 Kotlin 文件 (File > New > Kotlin File/Class),然后将 Java 代码粘贴到此文件中。界面上出现提示时,点击 Yes,即可将 Java 代码转换成 Kotlin 代码。有关详情,请参阅 Kotlin 使用入门。
你们会提供有关 Kotlin 的配套文档、示例、codelab 和模板吗?
为了向 Java 和 Kotlin 语言用户尽可能提供最实用的帮助,我们正在努力完善我们的文档和教程资料。与此同时,开发者可以借助 Kotlin 与 Java 语言之间出色的互操作性,并利用相关功能在 Android Studio 中将 Java 语言代码自动转换成 Kotlin 代码。
Kotlin 在 Android 开发中能实现协程吗?能实现异步/等候吗?
Kotlin 协程目前应该可以实现,但这些特性还处于实验设计阶段。因此,Kotlin 不能保证它们未来的可用状态,Android 自然也无法做出承诺。
Kotlin 对 APK 大小/方法数有什么影响?
Kotlin 运行时会导致您的调试 APK 增加大约 7,000 个方法和约 1MB 的大小。如果您使用 Kotlin 替换项目中的另一个库 (例如 Guava 或 RxJava),净影响可能会降低。如果您像优化其他应用代码和库一样,使用 ProGuard 对 APK 进行发布前优化,APK 的大小也会减小。
使用 Kotlin 会影响性能吗?
使用 Kotlin 不会对性能产生直接影响,但就像使用 Java 语言一样,您应该精心考虑如何使用这种语言。例如,在新的集合实例间重复复制会影响 GC 性能,调用允许非空类型的方法会导致调用空值检查方法 (当然,您可以在编译器中使用 -Xno-param-assertions 停用运行时空值检查)。
Kotlin 支持哪些 Android 版本?
所有版本都支持!Kotlin 与 JDK 6 兼容,因此使用 Kotlin 语言开发的应用可以在较早版本的 Android 上安全运行。
如果您对在 Android 开发中使用 Kotlin 有任何疑问或者想法,欢迎在评论区和我们分享。
点击这里即刻使用 Kotlin 打造精彩 Android 应用