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