数据上报验证

最近更新时间:2025-08-20 17:51:32

我的收藏

崩溃监控

初始化完成后,可以模拟崩溃进行上报,如执行以下调用。
Bugly.testCrash(Bugly.JS_CRASH); // 模拟Js异常

Bugly.testCrash(Bugly.CPP_CRASH); // 模拟native异常
说明:
异常问题发生后,需要二次启动 Hap 应用,即可完成上报。
Crash 异常会上报 FaultLog 信息,可在 附件 tab 的 crashInfos.txt 文件中查看。
异常上报后,可在 崩溃 > 问题列表 中查看上报问题,单击即可进入问题详情,查看上报内容。

Freeze 监控

与崩溃类似,可以通过终端性能监控 Pro 提供的测试接口来模拟 Freeze,调用后适当滑动屏幕,系统将判定为当前进程 Freeze。
Bugly.testCrash(Bugly.APP_FREEZE); // 模拟Freeze异常
或是在 UI 线程中执行耗时逻辑,触发 ANR。
let index = 0
while (true) {
index++
index = index % 2
}
Freeze 问题触发上报后,在 Freeze > 问题列表 中查看,单击即可进入问题详情,查看上报内容。
说明:
Freeze 异常上报的是 Native、arkTs 混合堆栈。
Freeze 异常会上报 FaultLog 信息及主线程消息信息,可在 附件 tab 的 crashInfos.txt 文件中查看。
event_handler 表示主线程未处理消息。
event_handler_size_3s 表示 THREAD_BLOCK 事件3s时任务栈中任务数。
event_handler_size_6s 表示 THREAD_BLOCK 事件6s时任务栈中任务数。
peer_binder 表示 binder 调用信息。

卡顿监控

卡顿指标(FPS、挂起率)

注意:
确保卡顿指标模块开启,需在 buglybuilder 初始化参数 enablePerfModules 中添加卡顿指标模块(looper_metric),同时在配置中设置卡顿指标的 sample_ratio 设备采样率,二者缺一不可。
建议测试时,配置设备采样率设为1,设置方式请参见 SDK 配置

指标说明

FPS: 帧率,在应用运行时,GPU 和 CPU 合作可产生的图像数量,反映了 UI 图像刷新的频率,计量单位帧/秒(FramePerSecond,FPS),通常是评估硬件性能与应用流畅度的指标。
鸿蒙 FPS 的计算借鉴了 Android、iOS 实现方式,采用归一化的方式进行统计,以60HZ为基准,突出反映应用在影响用户体验(低于60HZ)运行时的状态,即应用越流畅,归一化 FPS 越接近60HZ,反之越低。
挂起率: 如果应用在主线程中的单条消息执行时间过长,则可能导致 UI 卡顿,此时认为应用不能很好地响应用户的交互,累计执行的时间到挂起时间中。一个设备的挂起率,指这个设备在一天中,总的挂起时间除以其前台总时长,单位是秒/小时。

验证上报

初始化卡顿指标能力并命中采样后,在 debug 模式下,可以看到如下日志,以判断卡顿指标已被开启。
03-27 20:05:31.683 14562-14562 A00000/com.ten...looper_metric com.tencent.bugly I Jank metric module start!
在有多个页面切换,并切换前后台时,可以看到卡顿指标上报日志。
04-02 15:12:34.938 61473-61473 A00000/com.tencent.bugly/Bugly com.tencent.bugly I [Upload] upload Success, upload event: looper_metric, record id: a84630f6-ffb4-4d9b-8033-8c288507d58f.
卡顿指标上报后,可在 指标分析 页面中查看对应数据统计,并支持 App 版本、页面场景等维度下钻分析。

说明:
卡顿指标以页面场景为统计维度,在应用有页面切换时记录指标数据,退至后台时上报数据。
应尽早初始化 SDK,才能及时开启卡顿指标的统计。如果 SDK 初始化时间较晚,将在用户下一次切前后台操作后开启采集。

卡顿个例

注意:
确保卡顿个例模块开启,需在 buglybuilder 初始化参数 enablePerfModules 中添加卡顿指标模块(looper_stack),同时在配置中设置卡顿指标的 sample_ratio 设备采样率,二者缺一不可。
建议测试时,配置设备采样率设为1,设置方式请参见 SDK 配置

个例说明

卡顿堆栈监控能力基于系统 API 5.0.0(12) HiAppEvent 主线程超时事件开发,兼容 API 12及以上版本,默认超时时间150ms,抓栈次数固定10次,在进程生命周期中,仅会触发一次。详情请参见 鸿蒙主线程超时事件

验证上报

初始化卡顿个例监控并命中采样后,在 debug 模式下,可以看到如下日志,以判断卡顿个例监控已被开启。
03-27 20:05:31.683 14562-14562 A00000/com.ten...-looper_stack com.tencent.bugly I Jank monitor module start!
可通过在点击事件中连续触发以下代码,来构造触发卡顿事件。
let t = Date.now();
while (Date.now() - t <= 350) {}
成功触发后,可看到如下上报日志,表明卡顿个例已成功上报。
04-02 16:06:24.405 61473-61473 A00000/com.ten...-looper_stack com.tencent.bugly I [Jank] jank event received!!! domain: OS
04-02 16:06:24.406 61473-61473 A00000/com.ten...-looper_stack com.tencent.bugly I [Jank] event group name: MAIN_THREAD_JANK
04-02 16:06:24.406 61473-61473 A00000/com.ten...-looper_stack com.tencent.bugly I [Jank] jank begin time: 1743581180178, end time: 1743581180530, log paths: ["/data/storage/el2/log/watchdog/MAIN_THREAD_JANK_20250402160622_61473.txt"]
04-02 16:06:26.170 61473-61473 A00000/com.tencent.bugly/Bugly com.tencent.bugly I bugly do upload, type: 3, event: looper_stack
04-02 16:06:26.453 61473-61473 A00000/com.tencent.bugly/Bugly com.tencent.bugly I [Upload] upload Success, upload event: looper_stack, record id: cd6623ba-e5e5-474d-b70b-bf087120aa44.
卡顿个例上报后,可在卡顿问题详情 页面中查看抓取全部堆栈聚合而成的火焰图堆栈树数据,堆栈支持上传符号表翻译。