聚焦 Android 11: 开发语言
作者 / 产品经理 David Winer
在往期 #11WeeksOfAndroid 系列文章中我们介绍了 联系人和身份、隐私和安全、 Android 11 兼容性 ,本期将 聚焦语言 。我们将为大家陆续带来 #11WeeksOfAndroid 内容,深入探讨 Android 的各个关键技术点,您不会错过任何重要内容。
现代 Android 开发 (Modern Android Development) 始于出色的语言支持。Kotlin、Java 编程语言和 C++ 共同构成了 Android API 和日常应用开发工具的基础。本期我们将深入探讨 Android 三种核心语言的所有最新资讯: 从 Kotlin 协程到 Android 11 新的 Java API,再到更出色的本地开发工具,最新版本中包含了很多内容。
Kotlin 与协程
Kotlin 是现代 Android 开发与指导性开发库的核心。世界各地的 Android 开发者向我们反馈称,Kotlin 极具表现力,能帮助大家编写更高质量的应用,而且可以轻松在现有的 Java 代码库中使用,因此都对 Kotlin 赞赏有加。在 Play Store 上排名前 1,000 的应用中,有 70% 以上现在使用 Kotlin,而且 SlashData™ 在今年早些时候曾宣布,在过去两年中,Kotlin 一直是增长最快 (按百分比计算) 的语言社区。在 Android 11 测试版中,我们决定正式推荐使用协程 (coroutines) 在 Android 上执行异步操作,以此来进一步拥抱 Kotlin。
借助协程,可以轻松编写、读取和理解异步代码。协程库具有稳定性,且已经与您可能正在使用的许多 Jetpack 库 (包括 Room、LiveData 和 WorkManager) 进行了深度集成。如果您不熟悉协程,请查看 Android ❤️ 协程: 如何使用 Kotlin 管理异步任务、最新的 协程学习途径 以及全新的 协程开发者指南。我们之前也连载过一系列 Kotlin 与协程的相关内容,请移步 Kotlin 专辑深入了解。
Kotlin 入门指南
从 Android Jetpack 中的 Kotlin-first 到与 Android Studio 工具的深度集成,Android 与 Kotlin 已经形成紧密的联系,现在无疑是开始使用 Kotlin 的最佳时机。然而,我们也听到很多反馈,表示说服团队采用 Kotlin 并不那么容易。即使 Kotlin 可与 Java 编程语言实现 100% 的互操作性,但是团队成员可能会有顾虑。花时间学习一种新语言是否值得?相对于我们的其他产品和技术优先事项,应如何确定 Kotlin 的优先级?
近期,我们发布了 Google Home 团队的 一项新案例研究,以帮助解答其中的一些问题。在过去一年中,Google Home 团队将所有新功能开发移至 Kotlin,发现其空指针异常在同一时期内下降了 33%。这与世界各地的 Android 团队 (从 Duolingo 到 Zomato 再到 Cash App) 的反馈一致,Kotlin 不仅能确保生产力,还能提升应用质量,为大大小小的团队创造了巨大的价值。有关 Kotlin 的最新案例分享和数据,请查看全新 Kotlin 案例研究页面。
对于初学者,我们已宣布推出新的 Android Basics in Kotlin 课程。如果您刚刚开始学习编程,那么 Android Basics 会教授一些基本的编程概念,例如函数和变量,并将带您进入编程世界,从入门级的 "Hello World" 一直到使用 Kotlin 构建完整的 Android 应用。
Java 编程语言和 C++
三年前,当我们宣布正式支持 Kotlin 时,我们并没有忘记众多的 Java 和 C++ Android 开发者。在 Android 11 中,我们力求不断改进对这两种语言的支持。在 Android 11 Beta 中,我们使用来自 OpenJDK 9、10 和 11 的许多新 API 升级了 Java 库支持。我们还在 Android Studio 4.0 中推出了 Java 库 "脱糖",这样一来,即使在较低版本的 Android 设备上也可以轻松使用许多较新的 Java API。想对那些要求在较低版本的设备上支持 java.time 的开发者说,我们听到了大家强烈的呼声,并且已经实现。有关如何使用这些较新 API 的所有最新信息,请查看 Murat Yener 的演讲 对较新 Java API 的支持 (Support for newer Java APIs)。对于 Android 11,我们还更新了 Android 运行时间 (Android runtime),以通过 I/O 预取 加快应用的启动速度。
C++ 开发者的体验也在不断改善。Android 11 包括对原生工具链的更新,其中包括更出色的 配置文件导向优化 (PGO) 工具以及 对 Android Studio 4.0 中原生依赖性管理的改进。
不断改进的工具链
最后,我们将持续改进 Android Studio 中的 D8 和 R8 编译器。Android Studio 内置了对 R8 压缩器 的支持,可帮助您降低应用的内存占用空间,从而提高用户的安装量和留存率。我们最近还开始支持使用 R8 缩小 Kotlin 库和使用 Kotlin 反射的应用。有关更多信息,请查看 Mads Ager 和 Morten Krogh-Jespersen 的 最新文章。
更多精彩
您可以查看 #11WeeksOfAndroid 视频内容的 完整播放列表,或点击阅读原文前往官方网站详细 了解更多主题。我们将持续聚焦更多的新领域,敬请留意,也请继续关注我们,期待您的反馈。感谢您与我们相伴前行!