近日负责 Fuchsia 项目的开发者从 AOSP 项目中删除了大量与 Fuchsia 有关的代码,但大家无需过度紧张,此次删除的代码已有超过一年时间没有更新,并且此次删除的代码是让 Fuchsia 支持运行 Android 应用时所采用的旧方法,Google 正致力于以新方式在 Fuchsia 系统中运行 Android 应用。
在 2016 年,Google 就在 GitHub 上提交了 Fuchsia OS 的代码,也正是在那个时候,Fuchsia OS 进入了大众的视野。Fuchsia OS 是 Google 在 Android 和 chromeOS 以外的又一个操作系统,Fuchsia OS 基于 Zircon,而非大家常见的 Linux。Fuchsia OS 在去年正式推出,并率先登陆第一代 Nest Hub 设备,随后还登陆了 Nest Hub Max。
开发一个全新的操作系统,尤其是开发 Fuchsia 这样从头开始构建的操作系统的最大问题之一就是软件生态,为了让系统能够快速发展起来,Google 自然是希望 Fuchsia 能够同时运行 Android 应用程序、Linux 应用程序以及 Fuchsia 原生的应用程序。
Google 最初曾尝试在 Fuchsia 设备上使用虚拟机来运行 Android 系统从而再运行 Android 应用,但这个方法并不高效。首先在「主机」(Fuchsia)和「访客」(Android)之间管理文件会比较麻烦,其次通过虚拟机来运行 Android 应用会大幅降低性能。
为了改善这个问题,Google 在 2019 年的时候就在公开的 AOSP 中创建了一个名为 "device/google/fuchsia" 的项目,该项目为 Fuchsia 带来了专门设计的 Android Runtime("ART")版本,这个版本的 ART 所构建出来的 Android 应用将通过一个 .far(相当于 Android 的 APK) 文件安装在 Fuchsia 设备上,并能在 Fuchsia 上成功运行。
但该项目在 2021 年 2 月就陷入了停滞状态,近日 "device/google/fuchsia" 项目的所有代码甚至都从 Android 系统中被删除,这也就标志着这个项目已经正式结束。
在注释中写道:Everything here isn't needed anymore.(如上图,这里的一切都不再需要了)
几乎是在 2021 年 2 月同时期,Starnix 作为一项新的项目被提上了开发日程,该项目可以使 Fuchsia 以 "原生" 的方式运行为 Linux 或 Android 构建的应用程序和库。实现方式就是 Starnix 可以将 Linux 内核指令转译成 Fuchsia Zircon 内核指令,这有点类似于苹果 M 系列的 Mac 电脑通过使用 Rosetta 2 来运行基于英特尔的应用程序。
自从 Starnix 提案被接受并开始相关的开发工作以来,如今已经过去一年多了。在这段时间里,Fuchsia 团队在使 Android 应用能够在 Fuchsia 设备上运行方面取得了重大进展。所有这些改进似乎都表明,Google 对 Fuchsia 项目有着更加宏大的规划,将把 Fuchsia 带到更多设备上,而不止于登陆 Nest 这类小巧的智能家居产品。