【AGC】新版鸿蒙崩溃SDK集成使用方法
【背景】
我们知道AGC的Crash SDK都是需要强制集成华为分析SDK的,在使用时的崩溃数据上报都要依靠分析服务来完成,这就容易受到限制,有时出现无数据的情况就要依次排查崩溃SDK与分析SDK,比较麻烦。而就在不久前,鸿蒙崩溃的SDK做了全面更新,上报信息不再依赖华为分析服务SDK,并且后台数据展示也做了更新。这可以让项目更加简洁,缩小了应用的占用空间,出现数据问题排查也更加方便了。不过更新后的SDK集成使用方法也与旧版本不一样了,接下来将介绍新版鸿蒙崩溃SDK的集成使用方法。
【开发准备】
-
登录AppGallery Connect,点击“我的项目”。在项目列表中找到您的项目,在项目下的应用列表中选择您需要启用崩溃服务的应用。选择“质量 > 崩溃”,进入崩溃服务页面,点击“立即开通”。
-
点击“项目设置”中“应用”栏下的“agconnect-services.json”,将“agconnect-services.json”文件拷贝到项目entry模块的目录下。
-
打开entry模块下的build.gradle文件,添加如下代码集成Crash SDK,目前SDK依赖仅需要一行代码就能实现了。
dependencies {...implementation 'com.huawei.agconnect:agconnect-crash-harmony:1.1.0.300'... }
【实现方法】
旧版本的鸿蒙SDK调用类名已从AGConnectCrash更换为APMCrash了,需要注意更换。
-
您可以调用APMCrash.testJavaException方法,构造一次崩溃。
Button btn_crash = (Button) findComponentById(ResourceTable.Id_Make_Crash);btn_crash.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {APMCrash.getInstance().testJavaException(true);}});
-
调用APMCrash.recordException方法构造一次非严重异常事件。
Button btn_exception = (Button) findComponentById(ResourceTable.Id_Make_Exception);btn_exception.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {try{throw new Exception();}catch (Exception e){APMCrash.getInstance().recordException(e);}}});
-
调用APMCrash.setCustomLogInfo(String text)自定义日志,调用APMCrash.setCustomKeyValue自定义键值对。
Button btn_CustomReport = (Button) findComponentById(ResourceTable.Id_Custom_Report);btn_CustomReport.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {APMCrash.getInstance().setUserId("testuser");APMCrash.getInstance().setCustomLogInfo(HiLog.DEBUG,"set debug log.");APMCrash.getInstance().setCustomLogInfo(HiLog.INFO,"set info log.");APMCrash.getInstance().setCustomLogInfo(HiLog.WARN,"set warning log.");APMCrash.getInstance().setCustomLogInfo(HiLog.ERROR,"set error log.");APMCrash.getInstance().setCustomKeyValue("stringKey", "Hello world");APMCrash.getInstance().setCustomKeyValue("booleanKey", false);APMCrash.getInstance().setCustomKeyValue("doubleKey", 1.1);APMCrash.getInstance().setCustomKeyValue("floatKey", 1.1f);APMCrash.getInstance().setCustomKeyValue("intKey", 0);APMCrash.getInstance().setCustomKeyValue("longKey", 11L);} });
【数据展示】
现在鸿蒙崩溃SDK后台数据展示界面也与现在的Android应用不同了,做出了更细致的更新,下面向大家展示上报的崩溃数据界面。
1、数据概览界面
2、问题详情与堆栈信息界面
3、自定义报告界面
【结论】
以上就是新版本鸿蒙崩溃SDK的使用方法和成果展示。有兴趣的小伙伴也可以关注官方文档进行集成开发,让自己的应用实现崩溃监控功能。
参考文档:文档中心 SDK版本更新说明
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh
相关文章:

【AGC】新版鸿蒙崩溃SDK集成使用方法
【背景】 我们知道AGC的Crash SDK都是需要强制集成华为分析SDK的,在使用时的崩溃数据上报都要依靠分析服务来完成,这就容易受到限制,有时出现无数据的情况就要依次排查崩溃SDK与分析SDK,比较麻烦。而就在不久前,鸿蒙崩…...

vue-7:组件库(移动端vant)(PC端element)
移动端vant 插件安装(按需导入) 重启生效 # 通过 npm 安装 npm i unplugin-vue-components -D# 通过 yarn 安装 yarn add unplugin-vue-components -D 导入基于 vite 的项目: 如果是基于 vite 的项目,在 vite.config.js 文件中…...
JavaScript中splice()、slice()、split()三种方法的区别,及使用详细
简介:splice、slice、split是JavaScript中,比较常用的三个数组方法,表面看起来有点相像,用处却大不相同,今天就来分别介绍下它们的用法。 1、splice()方法 splice方法可以用来删除数组中的元素,或者向数组…...
Linux更新操作系统Openssh版本9.3p1(源码编译安装)
Linux更新操作系统Openssh版本9.3p1(源码编译安装) 部署前准备 安装依赖 yum install -y gcc gcc-c glibc make autoconf openssl openssl-devel pcre-devel pam-develyum install -y pam* zlib* openssh-9.3p1.tar.gzopenssl-3.1.0.tar.gz备份文件 cp /etc/pam.d/sshd /etc/…...

