1# 检测模式 2 3HiChecker可以作为应用开发阶段使用的检测工具,用于检测代码运行过程中部分易忽略的问题,如应用线程出现耗时调用、应用进程中Ability资源泄露等问题。开发者可以通过日志记录或进程crash等形式查看具体问题并进行修改,提升应用的使用体验。 4 5> **说明:** 6> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 7 8 9## 导入模块 10 11```js 12import hichecker from '@ohos.hichecker'; 13``` 14 15 16## 常量 17 18提供了所有规则类型的常量。 19 20**系统能力:** SystemCapability.HiviewDFX.HiChecker 21 22| 名称 | 参数类型 | 说明 | 23| ---------------------------------- | -------- | ------------------------------------------------------ | 24| RULE_CAUTION_PRINT_LOG | bigint | 告警规则,当有告警时记录日志。 | 25| RULE_CAUTION_TRIGGER_CRASH | bigint | 告警规则,当有告警时让应用推出。 | 26| RULE_THREAD_CHECK_SLOW_PROCESS | bigint | 检测规则,检测是否有耗时函数被调用。 | 27| RULE_CHECK_ABILITY_CONNECTION_LEAK | bigint | 检测规则,检测是否发生ability泄露。 | 28 29 30## hichecker.addRule 31 32addRule(rule: bigint): void 33 34添加一条或多条规则到系统,系统根据添加的规则进行检测或反馈。 35 36**系统能力:** SystemCapability.HiviewDFX.HiChecker 37 38**参数:** 39 40| 参数名 | 类型 | 必填 | 说明 | 41| ------ | ------ | ---- | ---------------- | 42| rule | bigint | 是 | 需要添加的规则。 | 43 44**示例:** 45 46```js 47// 添加一条规则 48hichecker.addRule(hichecker.RULE_CAUTION_PRINT_LOG); 49 50// 添加多条规则 51hichecker.addRule( 52 hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH); 53``` 54 55## hichecker.removeRule 56 57removeRule(rule: bigint): void 58 59删除一条或多条规则,删除的规则后续将不再生效。 60 61**系统能力:** SystemCapability.HiviewDFX.HiChecker 62 63**参数:** 64 65| 参数名 | 类型 | 必填 | 说明 | 66| ------ | ------ | ---- | ---------------- | 67| rule | bigint | 是 | 需要删除的规则。 | 68 69**示例:** 70 71```js 72// 删除一条规则 73hichecker.removeRule(hichecker.RULE_CAUTION_PRINT_LOG); 74 75// 删除多条规则 76hichecker.removeRule( 77 hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH); 78``` 79 80## hichecker.getRule 81 82getRule(): bigint 83 84获取当前线程规则、进程规则、告警规则的合集。 85 86**系统能力:** SystemCapability.HiviewDFX.HiChecker 87 88**返回值:** 89 90| 类型 | 说明 | 91| ------ | ---------------------- | 92| bigint | 当前系统中添加的规则。 | 93 94**示例:** 95 96```js 97// 添加一条规则 98hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); 99 100// 获取已添加的规则 101hichecker.getRule(); // return 1n; 102``` 103 104## hichecker.contains 105 106contains(rule: bigint): boolean 107 108当前已添加的规则集中是否包含了某一个特定的规则,如果传入的规则级别为线程级别,则仅在当前线程中进行查询。 109 110**系统能力:** SystemCapability.HiviewDFX.HiChecker 111 112**参数:** 113 114| 参数名 | 类型 | 必填 | 说明 | 115| ------ | ------ | ---- | ---------------- | 116| rule | bigint | 是 | 需要查询的规则。 | 117 118**返回值:** 119 120| 类型 | 说明 | 121| ------- | ---------------------------------------------------------- | 122| boolean | 查询结果,true 表示规则已添加,false 表示规则未添加。 | 123 124**示例:** 125 126```js 127// 添加一条规则 128hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); 129 130// 查询是否包含 131hichecker.contains(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true; 132hichecker.contains(hichecker.RULE_CAUTION_PRINT_LOG); // return false; 133```