js-apis-hichecker.md 7.0 KB
Newer Older
1
# @ohos.hichecker (检测模式)
L
lutao 已提交
2

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

L
lutao 已提交
5
> **说明:**
6
>
L
lutao 已提交
7 8 9 10 11
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

 
卢韬 已提交
12
```js
L
lutao 已提交
13 14 15 16
import hichecker from '@ohos.hichecker';
```


Z
zengyawen 已提交
17
## 常量
L
lutao 已提交
18 19 20

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

21
**系统能力:** SystemCapability.HiviewDFX.HiChecker
Z
zengyawen 已提交
22

L
lutao 已提交
23 24
| 名称                               | 参数类型 | 说明                                                   |
| ---------------------------------- | -------- | ------------------------------------------------------ |
25 26 27 28
| RULE_CAUTION_PRINT_LOG             | bigint   | 告警规则,当有告警时记录日志。                         |
| RULE_CAUTION_TRIGGER_CRASH         | bigint   | 告警规则,当有告警时让应用推出。                       |
| RULE_THREAD_CHECK_SLOW_PROCESS     | bigint   | 检测规则,检测是否有耗时函数被调用。                   |
| RULE_CHECK_ABILITY_CONNECTION_LEAK | bigint   | 检测规则,检测是否发生ability泄露。                    |
L
lutao 已提交
29

卢韬 已提交
30
## hichecker.addCheckRule<sup>9+</sup>
L
lutao 已提交
31

卢韬 已提交
32
addCheckRule(rule: bigint): void
卢韬 已提交
33

L
lutao 已提交
34 35
添加一条或多条规则到系统,系统根据添加的规则进行检测或反馈。

Z
zengyawen 已提交
36 37
**系统能力:** SystemCapability.HiviewDFX.HiChecker

Z
zengyawen 已提交
38
**参数:**
L
lutao 已提交
39

Z
zengyawen 已提交
40 41
| 参数名 | 类型   | 必填 | 说明             |
| ------ | ------ | ---- | ---------------- |
42
| rule   | bigint | 是   | 需要添加的规则。 |
L
lutao 已提交
43

Z
zengyawen 已提交
44
**示例:**
L
lutao 已提交
45

 
卢韬 已提交
46
```js
卢韬 已提交
47 48
try {
    // 添加一条规则
49
    hichecker.addCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);
卢韬 已提交
50
    // 添加多条规则
51 52 53
    // hichecker.addCheckRule(
    //     hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
} catch (err) {
卢韬 已提交
54 55
    console.error(`code: ${err.code}, message: ${err.message}`);
}
Z
zengyawen 已提交
56
```
L
lutao 已提交
57

卢韬 已提交
58
## hichecker.removeCheckRule<sup>9+</sup>
L
lutao 已提交
59

卢韬 已提交
60
removeCheckRule(rule: bigint): void
卢韬 已提交
61

L
lutao 已提交
62 63
删除一条或多条规则,删除的规则后续将不再生效。

Z
zengyawen 已提交
64 65
**系统能力:** SystemCapability.HiviewDFX.HiChecker

Z
zengyawen 已提交
66
**参数:**
L
lutao 已提交
67

Z
zengyawen 已提交
68 69
| 参数名 | 类型   | 必填 | 说明             |
| ------ | ------ | ---- | ---------------- |
70
| rule   | bigint | 是   | 需要删除的规则。 |
L
lutao 已提交
71

Z
zengyawen 已提交
72
**示例:**
L
lutao 已提交
73

 
卢韬 已提交
74
```js
卢韬 已提交
75 76
try {
    // 删除一条规则
卢韬 已提交
77
    hichecker.removeCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);
卢韬 已提交
78
    // 删除多条规则
79 80 81
    // hichecker.removeCheckRule(
    //     hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
} catch (err) {
卢韬 已提交
82 83
    console.error(`code: ${err.code}, message: ${err.message}`);
}
Z
zengyawen 已提交
84
```
L
lutao 已提交
85

卢韬 已提交
86
## hichecker.containsCheckRule<sup>9+</sup>
L
lutao 已提交
87

卢韬 已提交
88
containsCheckRule(rule: bigint): boolean
卢韬 已提交
89

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

Z
zengyawen 已提交
92 93
**系统能力:** SystemCapability.HiviewDFX.HiChecker

