今年五月份的 Google I/O 上,咱们正式向全球宣布 Kotlin-first 的这一重要理念,Kotlin 将成为 Android 开发者的首选语言,十月份举办的 Android Dev Summit 2019 大会上,咱们发布了使用 Kotlin API 开发的 Jetpack Compose 开发者预览版。html
咱们于近期开始连载了关于 Kotlin 迁移指南的系列文章,帮助开发者们顺利迁移并开始使用 Kotlin 构建 Android 应用。本篇是本系列的下篇,咱们将为您解答一些使用 Kotlin 构建应用时的常见问题。android
您能够点击下面连接回顾本系列的上篇和中篇:编程
Android 为什么将 Kotlin 语言列为一级支持语言?api
Kotlin 是一种与 Android 兼容的语言,它不只语法简洁、更具表达性,还具有类型安全和空值安全的特性。它与 Java 语言能够无缝互通,热爱 Java 语言的开发者能够在继续使用 Java 语言的同时,逐步加入 Kotlin 代码并充分利用 Kotlin 库,轻松完成转换。此外,许多 Android 开发者已经发现 Kotlin 不只能够提升开发速度,还能为编程带来更多乐趣,所以,咱们但愿为这些 Kotlin 用户提供更好的支持。您能够参阅 Kotlin 官方网站,详细了解 Kotlin 和 Android。安全
我已经在使用 Kotlin 语言,有哪些变化值得关注?框架
短时间内您将注意到的最大变化是: Android Studio 3.0 及更高版本中包含了通过全面测试的 Kotlin 支持工具。咱们相信,这一变化将为您带来更轻松、更稳定的开发体验。异步
如何在 Android Studio 中使用 Kotlin?jvm
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 提供全面的工具支持。可是,目前还存在一些已知问题和限制,咱们正在努力解决。
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 应用