2020 Google 开发者大会:Android 和 Flutter 有哪些更新?

2020 年 11 月 16 日,Google 开发者大会 (Google Developer Summit) 在线上举行。本次大会以“代码不止”为主题,全面介绍了产品更新以及一系列面向本地开发者的技术支持内容。本文重点关注了 Google 在 Flutter 和 Android 方面的更新。

今年已经是第五届 Google 开发者大会了,Google 对开发者的支持,始于代码,但是不止于代码,从最初的使用各领域的技术打磨产品,到使用营销工具和发布平台来获取用户,最后再到通过变现方式实现商业价值的持续增加,Google 产品全都参与其中。

Google 全球开发者关系副总裁 Jason Titus 表示:“目前,中国有 910 万开发者,到 2025 年,这一数字将有望达到 1150 万,作为全球最大的开发者社区之一,中国的开发者对整个开发者生态系统至关重要。”

更开放的 Flutter:完善贡献流程,建设开发生态及对 Web 的支持

不到一年时间,Flutter 就在 GitHub 和 StackOverflow 上获得了比 React Native 更高的知名度。Flutter 提供了一整套从底层渲染逻辑到上层开发语言的完整方案,有跨平台、高保真、高性能等优点。也正因为这些革命性的优点,从发布到现在,它的热度一路攀升,受到了很多开发者的热切青睐。迄今为止,Flutter 的月活已经达到 50 万,大约 11% 的 Flutter 开发者来自中国。

根据 JetBrains 的调查结果显示,40% 的跨平台开发者已经采用 Flutter。GitHub 的统计数据也表明,Flutter 是全球增长第二快的开源项目。

目前开发者对于 FLutter 的认可主要来自于它的四大属性:美观、流畅、高效和开放。本次 Google 开发者大会,Google Flutter 用户体验研究负责人董韬分享了 Flutter 开源社区、生态建设、Web 支持等内容。

开源社区

在 10 月新发布的 Flutter 1.22 版本中,197 位开发者(114 位 Google 全球社区的开发者和 83 位谷歌开发者)共同贡献了 1944 个 Pull Requests (PRs)。Flutter 1.22 为 Android 11 和 iOS14 的多项新功能提供了支持。

Flutter 对开源社区的建设具体落实在几个方面:

  1. Flutter 邀请了 12 位来自全球开源社区(包括中国)的开发者加入我们在 GitHub 上的开源组织,授予了他们代码审核和并入 PR 的权限;
  2. Flutter 把团队的绝大部分技术讨论放到了公开的聊天服务器上,已经有很多社区的开发者通过这一渠道参与了 Flutter 的研发过程;
  3. Flutter 进一步完善了贡献代码的流程和指南文档;
  4. Flutter 团队在不断地改进 PR 的管理和评审流程。

开放的生态建设

截止今年 9 月,Pub.dev 上已经有了超过 12000 个与 Flutter 兼容的包,对比一年前增长了 2.5 倍。

为了让开发者更方便地找到需要的包,Flutter 团队重新设计了 Pub.dev。在新版网站中,Flutter 团队特别突出了得到“Flutter Favorite”认证的包,带有该认证的包在功能和质量上都达到了一个很高的水平,Flutter 团队也推荐开发者在自己的项目中优先选择带有“Flutter Favorite”认证的包。

对 Web 的支持

Flutter 开放性的第三个方面体现在对 Web 的支持。Flutter 的长期愿景是提供一个在各种屏幕上都能让开发者实现精美体验的 UI 工具包,为了实现这个愿景,在去年 12 月的 Flutter 大会上,Google 首次公开了 Flutter Web 的 beta 版本,目前,Flutter Web 的第一个稳定版本正在推进中,与此同时,一部分开发者已经使用 beta 版本进行开发。Flutter Web 可以轻松将一个移动应用移植到浏览器端,从而面向更广的受众。

在接下来的六个月里,Flutter 团队的主要工作将聚焦在三个方面:

  1. 持续完善对 Android 11 和 iOS 14 的支持;
  2. 将 Flutter 框架和生态中的重要的包迁移至 Dart Null Safety;
  3. 把 Flutter 对浏览器和桌面的支持逐步提高到生产环境的标准。

Android 11 新版本的关键主题:以人为本、控制和隐私

数十亿人使用 Android 来操作手机、汽车、电视和可穿戴设备,无论是为首批 5G 手机提供动力还是通过可折叠显示屏重塑移动设备外形,Android 一直在推动技术发展的极限。在本次 Google 开发者大会上,Android 产品总监 Karen Ng 介绍了 Android 技术和工具的最新进展。

首先,Android 11 最新版本中包含了三个关键主题:以人为本、控制和隐私。

  • 以人为本:构建了一个可以识别和关注用户生活中最重要人物的操作系统,同时考虑到每个人的表达习惯不同,增加了很多兼容并蓄的功能,例如自定义表情符号贴纸、虚拟盲文键盘等。
  • 控制:用户现在可以使用“Device Control”新功能,快速访问所有智能设备,并在同一个空间内对其进行控制;
  • 隐私:为用户提供了更高的透明度以及控制设备数据共享的方式。例如,用户可以授予应用访问设备的麦克风、摄像头或位置等的一次性使用权限,该应用再下次开启时需要再次请求权限。

过去几年,Google 一直在努力改善移动开发者的体验,Android Studio 4.1 和 4.2 Canary 中引入新功能,实现了更好的开发体验。

  • 调试更简单:对 Android 11 设备的 ADB 进行无线调试;
  • 设备测试更好:直接在 IDE 内部托管 Android 模拟器;
  • 机器学习更容易:直接在 IDE 中为 ML Kit 和 TensorFlow Lite 导入模型;
  • 构建和部署更快:借助 Kotlin Symbol Processing,在 Gradle 中缓存任务图以及将应用更快部署到 Android 11 上的所有设备;
  • 游戏工作更强大:全面改进系统跟踪工具、支持本机内存分析。

Kotlin 受到了开发者的广泛欢迎,目前排名前 1000 的应用中,70% 以上都在使用 Kotlin,专业的 Android 开发者中 60% 都在使用 Kotlin。移动应用往往需要同时做很多事情,代码中常会出现并发调用,这类代码一直是开发者的开发痛点。现在 Google 推出了 Kotlin 协同程序来解决这个难题,目前 Kotlin 协同程序已经设置为官方推荐,并支持构建到顶级库中,例如 Lifecycle、Workmanager 和 Room。

Google 为 Android 上最常见、最困难的开发问题创建了一套库 Android Jetpack。目前 Play 商店中排名前 10000 个应用中,84% 正在使用 Jetpack 库。除此之外,Google 还添加了两个新的 Jetpack 库 Hilt 和 App Startup ,其中,Hilt 与 Dagger 一起构成了 Android 上依赖注入的完整解决方案;App Startup 通过优化库的初始化来缩短应用程序的启动时间。同时,Google 创建了第一个全 Kotlin Jetpack 库——Paging 3,并全面支持协同程序。

Jetpack Compose 是一个功能强大的 UI 工具包,可通过对平台 API 对的本地访问快速在 Android 上构建漂亮的 UI,并与现有的 Android 视图具有完全的互操作性,无需重写代码。