Z
zengyawen 已提交
94
**参数:**
L
lutao 已提交
95

Z
zengyawen 已提交
96 97
| 参数名 | 类型   | 必填 | 说明             |
| ------ | ------ | ---- | ---------------- |
98
| rule   | bigint | 是   | 需要查询的规则。 |
L
lutao 已提交
99

Z
zengyawen 已提交
100
**返回值:**
L
lutao 已提交
101

Z
zengyawen 已提交
102 103 104
| 类型    | 说明                                                       |
| ------- | ---------------------------------------------------------- |
| boolean | 查询结果,true&nbsp;表示规则已添加,false 表示规则未添加。 |
L
lutao 已提交
105

Z
zengyawen 已提交
106 107
**示例:**

 
卢韬 已提交
108
```js
卢韬 已提交
109 110
try {
    // 添加一条规则
卢韬 已提交
111
    hichecker.addCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
L
lutao 已提交
112

卢韬 已提交
113
    // 查询是否包含
卢韬 已提交
114 115
    hichecker.containsCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
    hichecker.containsCheckRule(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
116
} catch (err) {
卢韬 已提交
117 118
    console.error(`code: ${err.code}, message: ${err.message}`);
}
卢韬 已提交
119 120
```

卢韬 已提交
121 122 123 124 125
## hichecker.addRule<sup>(deprecated)</sup>

addRule(rule: bigint): void

> **说明:** 从 API Version 9 开始废弃,建议使用[hichecker.addCheckRule](#hicheckeraddcheckrule9)替代。
卢韬 已提交
126 127 128 129 130 131 132 133 134 135 136 137 138 139

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

**系统能力:** SystemCapability.HiviewDFX.HiChecker

**参数:**

| 参数名 | 类型   | 必填 | 说明             |
| ------ | ------ | ---- | ---------------- |
| rule   | bigint | 是   | 需要添加的规则。 |

**示例:**

```js
卢韬 已提交
140 141 142 143 144 145
// 添加一条规则
hichecker.addRule(hichecker.RULE_CAUTION_PRINT_LOG);

// 添加多条规则
hichecker.addRule(
          hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
卢韬 已提交
146 147
```

卢韬 已提交
148
## hichecker.removeRule<sup>(deprecated)</sup>
卢韬 已提交
149

卢韬 已提交
150 151 152
removeRule(rule: bigint): void

> **说明:** 从 API Version 9 开始废弃,建议使用[hichecker.removeCheckRule](#hicheckerremovecheckrule9)替代。
卢韬 已提交
153 154 155 156 157 158 159 160 161 162 163

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

**系统能力:** SystemCapability.HiviewDFX.HiChecker

**参数:**

| 参数名 | 类型   | 必填 | 说明             |
| ------ | ------ | ---- | ---------------- |
| rule   | bigint | 是   | 需要删除的规则。 |

卢韬 已提交
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
**示例:**

```js
// 删除一条规则
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
卢韬 已提交
182

卢韬 已提交
183 184 185 186 187
**返回值:**

| 类型   | 说明                   |
| ------ | ---------------------- |
| bigint | 当前系统中添加的规则。 |
卢韬 已提交
188 189 190 191

**示例:**

```js
卢韬 已提交
192 193 194 195 196
// 添加一条规则
hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);

// 获取已添加的规则
hichecker.getRule();   // return 1n;
卢韬 已提交
197 198
```

卢韬 已提交
199
## hichecker.contains<sup>(deprecated)</sup>
卢韬 已提交
200

卢韬 已提交
201 202 203
contains(rule: bigint): boolean

> **说明:** 从 API Version 9 开始废弃,建议使用[hichecker.containsCheckRule](#hicheckercontainscheckrule9)替代。
卢韬 已提交
204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223

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

**系统能力:** SystemCapability.HiviewDFX.HiChecker

**参数:**

| 参数名 | 类型   | 必填 | 说明             |
| ------ | ------ | ---- | ---------------- |
| rule   | bigint | 是   | 需要查询的规则。 |

**返回值:**

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

**示例:**

```js
卢韬 已提交
224 225
// 添加一条规则
hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
卢韬 已提交
226

卢韬 已提交
227 228 229
// 查询是否包含
hichecker.contains(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
hichecker.contains(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
Z
zengyawen 已提交
230
```