背景

在2023年华为新品发布会上,鸿蒙系统的纯血版本被正式宣布,随之而来的是大量的应用开始进行鸿蒙的适配工作。到了2024年的开发者大会,鸿蒙系统的Beta版本也对开发者开放。目前,已有超过1500个位于手机应用Top5000的应用完成了鸿蒙的适配。在这样的大背景下,作为腾讯云终端性能监控平台,致力于创建一款好用且可靠的平台,为鸿蒙移动端的适配保驾护航。

监控能力介绍

目前腾讯云终端性能监控SDK主要针对稳定性方面进行监控,鸿蒙的崩溃类型主要分为三种

  • JsCrash(Js层未被处理的异常从而导致应用退出)

  • CppCrash(C/C++运行时的崩溃)

  • AppFreeze(用户在使用应用时会出现点击没反应、应用无响应等情况,其超过一定时间限制后即被定义为应用无响应)

    当发生上述的崩溃后,鸿蒙的dfx子系统会在下一次启动时通过hiAppEvent事件回调给到应用层进行处理。终端性能监控SDK会将相应的问题上报至平台后台进行堆栈翻译、问题聚合等处理,在控制台进行展示。

其中,JSCrash会上报问题堆栈、日志信息、现场数据(页面信息、前后台状态等)

在这里插入图片描述

CppCrash会上报问题堆栈、全量线程堆栈、日志信息、现场数据(页面信息、前后台状态等)

在这里插入图片描述

AppFreeze会上报问题堆栈、全量线程堆栈、日志信息、现场数据(页面信息、前后台状态)、eventHandler信息(查看是否多任务或者单任务卡死)、binder信息(查看是否是IPC通信导致的卡死)

在这里插入图片描述

具体分析思路

类型 解释 原理 检测时长
THREAD_BLOCK_6S 应用主线程卡死超时 应用的watchdog线程定期向主线程插入判活检测,并在自己线程插入超时上报机制。当判活检测超过3s没有被执行,会上报THREAD_BLOCK_3S警告事件;超过6s依然没有被执行,会上报THREAD_BLOCK_6S主线程卡死事件。两个事件匹配生成THREAD_BLOCK的应用无响应日志 前台应用:6s 后台应用 :3s * 5 + 6s = 21s
APP_INPUT_BLOCK 用户输入响应超时 用户点击应用的按钮时,输入系统会向应用侧发送点击事件,但超时未收到应用侧的响应反馈回执,则上报该故障。 5s
LIFECYCLE_TIMEOUT Ability生命周期切换超时 通过获取不同生命周期切换的过程,在生命周期切换开始的位置向watchdog线程插入超时任务,在生命周期切换完成之后移除超时任务,固定时间内未成功移除将上报故障。 Load:10s Active:5s Inactive:0.5s Terminate:10s Connect:3s Disconnect:0.5s Restart:5s Foreground:5s Background:3s

其中每一种类型的崩溃都会对应一份故障日志external_log文件,该文件类比NativeCrash的墓碑文件。终端性能监控SDK会将其上报到后台,可以在控制台通过附件下载的方式获取

如何接入

1.找到SDK:腾讯云终端性能监控

找到:使用指南,根据使用指南进行接入
在这里插入图片描述

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