当前位置: 首页 > news >正文

鸿蒙开发系统基础能力:【@ohos.hichecker (检测模式)】

检测模式

HiChecker可以作为应用开发阶段使用的检测工具,用于检测代码运行过程中部分易忽略的问题,如应用线程出现耗时调用、应用进程中Ability资源泄露等问题。开发者可以通过日志记录或进程crash等形式查看具体问题并进行修改,提升应用的使用体验。

说明:  本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import hichecker from '@ohos.hichecker';

常量

提供了所有规则类型的常量。

系统能力:  SystemCapability.HiviewDFX.HiChecker

名称参数类型说明
RULE_CAUTION_PRINT_LOGbigint告警规则,当有告警时记录日志。
RULE_CAUTION_TRIGGER_CRASHbigint告警规则,当有告警时让应用推出。
RULE_THREAD_CHECK_SLOW_PROCESSbigint检测规则,检测是否有耗时函数被调用。
RULE_CHECK_ABILITY_CONNECTION_LEAKbigint检测规则,检测是否发生ability泄露。

hichecker.addRule

addRule(rule: bigint): void

添加一条或多条规则到系统,系统根据添加的规则进行检测或反馈。

系统能力:  SystemCapability.HiviewDFX.HiChecker

参数:

参数名类型必填说明
rulebigint需要添加的规则。

示例:

// 添加一条规则
hichecker.addRule(hichecker.RULE_CAUTION_PRINT_LOG);// 添加多条规则
hichecker.addRule(hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);

hichecker.removeRule

removeRule(rule: bigint): void

删除一条或多条规则,删除的规则后续将不再生效。

系统能力:  SystemCapability.HiviewDFX.HiChecker

参数:

参数名类型必填说明
rulebigint需要删除的规则。

示例:

// 删除一条规则
hichecker.removeRule(hichecker.RULE_CAUTION_PRINT_LOG);// 删除多条规则
hichecker.removeRule(hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);

hichecker.getRule

getRule(): bigint

获取当前线程规则、进程规则、告警规则的合集。

系统能力:  SystemCapability.HiviewDFX.HiChecker

返回值:

类型说明
bigint当前系统中添加的规则。

示例:

// 添加一条规则
hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);// 获取已添加的规则
hichecker.getRule();   // return 1n;

hichecker.contains

contains(rule: bigint): boolean

当前已添加的规则集中是否包含了某一个特定的规则,如果传入的规则级别为线程级别,则仅在当前线程中进行查询。

系统能力:  SystemCapability.HiviewDFX.HiChecker

参数:

参数名类型必填说明
rulebigint需要查询的规则。

返回值:

类型说明
boolean查询结果,true 表示规则已添加,false 表示规则未添加。

示例:

// 添加一条规则
hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);// 查询是否包含
hichecker.contains(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
hichecker.contains(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
http://www.lryc.cn/news/382649.html

相关文章:

  • WordPress CDN是什么?CDN有什么作用?
  • 【containerd】Containerd高阶命令行工具nerdctl
  • Spring+SpringMVC+MyBatis整合
  • springboot+vue+mybatis穷游管理系统+PPT+论文+讲解+售后
  • ClickHouse备份方案
  • windows启用和禁用内存压缩
  • MATLAB-振动问题:单自由度无阻尼振动系统受迫振动
  • 示例:WPF中应用DependencyPropertyDescriptor监视依赖属性值的改变
  • 链家房屋数据爬取与预处理-大数据采集与预处理课程设计
  • 一种502 bad gateway nginx/1.18.0的解决办法
  • 二叉树第一期:树与二叉树的概念
  • vue跨域问题,请注意你的项目是vue2还是vue3
  • 大厂晋升学习方法一:海绵学习法
  • 【ARMv8/v9 GIC 系列 4.2 -- GIC CPU Interface 详细介绍】
  • 小抄 20240619
  • 【06】数据模型和工作量证明-工作量证明
  • VBA递归过程快速组合数据
  • 基于豆瓣电影TOP250的可视化设计
  • YOLOv8中的C2f模块
  • ESP32 双线汽车接口 (TWAI)
  • docker-compose离线安装harbor
  • 服务器“雪崩”的常见原因和解决方法 (C++)
  • 详解ES6中的类、对象和类的继承
  • 游戏遇到攻击有什么办法能解决?
  • 【LLM】GLM系列模型要点
  • 安卓开发,获取本机手机号
  • linux学习week1
  • 【React篇】父组件渲染时避免重复渲染子组件的3种处理方法
  • 深度神经网络——决策树的实现与剪枝
  • IOPaint前后端框架