• 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```ts
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```ts
47import { BusinessError } from '@ohos.base';
48
49try {
50    // 添加一条规则
51    hichecker.addCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);
52    // 添加多条规则
53    // hichecker.addCheckRule(
54    //     hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
55} catch (err) {
56    console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`);
57}
58```
59
60## hichecker.removeCheckRule<sup>9+</sup>
61
62removeCheckRule(rule: bigint): void
63
64删除一条或多条规则,删除的规则后续将不再生效。
65
66**系统能力:** SystemCapability.HiviewDFX.HiChecker
67
68**参数:**
69
70| 参数名 | 类型   | 必填 | 说明             |
71| ------ | ------ | ---- | ---------------- |
72| rule   | bigint | 是   | 需要删除的规则。 |
73
74**示例:**
75
76```ts
77import { BusinessError } from '@ohos.base'
78
79try {
80    // 删除一条规则
81    hichecker.removeCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);
82    // 删除多条规则
83    // hichecker.removeCheckRule(
84    //     hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
85} catch (err) {
86    console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`);
87}
88```
89
90## hichecker.containsCheckRule<sup>9+</sup>
91
92containsCheckRule(rule: bigint): boolean
93
94当前已添加的规则集中是否包含了某一个特定的规则,如果传入的规则级别为线程级别,则仅在当前线程中进行查询。
95
96**系统能力:** SystemCapability.HiviewDFX.HiChecker
97
98**参数:**
99
100| 参数名 | 类型   | 必填 | 说明             |
101| ------ | ------ | ---- | ---------------- |
102| rule   | bigint | 是   | 需要查询的规则。 |
103
104**返回值:**
105
106| 类型    | 说明                                                       |
107| ------- | ---------------------------------------------------------- |
108| boolean | 查询结果,true&nbsp;表示规则已添加,false 表示规则未添加。 |
109
110**示例:**
111
112```ts
113import { BusinessError } from '@ohos.base'
114
115try {
116    // 添加一条规则
117    hichecker.addCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
118
119    // 查询是否包含
120    hichecker.containsCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
121    hichecker.containsCheckRule(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
122} catch (err) {
123    console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`);
124}
125```
126
127## hichecker.addRule<sup>(deprecated)</sup>
128
129addRule(rule: bigint): void
130
131> **说明:**
132>
133> 从 API Version 9 开始废弃,建议使用[hichecker.addCheckRule](#hicheckeraddcheckrule9)替代。
134
135添加一条或多条规则到系统,系统根据添加的规则进行检测或反馈。
136
137**系统能力:** SystemCapability.HiviewDFX.HiChecker
138
139**参数:**
140
141| 参数名 | 类型   | 必填 | 说明             |
142| ------ | ------ | ---- | ---------------- |
143| rule   | bigint | 是   | 需要添加的规则。 |
144
145**示例:**
146
147```ts
148// 添加一条规则
149hichecker.addRule(hichecker.RULE_CAUTION_PRINT_LOG);
150
151// 添加多条规则
152hichecker.addRule(
153          hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
154```
155
156## hichecker.removeRule<sup>(deprecated)</sup>
157
158removeRule(rule: bigint): void
159
160> **说明:**
161>
162> 从 API Version 9 开始废弃,建议使用[hichecker.removeCheckRule](#hicheckerremovecheckrule9)替代。
163
164删除一条或多条规则,删除的规则后续将不再生效。
165
166**系统能力:** SystemCapability.HiviewDFX.HiChecker
167
168**参数:**
169
170| 参数名 | 类型   | 必填 | 说明             |
171| ------ | ------ | ---- | ---------------- |
172| rule   | bigint | 是   | 需要删除的规则。 |
173
174**示例:**
175
176```ts
177// 删除一条规则
178hichecker.removeRule(hichecker.RULE_CAUTION_PRINT_LOG);
179
180// 删除多条规则
181hichecker.removeRule(
182          hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
183```
184
185## hichecker.getRule
186
187getRule(): bigint
188
189获取当前线程规则、进程规则、告警规则的合集。
190
191**系统能力:** SystemCapability.HiviewDFX.HiChecker
192
193**返回值:**
194
195| 类型   | 说明                   |
196| ------ | ---------------------- |
197| bigint | 当前系统中添加的规则。 |
198
199**示例:**
200
201```ts
202// 添加一条规则
203hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
204
205// 获取已添加的规则
206hichecker.getRule();   // return 1n;
207```
208
209## hichecker.contains<sup>(deprecated)</sup>
210
211contains(rule: bigint): boolean
212
213> **说明:**
214>
215> 从 API Version 9 开始废弃,建议使用[hichecker.containsCheckRule](#hicheckercontainscheckrule9)替代。
216
217当前已添加的规则集中是否包含了某一个特定的规则,如果传入的规则级别为线程级别,则仅在当前线程中进行查询。
218
219**系统能力:** SystemCapability.HiviewDFX.HiChecker
220
221**参数:**
222
223| 参数名 | 类型   | 必填 | 说明             |
224| ------ | ------ | ---- | ---------------- |
225| rule   | bigint | 是   | 需要查询的规则。 |
226
227**返回值:**
228
229| 类型    | 说明                                                       |
230| ------- | ---------------------------------------------------------- |
231| boolean | 查询结果,true&nbsp;表示规则已添加,false 表示规则未添加。 |
232
233**示例:**
234
235```ts
236// 添加一条规则
237hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
238
239// 查询是否包含
240hichecker.contains(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
241hichecker.contains(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
242```