Google 正式发布 Fuchsia OS,Flutter 集成尚存问题

 

自从 2016 年 8 月 Google 公布了 Fuchsia OS 计划后,这一新的操作系统便一直备受关注。而在昨天,Google 官宣 Fuchsia OS 已正式在第一代 Nest Hub 设备上运行,取代了 Nest Hub 原来的基于 Linux 的 Cast OS,这也就意味着 Fuchsia OS 有了实质性的进展。

 

Google 正式发布 Fuchsia OS,Flutter 集成尚存问题_第1张图片

在智能设备方面,最初用于测试 Fuchsia OS 的两款设备是 Astro 和 Gauss。Astro 最终成为了 Nest Hub,而 Gauss 则从 Fuchsia 的代码中消失。如果查看 Fuchsia 的代码库,还会有一些有趣的发现。代号为 Eagle 和 Cleo 的设备与 Lenovo Smart Clock 有许多共通的设备,后面也从 Fuchsia 代码中被移除。到了 2019 年,代号为 Visalia 的设备与 Nest Mini 同样使用了 AS370 芯片。而到 2020 年,Fuchsia 使用了代号为 Nelson 的原型机,后来又扩展到了代号为 Selina 的第二代 Nest Hub 上。一些迹象表明,Fuchsia OS 将来会支持 Nest Hub MaxNest MiniNest Hub 2nd Gen 这几款设备。

Google 对 Fuchsia OS 的定位不止于智能设备,台式机与笔记本电脑,甚至工作站,也是 Fuchsia OS 的目标。另外,Fuchsia OS 还在也在应用程序方面尝试一些新的理念。Fuchsia 不再专注于应用本身,而是希望以时间线来展开“故事”,来展示用户正在处理的事情。

当然,一个生态的构建离不开开发者的参与。Google 也在为 Fuchsia OS 最终在智能设备之外发布做准备,虽然 Google 希望开发者能直接为 Fuchsia OS 开发专有应用,但同时在为 Linux 和 Android 应用程序提供本地支持而努力。有趣的是,Google 并没有上这次 Google I/O 开发者大会上推出 Fuchsia OS,也许是并没有准备好让普通开发者参与进来。Google 也一直在开发 Fuchsia 的 IDK(集成开发套件),其目的是使软件开发套件能更容易地支持开发 Fuchsia 应用程序。

对于移动开发者来说,最关注的应该是 Fuchsia 对 Flutter 的支持。

Google 正式发布 Fuchsia OS,Flutter 集成尚存问题_第2张图片

Fuchsia 对 Flutter 的使用也在不断变化,从最初的深度集成转变为更接近 Flutter 在其它嵌入式平台上运行的能力。而我们如果查看一下 Fuchsia 开发者官网,会发现 Fuchsia 集成 Flutter 似乎是遇到了一些短时间内无法解决的技术难题

Fuchsia's Flutter integration is currently languishing under technical debt and out-of-tree workflows with sharp edges. These two factors make it difficult for existing or new engineers to contribute to Flutter-on-Fuchsia in a meaningful way. They have also led the Flutter team to largely abandon maintenance of Flutter-on-Fuchsia and transfer ownership of that task back to the Fuchsia team.

预期的解决方案是 Fuchsia 上的 Flutter 将使用一个自定义的 Flutter Engine Embedder,这个嵌入器使用了由 Flutter 团队定义好的 Embedder API。

Flutter on Fuchsia will migrate to become a Custom Flutter Engine Embedder using the well-defined Embedder API (and ABI) created by the Flutter team. As part of this we will remove the native VM hooks for dart:zircon and dart:fuchsia and reimplement these packages using dart:ffi (because the embedder API does not allow for custom native hooks).

This refactoring will allow the Fuchsia-specific code to be maintained independently of the core flutter engine code, with the 2 being separated by a well-defined ABI. In the process of disentangling the Fuchsia-specific code from the code flutter engineer code, it also removes a lot of technical debt (~8kLOC of legacy code scheduled for deletion).

详情可以查看 https://fuchsia.dev/fuchsia-src/contribute/roadmap/2021/flutter_on_fuchsia_velocity

你可能感兴趣的:(Flutter,flutter,Fuchsia,OS)