目录

如何接入HarmonyOS 开发者中心应用性能监测服务(含崩溃服务)

问题现象

性能管理服务是否实现崩溃日志堆栈信息上报收集功能?怎么在HarmonyOS 开发者中心平台上开通应用性能管理服务,方便应用崩溃时日志的查看和问题定位。

背景知识

崩溃服务已经合并至性能管理服务,该服务提供了与友盟/bugly等平台类似的崩溃日志上报收集功能。

应用性能管理服务(Application Performance Management Service,简称APMS)是HarmonyOS 开发者中心向开发者提供的一个现网质量监测解决方案。

应用性能管理服务能帮助您监测现网应用的崩溃(CPP CRASH、JS ERROR)、应用无响应(AppFreeze)等稳定性指标,以及应用的启动、页面加载、耗电等性能指标。它提供每个问题发生时的环境信息、堆栈信息等分析数据,并支持基于堆栈关键行进行准确的同类异常汇聚,让您轻松准确快速发现、识别、定位和解决问题。它还支持问题标记、指标告警等辅助能力,帮助您更高效的监测、处理质量问题。

解决方案

2025年4月9日前,创建且从未使用过APMS服务的存量应用,可通过更新【应用信息】的方式完成服务开通,刷新应用具体方法:登录HarmonyOS 开发者中心进入“APP与元服务”,选择需要开启APMS服务的应用,在“应用信息”-“可本地化基础信息”中修改应用名称,点击右上角“保存”,再修改回原应用名。

2025年4月9日后,创建应用后,HarmonyOS 开发者中心将为应用自动开通APMS服务。创建应用可参考HarmonyOS 开发者中心控制台配置。

接入APMS后,系统会自动收集到应用的性能数据,开发者可以根据堆栈信息进行问题的原因分析和修复,详情可以参考以下文档:

APMS指导文档可以参考:APMS业务介绍。

APMS崩溃相关可以参考:异常管理。

常见FAQ

Q:如何能根据用户进行查找呢,比如怎么自定义userId或者tag,包括怎么区分测试版本和正式版本。

A:当前不能自定义userId或者tag的,测试版本和正式版本可以通过应用版本号区分出来。

Q:HarmonyOS 开发者中心崩溃服务无法采集数据。

A:检查应用在端侧安装是否连接网络,需要连接网络产生崩溃才会上传。

Q:崩溃服务和性能管理服务是否收费。

A:当前免费使用,主要功能是异常问题的监测,统计,日志和堆栈获取;性能问题的监测,统计。

Q:在华为应用上架后台,新开通了崩溃分析服务,提示需要更新文件agconnect-services.json,这个文件如果发现变化,会对项目哪些配置产生影响?

A:在HarmonyOS 开发者中心开启质量崩溃服务之后,无需在项目里面集成任何代码。

Q:在APMS服务中符号表如何获取,是否可以通过接口上传符号表?

A:

  1. 获取符号表:release模式编译后,符号表位置:{ProjectPath}/{ModuleName}/build/{product}/cache/default/default@CompileArkTS/esmodule/release/sourceMaps.map,具体参考:ArkTS调试产物sourcemap。
  2. APMS服务中符号表上传暂未开通接口方式进行上传方式。

Q:崩溃服务开通后,崩溃数据未及时获取到。

A:崩溃服务首次开通,需要2-3小时生效,这期间产生的崩溃数据不上传。

Q:崩溃数据上传时效是怎么样的?

A:崩溃数据是分钟级的数据。

Q:HarmonyOS 开发者中心平台上可以查询到多长时间内的崩溃数据?

A:目前只能查到最近一个月的崩溃数据。

Q:APMS报错信息是混淆的,能否还原至原始代码?

A:点击“还原堆栈”页签,可将混淆后的业务堆栈信息还原成用户可读信息。请确保已上传对应符号表文件。

Q:在APMS中为什么最新型号手机信息没有,导致异常日志搜索不到。

A:APMS机型代号信息是由手机上报异常时一并上报的,开发者在APMS【设备型号】下拉菜单上没搜到所谓的最新机型,说明没有这个机型的手机出现异常并上报问题。(APMS只展示上报上来问题的机型,非全量展示所有机型)

Q:本地调试的Debug版本崩溃日志也会上传APMS吗?是否能够设置不上传?希望只统计在架版本的数据。

A:应用接入异常管理后,可通过设置调试版本和发布版本的不同版本号进行区分。

Q:为什么收集到的崩溃信息的行号与源代码不一致?

A:APMS支持堆栈解析,但是注意sourceMaps上传的是map后缀的文件,nameCache上传的是json文件,上传后缀为json的sourceMaps暂不支持解析崩溃堆栈。

Q:APMS后台的JS_ERROR、CPP_CRASH、OOM等数据的来源是什么?

A:数据来源主要包括客户端、服务端和网络等多个层面的监控数据。

  1. 客户端数据主要来源于用户设备上的应用程序。
  2. 服务端数据主要来源于后端服务器、数据库、缓存系统等基础设施(比如日志数据依赖于服务器生成的日志文件)。
  3. 网络数据主要来源于网络传输过程中的各种指标,比如网络延迟等。

Q:开发本地打的包,走华为公测流程的包,会统计到APMS吗?

A:APMS采的是系统事件,只要是这个应用上架过,运行的都会统计到APMS。