成品网站包含后台么,wordpress手动加水印,wordpress 头像地址,今天兰州最新消息性能优化是APP开发绕不过的话题#xff0c;那么在HarmonyOS开发过程中怎么进行性能优化呢#xff1f;今天就来总结下相关知识点。 UI性能优化 1、避免在组件的生命周期内执行高耗时操作2、合理使用ResourceManager3、优先使用Builder方法代替自定义组件4、参考资料 1、避免在…性能优化是APP开发绕不过的话题那么在HarmonyOS开发过程中怎么进行性能优化呢今天就来总结下相关知识点。 UI性能优化 1、避免在组件的生命周期内执行高耗时操作2、合理使用ResourceManager3、优先使用Builder方法代替自定义组件4、参考资料 1、避免在组件的生命周期内执行高耗时操作
HarmonyOS自定义组件的生命周期如下图 如上图所示自定义组件在build函数执行之前将先执行aboutToAppear()生命周期回调函数。此时若在该函数中执行耗时操作将阻塞UI渲染增加UI主线程负担。因此应尽量避免在自定义组件的生命周期内执行高耗时操作在aboutToAppear()生命周期函数内建议只做当前组件的初始化逻辑。 解决思路对于复杂计算的耗时场景可以将计算结果进行缓存处理。对于不需要等待结果的高耗时任务可以采用多线程处理该任务通过并发的方式避免主线程阻塞。
2、合理使用ResourceManager
在生命周期aboutToAppear中应该避免使用ResourceManager的getXXXSync接口入参中直接使用资源信息推荐使用资源id作为入参推荐用法为resourceManager.getStringSync($r(app.string.test).id)。
aboutToAppear(): void {//反例getContext().resourceManager.getStringSync($r(app.string.app_name));//推荐用法getContext().resourceManager.getStringSync($r(app.string.app_name).id);}3、优先使用Builder方法代替自定义组件
如下图在build阶段将在后端FrameNode树创建一个相应的CustomNode节点在渲染阶段时也会创建对应的RenderNode节点如下图所示
前端UI描述结构会在后端创建相应的FrameNode节点树每个树节点和前端UI组件是一一对应的关系FrameNode节点树主要用于处理UI组件属性更新、布局测算、事件处理等业务逻辑CustomNode作为FrameNode的子类用于处理自定义组件相关业务逻辑比如执行build函数。FrameNode节点树在渲染阶段生成后端渲染树进行UI渲染。
所以当在页面上大量使用自定义组件时会成倍增加FrameNode节点树上CustomNode类型的节点数量增加页面创建和渲染时长。因此在满足业务需求的前提下可以优先使用builder函数代替自定义组件。
4、参考资料
UI组件性能优化