目录

滑动地图卡顿

问题现象

左右滑动地图查看地图信息时存在卡顿的现象。

背景知识

问题定位

  1. 运行hdc shell param set persist.ace.debug.enabled 1命令、重启应用,使用DevEco Profiler Frame分析工具抓取滑动地图过程的Trace信息。User Events(用户交互)泳道中的Touch为触摸事件类型,其等同于滑动地图的过程,然后查看Frame泳道中的Display子泳道发现屏幕刷新率为120Hz,但应用侧绘制帧率只有17.7FPS,绘制帧率较低。
  2. 查看应用主线程两次接收Vsync信号处理的时间间隔,从下图中可看到为67.4ms。

  3. 分析该部分Trace信息可看到耗时主要集中在应用Canvas组件绘制(33ms)和状态变量更新(21ms)。
  4. 在该过程应用长时间处于Running状态,可知应用在执行耗时操作,导致滑动地图卡顿。

分析结论

滑动地图过程中,组件渲染绘制和状态变量更新时执行耗时操作,导致卡顿。

修改建议

优化组件渲染绘制的耗时逻辑;参考状态管理最佳实践,在滑动过程中避免不必要的状态变量更新。