31 条回复  ·  3301 次点击
xFrye 小成 昨天 17:25
应该是下一代 os 的 UI 层将会基于 flutter ,可预见未来后续国内其他的 os 会往这个方向发展?至于是不是选 flutter 就不好说了
debuggerx 小成 昨天 17:26
@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 小成 昨天 17:31
系统应用用 flutter 重写,无障碍不要了吗?信源有问题吧
4seasons 初学 昨天 17:32
小米这股价跌成这样,果然是有原因的
david1025 初学 昨天 17:35
最应该重写的应该是操作系统,你重写几个系统应用就算是流畅了,对应用户来说感知不是很明显,第三方 app 该卡顿掉帧还是卡顿掉帧
wvitas 初学 昨天 17:36
@mizuki9 flutter 也可以无障碍
mizuki9 小成 昨天 17:39
@wvitas 有是有,但是是一坨吧
NyxJinx 初学 昨天 17:40
flutter ffi +rust 挺好的
fuwu1245 小成 昨天 17:44
0 遗留 有没有可能引入新 Bug
darkengine 小成 昨天 17:45
@david1025 这些手机厂可没这个魄力重写操作系统。
返回顶部