1# @ohos.hichecker (检测模式) 2 3HiChecker可以作为应用开发阶段使用的检测工具,用于检测代码运行过程中部分易忽略的问题,如应用线程出现耗时调用、应用进程中Ability资源泄露等问题。开发者可以通过日志记录或进程crash等形式查看具体问题并进行修改,提升应用的使用体验。 4 5> **说明:** 6> 7> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10 11```ts 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## hichecker.addCheckRule<sup>9+</sup> 30 31addCheckRule(rule: bigint): void 32 33添加一条或多条规则到系统,系统根据添加的规则进行检测或反馈。 34 35**系统能力:** SystemCapability.HiviewDFX.HiChecker 36 37**参数:** 38 39| 参数名 | 类型 | 必填 | 说明 | 40| ------ | ------ | ---- | ---------------- | 41| rule | bigint | 是 | 需要添加的规则。 | 42 43**示例:** 44 45```ts 46import { BusinessError } from '@ohos.base'; 47 48try { 49 // 添加一条规则 50 hichecker.addCheckRule(hichecker.RULE_CAUTION_PRINT_LOG); 51 // 添加多条规则 52 // hichecker.addCheckRule( 53 // hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH); 54} catch (err) { 55 console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`); 56} 57``` 58 59## hichecker.removeCheckRule<sup>9+</sup> 60 61removeCheckRule(rule: bigint): void 62 63删除一条或多条规则,删除的规则后续将不再生效。 64 65**系统能力:** SystemCapability.HiviewDFX.HiChecker 66 67**参数:** 68 69| 参数名 | 类型 | 必填 | 说明 | 70| ------ | ------ | ---- | ---------------- | 71| rule | bigint | 是 | 需要删除的规则。 | 72 73**示例:** 74 75```ts 76import { BusinessError } from '@ohos.base' 77 78try { 79 // 删除一条规则 80 hichecker.removeCheckRule(hichecker.RULE_CAUTION_PRINT_LOG); 81 // 删除多条规则 82 // hichecker.removeCheckRule( 83 // hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH); 84} catch (err) { 85 console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`); 86} 87``` 88 89## hichecker.containsCheckRule<sup>9+</sup> 90 91containsCheckRule(rule: bigint): boolean 92 93当前已添加的规则集中是否包含了某一个特定的规则,如果传入的规则级别为线程级别,则仅在当前线程中进行查询。 94 95**系统能力:** SystemCapability.HiviewDFX.HiChecker 96 97**参数:** 98 99| 参数名 | 类型 | 必填 | 说明 | 100| ------ | ------ | ---- | ---------------- | 101| rule | bigint | 是 | 需要查询的规则。 | 102 103**返回值:** 104 105| 类型 | 说明 | 106| ------- | ---------------------------------------------------------- | 107| boolean | 查询结果,true 表示规则已添加,false 表示规则未添加。 | 108 109**示例:** 110 111```ts 112import { BusinessError } from '@ohos.base' 113 114try { 115 // 添加一条规则 116 hichecker.addCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); 117 118 // 查询是否包含 119 hichecker.containsCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true; 120 hichecker.containsCheckRule(hichecker.RULE_CAUTION_PRINT_LOG); // return false; 121} catch (err) { 122 console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`); 123} 124``` 125 126## hichecker.addRule<sup>(deprecated)</sup> 127 128addRule(rule: bigint): void 129 130> **说明:** 131> 132> 从 API Version 9 开始废弃,建议使用[hichecker.addCheckRule](#hicheckeraddcheckrule9)替代。 133 134添加一条或多条规则到系统,系统根据添加的规则进行检测或反馈。 135 136**系统能力:** SystemCapability.HiviewDFX.HiChecker 137 138**参数:** 139 140| 参数名 | 类型 | 必填 | 说明 | 141| ------ | ------ | ---- | ---------------- | 142| rule | bigint | 是 | 需要添加的规则。 | 143 144**示例:** 145 146```ts 147// 添加一条规则 148hichecker.addRule(hichecker.RULE_CAUTION_PRINT_LOG); 149 150// 添加多条规则 151hichecker.addRule( 152 hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH); 153``` 154 155## hichecker.removeRule<sup>(deprecated)</sup> 156 157removeRule(rule: bigint): void 158 159> **说明:** 160> 161> 从 API Version 9 开始废弃,建议使用[hichecker.removeCheckRule](#hicheckerremovecheckrule9)替代。 162 163删除一条或多条规则,删除的规则后续将不再生效。 164 165**系统能力:** SystemCapability.HiviewDFX.HiChecker 166 167**参数:** 168 169| 参数名 | 类型 | 必填 | 说明 | 170| ------ | ------ | ---- | ---------------- | 171| rule | bigint | 是 | 需要删除的规则。 | 172 173**示例:** 174 175```ts 176// 删除一条规则 177hichecker.removeRule(hichecker.RULE_CAUTION_PRINT_LOG); 178 179// 删除多条规则 180hichecker.removeRule( 181 hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH); 182``` 183 184## hichecker.getRule 185 186getRule(): bigint 187 188获取当前线程规则、进程规则、告警规则的合集。 189 190**系统能力:** SystemCapability.HiviewDFX.HiChecker 191 192**返回值:** 193 194| 类型 | 说明 | 195| ------ | ---------------------- | 196| bigint | 当前系统中添加的规则。 | 197 198**示例:** 199 200```ts 201// 添加一条规则 202hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); 203 204// 获取已添加的规则 205hichecker.getRule(); // return 1n; 206``` 207 208## hichecker.contains<sup>(deprecated)</sup> 209 210contains(rule: bigint): boolean 211 212> **说明:** 213> 214> 从 API Version 9 开始废弃,建议使用[hichecker.containsCheckRule](#hicheckercontainscheckrule9)替代。 215 216当前已添加的规则集中是否包含了某一个特定的规则,如果传入的规则级别为线程级别,则仅在当前线程中进行查询。 217 218**系统能力:** SystemCapability.HiviewDFX.HiChecker 219 220**参数:** 221 222| 参数名 | 类型 | 必填 | 说明 | 223| ------ | ------ | ---- | ---------------- | 224| rule | bigint | 是 | 需要查询的规则。 | 225 226**返回值:** 227 228| 类型 | 说明 | 229| ------- | ---------------------------------------------------------- | 230| boolean | 查询结果,true 表示规则已添加,false 表示规则未添加。 | 231 232**示例:** 233 234```ts 235// 添加一条规则 236hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); 237 238// 查询是否包含 239hichecker.contains(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true; 240hichecker.contains(hichecker.RULE_CAUTION_PRINT_LOG); // return false; 241``` 242