ArkUI进阶-性能优化
布局性能优化
基本布局流程
在ArkUI的布局过程中,应用侧会根据前端UI描述创建后端的页面节点树,包含处理UI组件属性更新,布局测算,事件处理等逻辑。
例如上述布局:
- 应用会根据我们的代码,创建对应的node节点树,其中,
Custom Node
表示自定义组件节点,Frame Node
节点表示系统组件节点。 - 在这个过程中,UI线程会对每个元素进行测算
measure
和布局lauout
,来确定具体的位置和大小,measure
阶段负责确定组件的测量宽高,也就是该组件元素占用的屏幕大小,layout
阶段会确定最终宽高和四个顶点的位置。 - 根据页面节点树,生成当前界面描述数据结构–渲染树。渲染树由
RenderNode
渲染节点组成,描述了具体元素在屏幕上的布局信息,包含大小、位置以及一些其他属性。 - 渲染服务的渲染线程会根据渲染树的信息执行相应的绘制工作。
在布局阶段中,如果视图嵌套层级较深,或者页面节点过多,会导致在Measure和layout过程中,通过遍历测量组件大小和边界的时间过长。所以布局性能优化,可以从减少节点数或者优化布局测算时间方面来考虑。