页面回放
注意
该功能还在进一步开发完善中,功能及使用方式可能会发生变化。
背景
页面回放提供 App 发生崩溃异常前的页面变化情况,帮助了解崩溃发生前用户交互路径,准确了解错误对应用户体验的影响。
实现原理
页面回放的工作原理是,以每秒一张的速度,截取页面视图层次结构的快照以及对应的屏幕截图。并缓存最后一段时间内的数据。在发生崩溃错误时,将缓存的数据一并上报。通过 Bugly 内部的 crash id 将其与对应的崩溃关联后,便可以在崩溃个例中查找对应的页面回放信息。
为保护用户隐私,所有的屏幕截图都会进行模糊处理,以遮盖敏感信息。模糊处理通过对整个截图增加一定程度的“马赛克”处理,将文字、图像等信息进行了模糊化,保留了页面的基本结构信息。
开启方式
页面回放是新增能力,因此需要升级到新版本方可开启,
Android 需要 SDK 升级至 4.4.7.3 及以后版本,同时在配置中开启该replay_report功能:
其中各个配置项的含义如下:
sample_ratio: 通用采样率,用于控制 replay_report 的采样频率。默认值为 0,业务视需求调整采样,建议设置值在 0.01 ~ 0.1 之间;quality: 图像质量,默认值为 1, 可选值:0,1,2,该值越大图像质量越高,过高的质量值会导致资源开销过大;frame_rate: 帧率,默认值为 1, 代表1秒录一次屏,该值越大帧率越高,过高的帧率会导致资源开销过大;
回放数据查看
提醒
页面回放数据目前仅提供原始数据查看,相关查看及交互功能还在开发中。
回放数据在发生崩溃后上报,出现在 crash 个例附件中。
回放数据是 App 二次启动后通过通用附件通道上传,因此在调试验证时,需要重启 App 后等待一段时间后才能看到对应的回放数据。

点击下载附件中的replay.zip文件,解压后,便可以看到按照时间戳命名的页面回放数据。
其中 jpeg 是对应的截屏,json 是对应的页面结构信息。
未来此部分内容会通过 Bugly Web 端进行可视化展示。