• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&nbsp;表示规则已添加,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&nbsp;表示规则已添加,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