怎么看澎湃 OS4 正式采用 Flutter + Rust 对系统进行性能和内存优化?
年初那会就聊过这个事情了,小米 HyperOS 4 大变样?核心应用以 Rust / Flutter 重写,不兼容老系统 ,按照之前的说法,HyperOS 4 的目标是统一系统分区内的 UI 渲染和逻辑稳定性,最终取代之前 MIUI 版本中碎片化的 Java/Kotlin 遗留架构。

也就是 HyperOS 4 基于 Android 17 路线,自定义了一套渲染的渲染和允许逻辑,实际上这套Rust/Flutter 从 HyperOS 3.1 已开始了,对于已经适配过的 App 不再用 ART 的 Java JVM 运行,目前大概知道的:
- 新 Launcher
- 新 Gallery
- 新的天气 App

然后部分 Rust / Flutter .so 如果按照之前说的,应该会从 APK 内部迁移到了 System SDK,所以这些 APK 拿到老系统上,会因为缺少系统侧 Runtime 而无法正常运行。

HyperOS 4 提取信息大致也可以看出来,小米在把一部分 Rust / Flutter .so 提升成 System SDK 依赖,后续整个架构可能逐渐变成:
HyperOS System
│
┌─────────────┴─────────────┐
│ System SDK │
│ │
│ Flutter Runtime/Engine │
│ Rust Runtime / Native │
│ Xiaomi System APIs │
└─────────────┬─────────────┘
│
┌─────────────────┼─────────────────┐
↓ ↓ ↓
Launcher Gallery 其他系统 App
Dart UI Dart UI
Rust Core Rust Core
相当于把 Flutter 做成 HyperOS 的一种系统 UI Runtime,这样系统应用可以共享 Runtime,APK u也可以更小,小米页可以针对自己的 SurfaceFlinger、GPU、WindowManager、动画系统做 fork 或定制 ,系统 App 之间也能维持统一 ABI。
不过目前整体系统还是存在两套工作机制,就像极客湾说的,目前只有第一方 App 场景能享受到这部分性能和内存优化,第三方还是在原来的 JVM 生态。

整个架构风格大概类似:
HyperOS evolution
│
┌─────────────────┴────────────────┐
│ │
Android Platform Xiaomi App Runtime
│ │
Android 16 Kotlin / Java / C++
↓ ↓
Android 17 Rust + Flutter migration
↓
Shared System Runtime
整个架构可能可以理解成这样?
┌─────────────────────────────────────────┐
│ HyperOS 4 │
│ │
│ System Apps │
│ ┌───────────────────────────────────┐ │
│ │ Flutter / Dart UI │ │
│ │ Launcher / Gallery / ... │ │
│ └─────────────────┬─────────────────┘ │
│ │ FFI │
│ ┌─────────────────▼─────────────────┐ │
│ │ Rust Native Core │ │
│ │ State / Data / IPC / Algorithm │ │
│ └─────────────────┬─────────────────┘ │
│ │ JNI / Binder │
│ ┌─────────────────▼─────────────────┐ │
│ │ Xiaomi System SDK │ │
│ │ Rust Runtime / Flutter Runtime ? │ │
│ └─────────────────┬─────────────────┘ │
│ │ │
│ ┌─────────────────▼─────────────────┐ │
│ │ Android 17 Framework │ │
│ │ ART / Binder / Window / Media │ │
│ └─────────────────┬─────────────────┘ │
│ │ │
│ ┌─────────────────▼─────────────────┐ │
│ │ Native Services / Linux Kernel │ │
│ └───────────────────────────────────┘ │
└─────────────────────────────────────────┘
不过确实没想道,内存稀缺时代,小米居然是用 Flutter + Rust 来实现内存占用的优化,UI 也新增加了柔光玻璃模式,好像现在不管哪家产生,都开始搞这种类似的 UI Style ,手机的设计风格也是莫名统一·····

就好奇,小米是有计划把这个新渲染系统提供给第三方么?只有自己用貌似能起到的作用也不大吧?