MS COCO数据集介绍
MS COCO数据集介绍 MS COCO全称是Microsoft Common Objects in Context,是由微软开发维护的大型图像数据集,包括不同检测任务: Object Detection([主要处理人、车、大象等]) DensePose(姿态密度检测&…...

Java之线程池
目录 一.上节复习 1.阻塞队列 二.线程池 1.什么是线程池 2.为什么要使用线程池 3.JDK中的线程池 三.工厂模式 1.工厂模式的目的 四.使用线程池 1.submit()方法 2.模拟两个阶段任务的执行 五.自定义一个线程池 六.JDK提供线程池的详解 1.如何自定义一个线程池? 2.创…...
让你的网站变得更智能 - B2 Pro主题问答模块新增OpenAI ChatGPT机器人自动回答功能
作为一个网站管理员,你一定会希望能够给你的用户提供更多、更好的服务。那么,你是否曾经想过为你的B2 Pro主题问答模块新增一个智能机器人自动回答功能呢?相信你一定想要这个功能,因为它能够大大提升你网站的用户体验。 现在,我们为你提供了一个好消息。我们已经为B2 Pro…...

仓库信息管理系统设计与实现
一、数据库设计 1.数据库模型设计概览 2.数据库表设计 ①depository 描述: 该表存储仓库的信息,比如仓库名称,仓库地址和仓库介绍 表结构: 序号 字段名 数据类型 主键 非空 默认值 描述 1 id INT(10) 是 是 2…...

初识Java多线程编程
文章目录 一、线程的状态二、线程的常见属性三、多线程编程Thread类常用构造方法1.继承Thread类2.实现Runnable接口3.匿名内部类实现4.lambda 表达式创建 Runnable 子类对象 四、线程的常见方法 一、线程的状态 //线程的状态是一个枚举类型 Thread.State public class ThreadS…...

最新入河排污口设置论证、水质影响预测与模拟、污水处理工艺分析及典型建设项目入河排污口方案报告书实例分析
随着水资源开发利用量不断增大,全国废污水排放量与日俱增,部分河段已远远超出水域纳污能力。近年来,部分沿岸入河排污口设置不合理,超标排污、未经同意私设排污口等问题逐步显现,已威胁到供水安全、水环境安全和水生态安全&#x…...

awk指令的详细指南
目录 工作原理 命令格式 awk常见的内建变量(可直接用)如下所示 按行输出文本 按字段输出文本 通过管道、双引号调用 Shell 命令 示例 CPU使用率 数组 编辑统计文件的内容出现的次数 使用awk 统计secure 访问日志中每个客户端IP的出现次数? …...

解密Netty中的Reactor模式
文章目录 单线程Reactor模式多线程Reactor模式Reactor模式中IO事件的处理流程Netty中的通道ChannelNetty中的反应器ReactorNetty中的处理器HandlerNetty中的通道Channel和处理器Handler的协作组件Pipeline Reactor(反应器)模式是高性能网络编程在设计和架构方面的基础模式.Doug…...
这是一个黑科技:C++爬虫~(文末报名C/C++领域新星计划)
目录 写在前面 完整代码 这里必看!! 写在最后 写在前面 现在所有人都知道万能的Python可以做机器学习,可以做人工智能,可以爬取各种小网站,但是你不知道,基于C++的正则表达式早就能够爬取各种网络数据啦!!你没猜错,阿玥将在这篇文章中简介怎么用C...

2023 年第八届数维杯数学建模挑战赛 赛题浅析
为了更好地让大家本次数维杯比赛选题,我将对本次比赛的题目进行简要浅析。本次比赛的选题中,研究生、本科组请从A、B题中任选一个 完成答卷,专科组请从B、C题中任选一个完成答卷。这也暗示了本次比赛的难度为A>B>C 选题人数初步估计也…...

Spring Boot单元测试
什么是单元测试? 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证的过程就叫单元测试。 单元测试是开发人员编写的一小段代码,用于检验被测代码的一个很小的、很明确的(代码) 功能是否正确。执行单元测试就是为了证明某…...

实景三维浪潮翻涌,新技术“席卷”石家庄!
5月11日,“全自主、全流程、全覆盖”2023实景三维新技术研讨会石家庄站暨航测与遥感学术交流会在石家庄凯旋金悦大酒店圆满举行。 本次会议由中国测绘学会、中国地理信息产业协会指导,河北省测绘学会、河北省地理信息产业协会主办,武汉大势智…...
【Python】使用小脚本
本文整理了我在学习和工作中用到的实用python脚本,希望也能帮助到需要的小伙伴~ 文章目录 视频格式转换顺序遍历文件夹中的文件 视频格式转换 安装视频处理库moviepy pip install moviepy安装FFmpeg(FFmpeg是一个开源的多媒体框架,moviepy…...
技术日志2023-5-18
1、Java远程调试 可参考:https://kefeng.wang/2018/03/06/idea-remote-debug/ 2、用户中心这样的基础项目有什么用,感觉非常鸡肋。 今天开发讨论中涉及到了用户中心,感觉在项目中使用用户中心只是给业务系统发一个token,业务系…...
JUC之锁
公平锁、非公平锁 公平锁指的是多线程按照申请锁的顺序来获取锁; 非公平锁指的是多线程不按照申请锁的顺序来获取锁。可能会出现优先级反转(后者居上) 公平锁为了保证线程申请顺序,势必要付出一定的性能代价,因此其吞…...
C++中的 cout 和 printf 用法
文章目录 前言cout & printfexampleprintf输出string字符串总结 前言 C是一种面向对象的编程语言,它继承了C语言的特点,同时也增加了许多新的特性。在C中的cout 和 printf是两种常用的输出函数,它们都可以将数据显示在屏幕上,…...
ubuntu显示器未知
在Ubuntu系统中,当外接显示器被识别为“未知设备”时,可通过以下日志文件进行问题诊断,结合Xorg日志和内核日志综合分析: 🔍 一、查看Xorg显示服务日志(核心) Xorg日志记录了图形界面的详细事…...
性能剖析:在 ABP 框架中集成 MiniProfiler 实现性能可视化诊断
🚀 性能剖析:在 ABP 框架中集成 MiniProfiler 实现性能可视化诊断 📚 目录 🚀 性能剖析:在 ABP 框架中集成 MiniProfiler 实现性能可视化诊断一、为什么选择 MiniProfiler? 🧐二、集成 MiniProf…...

如何从浏览器中导出网站证书
以导出 GitHub 证书为例,点击 小锁 点击 导出 注意:这里需要根据你想要证书格式手动加上后缀名,我的是加 .crt 双击文件打开...

sqlsugar WhereIF条件的大于等于和等于查出来的坑
一、如下图所示,当我用 .WhereIF(input.Plancontroltype > 0, u > u.Plancontroltype (DnjqPlancontroltype)input.Plancontroltype) 这里面用等于的时候,返回结果一条数据都没有。 上图中生成的SQL如下: SELECT id AS Id ,code AS …...
【Go语言基础【15】】数组:固定长度的连续存储结构
文章目录 零、概述一、数组基础1、数组的本质:固定长度的连续存储结构2、声明与初始化3、访问与修改元素 二、数组拷贝与传参1、 值拷贝特性2、指针数组的拷贝3、函数传参(值传递) 三、数组遍历四、多维数组五、数组与切片的区别 零、概述 数…...

巴西医疗巨头尤迈Kafka数据泄露事件的全过程分析与AI安防策略分析
一、事件背景与主体信息 涉事主体:Unimed,全球最大医疗合作社,巴西医疗行业龙头企业,拥有约1500万客户。技术背景:泄露源于其未保护的Kafka实例(开源实时数据传输平台),用于客户与聊天机器人“Sara”及医生的实时通信。二、时间线梳理 时间节点关键事件描述2025年3月24…...

沙市区举办资本市场赋能培训会 点赋科技分享智能消费新实践
荆州市沙市区,2025年6月5日—— 在沙市区政府主办的“发挥区域性股权市场功能,助力企业拥抱资本市场”专题培训会上,区委副书记、区长郭熙胜强调要充分发挥资本市场服务实体经济功能,推动本土创新企业高质量发展。区内重点企业点赋…...

缓解骨质疏松 —— 补钙和补维 D
骨质老化/疏松原理(机制)骨密度下降与骨小梁结构退化局部受压导致的微损伤或压力集中 诊断要点治疗策略吃什么食物能补钙呢?钙片吃什么食物能补维生素 D 呢? 骨质老化/疏松 骨质老化(常指骨密度下降或骨质疏松&#x…...
ocrapi服务docker镜像使用
umiocr只能用于windows,http服务只能找旧版,没办法,只能找docker替代一下了。 umiocr 使用paddleOCR和rapidOCR引擎。以下时这两个docker的运行方法 paddleOCR使用 duolabmeng666的ppocr镜像 镜像大小约2.6G docker run -itd --name ppoc…...
阿里140 补环境日志
所有属性值是 __cheng________ 都是我做的防止套代理 非140环境检测代码 这个日志绝大多数 是做和浏览器tostring结果 处理一致 方法: toString 函数: ...... 结果: ..... 当前代码补了事件和dom 实际手补 比这少些 下方为环境日志: VM526 vm.js:…...