HarmonyOS 鸿蒙Next 怎样统计一个view的渲染耗时(view里面包含子view,统计整体的)

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 怎样统计一个view的渲染耗时(view里面包含子view,统计整体的)

怎样统计一个view的渲染耗时(view里面包含子view,统计整体的)

4 回复

两个钩子函数里打印时间戳:

  • aboutToAppear:组件即将出现时回调该接口,具体时机为在创建自定义组件的新实例后,在执行其build()函数之前执行。

  • onDidBuild:组件build()函数执行完成之后回调该接口,不建议在onDidBuild函数中更改状态变量、使用animateTo等功能,这可能会导致不稳定的UI表现。

onDidBuild 执行完ui一定渲染出来吗?这个应该不是吧。

而且打印日志看 父布局的onDidBuild回调要比子布局的快,也挺奇怪的

在HarmonyOS鸿蒙系统中,统计一个View(包括其子View)的整体渲染耗时,可以通过以下步骤实现:

  1. View的创建与初始化:在View的创建和初始化过程中,可以记录一个开始时间点。这通常是在View的构造函数或者onAttachedToWindow方法中完成。

  2. 布局与绘制过程:HarmonyOS提供了View的onLayout和onDraw等方法,这些方法在View的布局和绘制过程中被调用。可以在onLayout方法结束时记录一个中间时间点,以计算布局耗时。在onDraw方法结束时记录一个结束时间点,以计算绘制耗时。

  3. 计算总耗时:通过开始时间点、中间时间点和结束时间点,可以计算出View的整体渲染耗时(包括布局和绘制)。

  4. 累积子View耗时:如果View包含子View,可以递归地对每个子View进行相同的操作,并累积它们的耗时。

  5. 日志记录与显示:最后,将计算出的耗时记录到日志中,或者显示在应用的UI上以供开发者查看。

需要注意的是,这种方法可能会增加一些额外的性能开销,因此在生产环境中使用时需要谨慎。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部