Skip to main content

页面回放

注意

该功能还在进一步开发完善中,功能及使用方式可能会发生变化。

背景

页面回放提供 App 发生崩溃异常前的页面变化情况,帮助了解崩溃发生前用户交互路径,准确了解错误对应用户体验的影响。

实现原理

页面回放的工作原理是,以每秒一张的速度,截取页面视图层次结构的快照以及对应的屏幕截图。并缓存最后一段时间内的数据。在发生崩溃错误时,将缓存的数据一并上报。通过 Bugly 内部的 crash id 将其与对应的崩溃关联后,便可以在崩溃个例中查找对应的页面回放信息。

为保护用户隐私,所有的屏幕截图都会进行模糊处理,以遮盖敏感信息。模糊处理通过对整个截图增加一定程度的“马赛克”处理,将文字、图像等信息进行了模糊化,保留了页面的基本结构信息。

开启方式

页面回放是新增能力,因此需要升级到新版本方可开启,

Android 需要 SDK 升级至 4.4.7.3 及以后版本,同时在配置中开启该replay_report功能: 开启 replay_report 功能配置 其中各个配置项的含义如下:

  • sample_ratio: 通用采样率,用于控制 replay_report 的采样频率。默认值为 0,业务视需求调整采样,建议设置值在 0.01 ~ 0.1 之间;
  • quality: 图像质量,默认值为 1, 可选值:0,1,2,该值越大图像质量越高,过高的质量值会导致资源开销过大;
  • frame_rate: 帧率,默认值为 1, 代表1秒录一次屏,该值越大帧率越高,过高的帧率会导致资源开销过大;

回放数据查看

提醒

页面回放数据目前仅提供原始数据查看,相关查看及交互功能还在开发中。

回放数据在发生崩溃后上报,出现在 crash 个例附件中。

回放数据是 App 二次启动后通过通用附件通道上传,因此在调试验证时,需要重启 App 后等待一段时间后才能看到对应的回放数据。

Replay Report 附件

点击下载附件中的replay.zip文件,解压后,便可以看到按照时间戳命名的页面回放数据。

其中 jpeg 是对应的截屏,json 是对应的页面结构信息。

未来此部分内容会通过 Bugly Web 端进行可视化展示。