Compose 智能重组:编译器视角下的黑科技
Source :
mp.weixin.qq.com
Android View 通过测量、布局和绘制三个阶段完成 UI 渲染,Compose 整体上与 Android View 类似,但在开头多了一个叫做“组合”的重要阶段。在组合阶段,Compose 会执行 @Composable 方法并输出 UI 的树状结构与对应信息,为后续的布局阶段提供数据基础。 Compose 采用声明式 UI 范式,不再像传统 View 那样通过调用 View 的 setXXX 方法来手动更新 UI,而是在 UI 状态变更时再次执行组合、布局、绘制流程,以此完成 UI 的更新,重新组合的过程就叫做“重组“。 然而重组是一个比较重的过程,需要重新执行 @Composable 方法并更新内存中关于 UI 树的信息,如果每一个状态的变更都要走一遍整个流程将会带来严重的性能问题。因此在 UI 状态变化时,Compose 会智能的选择必要的 @Composable 方法进行重组,并尽可能跳过不必要的代码执行,这就是 Compose 的"智能重组"。