搜了一天,没看到满意的答案。
网文多是人云亦云地鼓吹 “组合优于继承”,可我认为 这并不是 Flutter 视图系统和 Android 视图系统区别的本质所在,
因为所谓的 “组合”,也不过是将 Canvas 分类为 图形、图片、文字 等常用的成分,供自定义视图的绘制用 —— Android 本身就可以通过动态编码基于 Drawable 做到这一点。
我在意的是,Flutter 视图系统本质上存在怎样的优越性,使得 Jetpack Compose 和 SwiftUI 都朝着类似的方向重新设计视图系统。
比如 Android 视图系统以 surface 为单位进行绘制,每个 surface 中可能就每个层级的控件内容进行多次叠加的渲染(也才有了过度绘制的情况 和 解决过度绘制的 性能优化的思路)
那么 Flutter 是什么情况呢?难道 Flutter 的渲染一次搞定,不用多次渲染叠加?那它的性能检测依据是什么?遇到掉帧问题应基于怎样的思路去改善?
就是这些最本质的东西,没找到线索去理解,所以先立个贴请教万能的 v 友,看看有没有自己看的好的文章,推荐一二。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.