自从 2017 年咱们宣布支持 Kotlin 以来,收到了不少关于使用 Kotlin 进行 Android 开发的问题: 你们想知道如今是否适合学习 Kotlin,是否要在应用开发中引入 Kotlin,学习 Kotlin 的最佳课程或教程是什么,Google 内部是否在使用 Kotlin,以及咱们对 Java 编程语言的规划是怎样的?本文将一一做答。java
最常说起的问题大都围绕同一个话题:android
简单来讲:git
是的!开始学习和使用 Kotlin 吧!github
展开来回答:编程
2017 年,咱们在 Google I/O 大会上宣布支持 Kotlin。从那时起,咱们开始着手确保咱们的 API、文档和示例适用于 Kotlin。2019 年,Kotlin 成为 Android 开发的首选语言,这让咱们开始更加依赖于 Kotlin 的功能。例如,协程成为咱们实现异步操做的推荐方案。api
咱们还作了如下工做:安全
Kotlin 优先库异步
首先在若干 Android Jetpack API (如 Room、LiveData、ViewModel 和 WorkManager) 中,咱们增长了对 Kotlin 协程的一流支持,从而转变了在 Android 上执行异步操做的方式。Firebase Android SDK 和许多 Jetpack 库都具备 Kotlin 扩展库 (KTX),经过 Kotlin 使用起来更加流畅。编程语言
如今,咱们的不少库都优先使用 Kotlin,如 Paging 3.0 和 DataStore。Jetpack Compose 是全新的、独立的、声明式 UI 工具包,它从头至尾使用 Kotlin 编写。工具
工具
开发效率源自强大的工具。所以,咱们对编译工具链作了不少针对 Kotlin 的改进,包括对 Kotlin JVM 编译器的改进、针对 Kotlin 的 R8 优化,甚至还开发了 Kotlin Symbol Processing 等新工具。咱们添加了内置 Android Kotlin Live 模板,供您使用简写语法将常见的 Android 代码结构应用到 Kotlin 代码。同时,针对 Kotlin 的 Lint 检查可帮助您确保 Kotlin 代码更符合语言习惯。该工具在您从 Java 编程语言过渡到 Kotlin 时尤为有用。
在 Google 内部,咱们也在着力推广使用 Kotlin。咱们有超过 60 个应用 (如 Google Home、Drive、Maps 等) 已将 Kotlin 添加到代码库中。咱们庞大的内部代码库中已有超过 200 万行 Kotlin 代码。
咱们常常收到这一问题,但最终的答案因人而异。若是您对当前的代码库和技术栈感到满意,能熟练使用您的解决方案来管理异步任务,而且具备高效的错误捕获方法,那么迁移到 Kotlin 对您来讲可能不是合适的解决方案。
若是您在试用 Kotlin 以后或经过下文提到的一些课程学习该语言以后,很喜欢它的效果,并且但愿充分利用最新的 Jetpack API,那么您应该考虑将 Kotlin 加入到应用开发中。Kotlin 的一大优点在于它与 Java 有很好的互操做性。您能够按部就班地采用 Kotlin,好比能够首先在测试中试用,而后在新功能中试用,在慢慢接触的过程当中,再尝试转换部分旧代码。
着手迁移到至 Kotlin,请查阅 Codelab 教程 - 转换到 Kotlin。
咱们在 Java 的基础上增长了对 Kotlin 的支持,由于这两种语言均可以编译成相同的字节码,而且能够共存。咱们喜欢 Kotlin 是由于用它编写代码更易于表达、更安全,同时咱们也会继续 维护并推进对 Java 语言的支持。例如,在 Android 11 中,从 OpenJDK 的较新版本一直到版本 13,咱们增长了对许多 API 的支持,Android Studio 甚至支持在全部 Android 设备上使用其中一些 API,而不受操做系统版本的限制。查阅文章,进一步了解 对 OpenJDK 中新 API 的支持状况。
采纳一门新语言并不是易事,但咱们正努力使其尽量简单:
自从 3 年前正式增长对 Kotlin 的支持以来,咱们一直在加大力度对这一出色的语言和生态系统进行支持。咱们携手 JetBrains 一块儿为 Kotlin 创建了坚实的基础,确保该语言健康发展,例如,经过谨慎的流程来审核重大变动。咱们的贡献不止于此: Google 内部有一支专职研究 Kotlin 编译器的工程师团队;咱们正在构建的 Jetpack API 不只支持 Kotlin,并且以 Kotlin 为首选语言;咱们还致力于为使用 Kotlin 进行 Android 开发提供无缝的体验。
Java 是 Oracle 公司和/或其子公司的注册商标。