❝谷歌 2022 I/O 大会刚刚过去,这两天我也整理了不少篇文章和资讯,如果刚兴趣的可以在文末查看相关内容。 ❞
作为时隔 3 年再次回归海岸线圆形剧场,谷歌这次 I/O 大会可以说是干活满满,特别是本次大会的“线上会场”,Adventure 用类似“元宇宙”的概念,让广大开发者可以在“游戏”中逛遍所“展厅”,同时通过完成各种有趣的小游戏来参与大会,甚至你还可以钓鱼挂机...当然,最重要的是可以和全球各个开发者线上交流,这无疑是本次大会最优秀的一环。
AI
作为本次 I/O 大会的关键词之一,AI 成为谷歌所有产品里的重要组成部分:
- 「通过 AI 加持,谷歌翻译新增了 24 种语言,甚至美洲原住民语言支持;」
- 「Google Maps 通过 AI 实现了建筑物探测和街景融合的保真地图;」
- 「YouTube 通过 AI 优化生成章节和字幕;」
- 「Google Workspace 通过 AI 自动解析单词并提取要点;」
- 「Google Meet 通过 AI 实现画面、灯光、亮度的优化;」
- 「推出 LaMDA 2 AI Test Kitchen 和 PaLM,支持更智能的对话场景;」
可以看到这次谷歌的所有产品线都充斥了 AI 的关键词,AI 在谷歌的每个产品线上都得到了落地,而从个人之前体验过的谷歌翻译、 Google Meet 和 Google doc 上看,例如 Meet 的 实时 cc 、 视频动态亮度和 doc 的补全分词等上的感受看,AI 确实带来了用户体验的进一步升级。
Android 13
Android 系统作为每年的主角之一,本次发布的是 Android 13 Beta 2
,不过今年的 Android 13 在众多干货里反而有些“平平无奇”,而按照往年的惯例,正式版应该还是在年末的时候推出。
其实想想也很正常,Android 发展这么多年,如今确实很难出现什么让人眼前一亮的功能,而和去年一样,「今年的重点还是在于隐私安全,然后还有 Material3 和折叠屏等相关的支持」。
隐私
Android 13 上隐私调整最大的应该是新的照片选择器,「在 Android 13 中选择照片,会要求调用系统本身的组件来读取照片,而不是调用第三方 App」,并且这个特性不仅仅会在 Android 13 中出现,谷歌会将其放置到 Play 商店中,向 Android 11 和 Android 12 设备推送。
当然,这个调整最后在正式版中会如何要求还无法确定,因为按照之前 Android 10 、Android 11 关于读取 SD 文件的隐私要求作为参考,或者正式版中还是会有可以“兼容”的逻辑。
其他隐私相关还有:「附近 WiFi 权限」 、「通知权限(某个 App 如果想要发出通知,需要用户授权)」、 「存储媒体权限(可以为不同的存储媒体单独授权)」、 「富文本通信服务 (RCS) 的新标准」 等等相关的改进。
Material 3
Material You 也就是 Material 3 , 是在 Android 12 开始引入的一种设计语言,它带来了新的 UI 风格,还引入了基于壁纸的调色板控件,以及新的动画效果等。
谷歌对于 Material 3 的推广热情很高,不光是在 Android 上,在最新的 Flutter 3.0 也正式开始对 Material 3 的支持,但是做为国内的应用开发,相信大家应该都有一个共识:
❝「国内的老板、产品或者设计大概率使用的是苹果手机,所以 Material 风格这么多年也没在国内流行起来,甚至开发还需要费一些精力去屏蔽对应的阴影或者点击效果」。 ❞
当然,关于 Material 3 有一个比较有意思的点,可能大家反正了解的不多,那就是 「HCT Google 全新的色彩空间。」
那它有什么用呢?简单说就是:「设计师第一次真正有了一套可以反映用户所见的色彩系统」。
对于 HCT 其实是 Hue、Chroma、Tone 三个单词的缩写,可以解释为色相、色度和色调,通过谷歌开源的 Material Color Utilities 就可以方便实现接入。
❝Material Color Utilities 是一个跨平台的代码库,目前已支持 Dart、Java 和 Typecript 等语言,另外 C/C 和 Object-C 也在即将支持。如果对 HCT 感兴趣的可以去 Material Color Utilities 查阅相关资料 。 ❞
最后,本次 Android 13 Beta 1 也开放尝鲜,其中得到国内品牌确认并已公布刷机包的有:小米12、小米12 Pro、小米平板5 、Redmi K50 Pro、OPPO Find N、OPPO Find X5 Pro、一加10 Pro、realme GT2 Pr 等。
Jetpack 和 Jetpack Compose
Jetpack
相信作为 Android 开发,每次 I/O 最关心的还有 Jetpack 和 Compose 相关的信息,目前 Android Jetpack[1] 已经包含了 100 多个库、工具和指南,本次相关介绍有:
- Room 2.5 开始使用 Kotlin 完成重写;通过
room-paging
内置对 Paging 3.0 的支持;直接执行 JOIN 查询而无需定义额外的数据结构等; - Paging 3.1 为 Rx 和 Guava 集成提供了支持,也就是除了 Kotlin 协程的还使用提供了 Java 的替代方案;
- Navigation 通过 navigation-compose 成到 Jetpack Compose 中;所有 Navigation 工件都已在 Kotlin 中完成重写;
- 通过 Baseline Profiles 优化 Apk 的安全和启动时间
- 通过 JankStats 跟踪和分析应用 UI 中的性能问题;
- AppCompat 1.4 集成了 Emoji2 库;
- 新的 DragAndDrop 支持接受来自其应用程序内部和外部的拖放数据;
- 新的 WindowManager 通过提供一个支持 API14 的通用 API 界面,帮助开发人员调整他们的应用以支持多窗口环境和新的设备外形;
可以看到如今的 Jetpack 体系已经相当丰富,基本上通过 Jetpack 系列的支持,开发人员几乎不需要使用第三方框架,「这也是现在很多 Android 的开源项目不再维护的原因之一」。
❝更多 Jetpack 内容请查阅文末链接 ❞
Jetpack Compose
关于 Jetpack Compose,本次大会官方表示,目前 Play Store、Twitter、Aribnb 等大型企业都已经开始使用 Compose 进行开发,「在 Play 商店中排名前 1000 的应用程序中有 100 多个正在使用 Compose」。
而本次发布Compose 1.2 的第一个 beta 版本, 其中主要改进了:
- 字体填充问题;
- 可下载字体支持;
- 文字放大镜支持;
- 「自定义懒布局支持;」
- 支持与 CoordinatorLayout 交互
- Layout Inspector 针对 Compose 的性能调试支持;
- 「Wear OS 支持用 Compose 编写UI」
可以看到本次放出的 Jetpack Compose 相关内容也十分丰富,目前 Compose 也正在被越来越多的的企业所使用。
可能有人就要说了,那 Compose Multiplatform Framework 的内容呢?
事实上 Compose Multiplatform Framework 是由 JetBrains 维护和开发,「本质上 Jetpack Compose 是 Android Jetpack 里的 UI 框架,而 JetBrains 将它支持到跨平台。」
所以正如目前关于 Compose Multiplatform Framework 的更新,大家可能更多要关注 JetBrains 的动态。
另外 「Wear OS 支持用 Compose 编写 UI 无疑是本次 Compose 最大的亮点」。
❝更多 Jetpack Compose 的详细内容, 请查阅文末链接 ❞
Flutter
Flutter 本次也是作为 I/O 的主角之一,本次发布的 Flutter 3, 完成了 Flutter 从以移动为中心到多平台框架的路线图,本次大会主要是提供了 「macOS 和 Linux 桌面应用相关的支持,以及对 Firebase 集成的改进、提高生产力和性能以及对 Apple Silicon 的支持等等」。
Flutter 1.0 beta 发布以来的过去了四年,如今 Flutter 终于完成了对 Android、iOS 、 Web、Win、Linux、macOS 的全平台的正式版支持,可以说本次发布会对于 Flutter 来说有着交出第一份答卷的味道。
而根据 data.ai 等研究公司的分析以及公开推荐表明,Flutter 目前同样被许多领域的 客户[12] 所使用,包括由:
- 微信等社交应用
- Betterment 和 Nubank 等金融和银行应用;
- SHEIN 和 trip.com 等商务应用;
- Fastic 和 Tabcorp 等生活方式应用;
- My BMW 等配套应用
- 巴西政府等公共机构;
❝「如今,有超过 500,000 个使用 Flutter 构建的应用程序」。 ❞
当然,这里不得不提在到字节跳动,Sneath 在受访中表示「字节跳动目前是 Flutter 的主要用户,内部估计其有约 80 个基于 Flutter 的应用」。
而关于 Flutter 的更新,本次 Flutter 除了发布 macOS 和 Linux 的正式版之外,主要还包含了:
- 改进性能;
- Impeller 下一代渲染引擎正式露脸;
- Material You 支持;
- 「游戏相关」;
没错,本次 Flutter 还有一个惊喜环节,那就是小游戏 I/O Pinball ,基于 Flutter 构建的 2D 游戏引擎 Flame 给了 Flutter 新的可能,如果对这个感兴趣,也可以查阅文末的相关文章。
❝更多 Flutter 的详细内容, 请查阅文末链接。另外本次大会的 Alex 大佬的 workshop 也可以关注下: https://goo.gle/LazyIndexedStack 。 ❞
资料汇总
- Google I/O 2022:Jetpack 的新功能: https://juejin.cn/post/7097029239731388446
- Jetpack Compose 的新功能-谷歌 I/O 2022: https://juejin.cn/post/7097037343617449992
- Google IO 2022 :Android 13 新功能: https://juejin.cn/news/7097038682921631774
- Flutter 3.0 新功能详解: https://juejin.cn/post/7096617842023333925
- Flutter 3 相关介绍,包括 Flutter桌面端、Flutter firebase 、Flutter游戏 https://juejin.cn/post/7096647457592852493
- 基于 Flutter 和 Firebase 实现的小游戏 I/O Pinball https://juejin.cn/post/7096687944819277837
- Google 在 I/O 2022 上的重点发布内容-手机、手表、眼镜、平板、AI、安全、Android13、谷歌钱包 https://juejin.cn/news/7096672092657025054
- Google I/O 2022:推进知识和计算-谷歌和Alphabet的CEO演讲https://juejin.cn/news/7096654922405380103