小米要用 Flutter 来重写系统 App 了

2 月 4 日
 VinsonGuo


虽然个人很喜欢用 Flutter ,但是系统应用用 Flutter 来写有些画蛇添足了,难道 Xiaomi 也要再重新造个 OS 好方便到时候移植?
16063 次点击
所在节点    Android
121 条回复
javalaw2010
2 月 4 日
小米这么大的出货量应该干不出来完全抛弃安卓的事儿,我觉得有可能是新的产品形态。
ynxh
2 月 4 日
xiaomi 确实有自研 os 在搞着了。预计有一款产品,自研 os + 自研芯片 + 自研大模型的会师。
Flutter 我是觉得挺好的...
x86
2 月 4 日
玩不明白的话用啥写都白搭
albatron
2 月 4 日
我的小米 14T 到现在还没收到 hyperos3 的更新推送,怎么就开始说 hyperos4 的事情了😢
tanszhe
2 月 4 日
Flutter 的性能肯定是小于原生性能的。
开发的包变大,性能变卡

优势就是快 夸平台。小米这是要缩减成本吧
VinsonGuo
2 月 4 日
@ynxh 系统应用需要调用大量的原生 api ,用 flutter 就得写无数个 method channel ,而且性能还是和原生有差距的。hyperos 本身现在风评就很差,被其他家吊打,就怕再用上 flutter 步子迈太大...
zsk425
2 月 4 日
除非真的要搞自研 OS ,否则想不出为什么要用 Flutter ,保持观望
96
2 月 4 日
不如也整个大网页,大家都是 JS ,一起让前端再次伟大
1343EFF
2 月 4 日
严重怀疑他的车机 APP 大多数用的 flutter 渲染,准备统一车机和手机的技术栈了
xFrye
2 月 4 日
应该是下一代 os 的 UI 层将会基于 flutter ,可预见未来后续国内其他的 os 会往这个方向发展?至于是不是选 flutter 就不好说了
debuggerx
2 月 4 日
@tanszhe 一个反很多人直觉的情况是,在复杂布局和大量动画特效的场景下,flutter 的性能表现要略优于 compose ,远强于原生传统 view 布局。这对于对特效、动画、流畅度要求越来越高的系统应用来说是非常合适的。

gemeni 的解释如下:


原生 Android (Classic View System)

布局性能: 最差(在复杂场景下)。
传统 View 系统(尤其是 RelativeLayout 和带权重的 LinearLayout )存在“二次测量 (Double Taxation)”问题。父 View 可能需要多次测量子 View 才能确定位置。当布局嵌套很深时,测量时间呈指数级增长,极易导致掉帧。
虽然 ConstraintLayout 解决了嵌套问题,但其底层的约束求解器( Cassowary 算法)在极度复杂的动态界面中仍有计算开销。
动画性能: 高上限,但难优化。
如果使用 RenderNode 或直接在 SurfaceView / TextureView 的 Canvas 上绘制,性能是极高的(接近底层图形 API )。
但常规的 ObjectAnimator 或 ViewPropertyAnimator 在触发 layout 过程时(如改变 View 大小),会引起整个 View 树的重绘,开销巨大。


Flutter

布局性能: 极佳。
Flutter 使用单次遍历 (Single-pass) 布局算法。父节点传递约束,子节点返回大小,时间复杂度为 O(N)。无论布局多深,性能损耗也是线性的。
自带渲染引擎 (Skia/Impeller):Flutter 不依赖 OEM 组件,直接通过 GPU 绘制。在处理大量 UI 元素时,它更像是一个游戏引擎,表现非常稳定。
动画性能: 最稳定流畅。
动画核心与 UI 渲染紧密结合。对于大量粒子或复杂变换,Flutter 的重绘区域控制( Repaint Boundary )非常高效。
特别是在 Impeller 引擎(解决 Shader 编译卡顿)普及后,复杂动画的流畅度通常优于未深度优化的原生应用。


Jetpack Compose

布局性能: 优秀(优于传统 View )。
Compose 强制执行单次测量规则(禁止子 View 被多次测量)。这在架构上解决了传统 View 的性能瓶颈。
它利用间隙缓冲区 (Gap Buffer) 和 智能重组 (Smart Recomposition),仅重绘数据发生变化的部分。
注意: 如果代码写得不好(例如频繁触发重组而没有使用 derivedStateOf 或 remember ),性能会急剧下降。
动画性能: 良好,但在极高负载下略逊于 Flutter 。
Compose 的动画系统是声明式的,底层优化很好。
但在处理极大量并发动画(如全屏粒子)时,由于 Compose 仍运行在 JVM 上且需经过 Android 图形栈,相比 Flutter 直接对接 GPU ,由于对象创建( GC 压力)和跨层调用,极限性能稍弱。
mizuki9
2 月 4 日
系统应用用 flutter 重写,无障碍不要了吗?信源有问题吧
4seasons
2 月 4 日
小米这股价跌成这样,果然是有原因的
david1025
2 月 4 日
最应该重写的应该是操作系统,你重写几个系统应用就算是流畅了,对应用户来说感知不是很明显,第三方 app 该卡顿掉帧还是卡顿掉帧
wvitas
2 月 4 日
@mizuki9 flutter 也可以无障碍
mizuki9
2 月 4 日
@wvitas 有是有,但是是一坨吧
NyxJinx
2 月 4 日
flutter ffi +rust 挺好的
fuwu1245
2 月 4 日
0 遗留 有没有可能引入新 Bug
darkengine
2 月 4 日
@david1025 这些手机厂可没这个魄力重写操作系统。
hronro
2 月 4 日
安卓上不清楚,iOS 上 Flutter 的应用明显不如原生的应用流畅。如果同一套 Flutter 的代码在安卓上比安卓原生的流畅,那真有点 iOS 的下限吊打安卓的上限的感觉了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1190756

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX