鸿蒙5.0&next开发【@ohos.hichecker (检测模式)】 硬件

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

说明

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

导入模块

import { hichecker } from '@kit.PerformanceAnalysisKit';

常量

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

系统能力:  SystemCapability.HiviewDFX.HiChecker

名称类型说明
RULE_CAUTION_PRINT_LOGbigint1ULL << 63告警规则,当有告警时记录日志。
RULE_CAUTION_TRIGGER_CRASHbigint1ULL << 62告警规则,当有告警时让应用退出。
RULE_THREAD_CHECK_SLOW_PROCESSbigint1ULL检测规则,检测是否有耗时函数被调用。
RULE_CHECK_ABILITY_CONNECTION_LEAKbigint1ULL << 33检测规则,检测是否发生ability泄露。
RULE_CHECK_ARKUI_PERFORMANCE11+bigint1ULL << 34检测规则,检测arkui性能。

hichecker.addCheckRule9+

addCheckRule(rule: bigint): void

添加一条或多条规则到系统,系统根据添加的规则进行检测或反馈,当有相应规则触发时可在hilog中grep HiChecker查看运行信息。

系统能力:  SystemCapability.HiviewDFX.HiChecker

参数:

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

错误码:

错误码ID错误信息
401the parameter check failed, only one bigint type parameter is needed

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
    // 添加一条规则
    hichecker.addCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);
    // 添加多条规则
    // hichecker.addCheckRule(
    //     hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
} catch (err) {
    console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`);
}

hichecker.removeCheckRule9+

removeCheckRule(rule: bigint): void

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

系统能力:  SystemCapability.HiviewDFX.HiChecker

参数:

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

错误码:

错误码ID错误信息
401the parameter check failed, only one bigint type parameter is needed

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
    // 删除一条规则
    hichecker.removeCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);
    // 删除多条规则
    // hichecker.removeCheckRule(
    //     hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
} catch (err) {
    console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`);
}

hichecker.containsCheckRule9+

containsCheckRule(rule: bigint): boolean

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

系统能力:  SystemCapability.HiviewDFX.HiChecker

参数:

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

返回值:

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

错误码:

错误码ID错误信息
401the parameter check failed, only one bigint type parameter is needed

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
    // 添加一条规则
    hichecker.addCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);

    // 查询是否包含
    hichecker.containsCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
    hichecker.containsCheckRule(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
} catch (err) {
    console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`);
}

hichecker.addRule(deprecated)

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(deprecated)

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(deprecated)

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值