0day 适配不是梦:Flutter 3.47.4 鸿蒙适配背后的故事

0 评论 86 浏览 0 收藏 8 分钟

官方 9 月 12 日发布 Flutter 3.47.4 stable,社区第二天就完成鸿蒙适配,9 月 15 日在开源鸿蒙 7 的模拟器与真机上全部验证通过。一个 3 人小队用 3 天把基线从 3.44 拉到 3.47。

一个 3 人小队,一个周末,3 天时间,把 Flutter 大版本从 3.44 拉到 3.47, > 并让它在开源鸿蒙 7.0 的模拟器与真机上跑起来。

这不是什么惊天动地的壮举,但它是通往 0day 适配路上,最扎实的一步。

一、0day 适配,曾是一个遥不可及的梦

官方在 9 月 12 日发布 Flutter 3.47.4 stable,社区在 9 月 13 日就完成了鸿蒙适配,9 月 15 日就在开源鸿蒙 7 的模拟器与真机上全部验证通过——这离“官方一发版、鸿蒙当天可用”的 0day 理想,已经近在咫尺。

但你知道吗?就在不久之前,这还是一个让人望而却步的梦。

每次 Flutter 大版本升级,对鸿蒙适配团队都是一次大考:引擎平台壳要跟着改、Dart SDK 要重新定制、patched_sdk 要重新构建、渲染路径要对齐、工具链要重新打通……每一个环节都是硬骨头。过去的经验是:大版本适配,以周为单位。

而这次,我们把它压缩到了 3 天

二、9 月 8 日:一颗种子悄悄埋下

故事要从 9 月 8 日说起。

那天,我和几位社区开发者聊起一个念头:我们能不能做一次 Flutter 官方版本的 0day 适配?

大家兴致勃勃。从版本基线怎么选、引擎壳怎么跟进、Dart SDK 怎么配套,一直聊到发布流程怎么自动化。说实话,那时候虽然 3.47 已经发布,但这次大的架构改进,我们心里也没底,“0day”更像是一个美好的畅想。

但就是这颗种子,让每个人都记住了:下一版,我们要试试。

三、9 月 12 日:3.47.4 发布,恰逢周末

9 月 12 日,Flutter 3.47.4 stable 正式发布。

好消息不止是版本发布,还有——它恰逢周末

这意味着大家都有整块时间,也意味着那颗 9 月 8 日埋下的种子,到了发芽的时候。

我们当机立断,拍板:这个周末,把基线从 3.44 升级到 3.47。

没有犹豫,没有“等下周再说”。因为大家都知道,0day 适配最大的敌人不是技术难度,而是拖延——错过一天,就离 0day 远一天。

四、3 人小队,3 天冲刺

于是,一支 3 人小队集结完毕,由 少湖 牵头,开始了一场与时间赛跑的冲刺:

  • 引擎层:平台壳与 Impeller(Vulkan)渲染路径,紧跟 3.47 基线;
  • Dart SDK:定制 Dart SDK / patched_sdk 重新构建,对齐 Dart 3.13.3(kernel 138);
  • 工具链:引擎工件发布与自动下载链路打通,flutter doctor -v 一键自愈。

9 月 13 日开工,9 月 15 日验证通过。

3 天时间,我们完成了从 3.44 到 3.47 的大版本升级,并在开源鸿蒙 7 的模拟器与真机上完成了全链路验收。

坦白说,这还不是 0day 适配——从官方发布到鸿蒙可用,中间隔了 3 天。

但这 3 天验证了一件更重要的事:适配路径已经标准化了。

流程、脚本、工具链,全部在这次演练中沉淀下来。有了这套标准化的路径,下一次,我们会更快。

五、0day 适配不是梦

为什么要执着于 0day?

因为对于鸿蒙生态来说,本身就是一种竞争力。

开发者选择跨平台框架,图的就是“一次编写,多端运行”。如果 Flutter 官方一发版,鸿蒙生态当天就能跟上,那么鸿蒙就真正成为了 Flutter 版图里平起平坐的一员,而不是“永远慢半拍”的后来者。

这次 3.44 → 3.47 的冲刺,证明了这条路走得通:

  • 大版本升级不再需要以周为单位;
  • 适配流程不再依赖个别”大神”,而是有标准可循;
  • 引擎、SDK、工具链的配套发布,已经形成流水线。

等到 3.50 到来的时候,0day 适配已经不是问题。

这句话,我们有底气说。

六、适配效果

说了这么多,直接看效果——Flutter 3.47.4 跑在开源鸿蒙 7.0 真机上:

Flutter 3.47.4 开源鸿蒙 7.0 适配效果图

标题、正文、按钮渲染清晰,Impeller(Vulkan)渲染路径正常,交互点击响应流畅。 这不是模拟效果,而是真实设备上的运行画面。

七、社区的力量,让更新永不停歇

最后,想说说这次适配背后,最让我感动的东西——社区

这次 3 人小队里,有人负责引擎,有人负责 SDK,有人负责工具链,各司其职、昼夜接力。没有谁的付出是“应该的”,但每个人都在为同一个目标使劲。

社区开发者往往在社区的支持下,更有动力一起为了生态繁荣,持续更新。

  • 你提的一个 Issue,可能就是下一个版本的修复方向;
  • 你点的一个 Star,可能就是某个开发者深夜加班的动力;
  • 你跑通的一台设备,可能就帮生态覆盖了更多机型;
  • 你写的一篇博客,可能就吸引了下一位贡献者加入。

这就是开源的魅力:每一个微小的参与,都在让生态往前一步。

Flutter 与开源鸿蒙的相遇,是跨平台生态与国产操作系统的一次双向奔赴。 而这场奔赴,永远不会停下。

0day 不是梦,因为有一群人,正在让它成真。

如果你也心动了,欢迎加入我们:

项目地址:https://atomgit.com/oh-flutter/flutter_flutter

提 Issue / 提 PR / 测试反馈 / 交流讨论,都是对社区最好的支持

本文由人人都是产品经理作者【nutpi】,微信公众号:【nutpi】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载

题图来自Unsplash,基于 CC0 协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
海报
评论
评论请登录
  1. 目前还没评论,等你发挥!