检测模式

2024-01-23 17:17 更新

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

说明

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

导入模块

  1. import hichecker from '@ohos.hichecker';

常量

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

系统能力: SystemCapability.HiviewDFX.HiChecker

名称

参数类型

说明

RULE_CAUTION_PRINT_LOG

bigint

告警规则,当有告警时记录日志。

RULE_CAUTION_TRIGGER_CRASH

bigint

告警规则,当有告警时让应用推出。

RULE_THREAD_CHECK_SLOW_PROCESS

bigint

检测规则,检测是否有耗时函数被调用。

RULE_CHECK_ABILITY_CONNECTION_LEAK

bigint

检测规则,检测是否发生ability泄露。

hichecker.addCheckRule9+

addCheckRule(rule: bigint): void

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

系统能力: SystemCapability.HiviewDFX.HiChecker

参数:

参数名

类型

必填

说明

rule

bigint

需要添加的规则。

示例:

  1. try {
  2. // 添加一条规则
  3. hichecker.addCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);
  4. // 添加多条规则
  5. // hichecker.addCheckRule(
  6. // hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
  7. } catch (err) {
  8. console.error(`code: ${err.code}, message: ${err.message}`);
  9. }

hichecker.removeCheckRule9+

removeCheckRule(rule: bigint): void

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

系统能力: SystemCapability.HiviewDFX.HiChecker

参数:

参数名

类型

必填

说明

rule

bigint

需要删除的规则。

示例:

  1. try {
  2. // 删除一条规则
  3. hichecker.removeCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);
  4. // 删除多条规则
  5. // hichecker.removeCheckRule(
  6. // hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
  7. } catch (err) {
  8. console.error(`code: ${err.code}, message: ${err.message}`);
  9. }

hichecker.containsCheckRule9+

containsCheckRule(rule: bigint): boolean

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

系统能力: SystemCapability.HiviewDFX.HiChecker

参数:

参数名

类型

必填

说明

rule

bigint

需要查询的规则。

返回值:

类型

说明

boolean

查询结果,true 表示规则已添加,false 表示规则未添加。

示例:

  1. try {
  2. // 添加一条规则
  3. hichecker.addCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
  4. // 查询是否包含
  5. hichecker.containsCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
  6. hichecker.containsCheckRule(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
  7. } catch (err) {
  8. console.error(`code: ${err.code}, message: ${err.message}`);
  9. }

hichecker.addRule(deprecated)

addRule(rule: bigint): void

说明

从 API version 9 开始废弃,建议使用hichecker.addCheckRule替代。

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

系统能力: SystemCapability.HiviewDFX.HiChecker

参数:

参数名

类型

必填

说明

rule

bigint

需要添加的规则。

示例:

  1. // 添加一条规则
  2. hichecker.addRule(hichecker.RULE_CAUTION_PRINT_LOG);
  3. // 添加多条规则
  4. hichecker.addRule(
  5. hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);

hichecker.removeRule(deprecated)

removeRule(rule: bigint): void

说明

从 API version 9 开始废弃,建议使用hichecker.removeCheckRule替代。

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

系统能力: SystemCapability.HiviewDFX.HiChecker

参数:

参数名

类型

必填

说明

rule

bigint

需要删除的规则。

示例:

  1. // 删除一条规则
  2. hichecker.removeRule(hichecker.RULE_CAUTION_PRINT_LOG);
  3. // 删除多条规则
  4. hichecker.removeRule(
  5. hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);

hichecker.getRule

getRule(): bigint

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

系统能力: SystemCapability.HiviewDFX.HiChecker

返回值:

类型

说明

bigint

当前系统中添加的规则。

示例:

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

hichecker.contains(deprecated)

contains(rule: bigint): boolean

说明

从 API version 9 开始废弃,建议使用hichecker.containsCheckRule替代。

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

系统能力: SystemCapability.HiviewDFX.HiChecker

参数:

参数名

类型

必填

说明

rule

bigint

需要查询的规则。

返回值:

类型

说明

boolean

查询结果,true 表示规则已添加,false 表示规则未添加。

示例:

  1. // 添加一条规则
  2. hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
  3. // 查询是否包含
  4. hichecker.contains(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
  5. hichecker.contains(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号