• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 检测模式
2
3HiChecker可以作为应用开发阶段使用的检测工具,用于检测代码运行过程中部分易忽略的问题,如应用线程出现耗时调用、应用进程中Ability资源泄露等问题。开发者可以通过日志记录或进程crash等形式查看具体问题并进行修改,提升应用的使用体验。
4
5> **说明:**
6> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
7
8
9## 导入模块
10
11```js
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
30## hichecker.addRule
31
32addRule(rule: bigint): void
33
34添加一条或多条规则到系统,系统根据添加的规则进行检测或反馈。
35
36**系统能力:** SystemCapability.HiviewDFX.HiChecker
37
38**参数:**
39
40| 参数名 | 类型   | 必填 | 说明             |
41| ------ | ------ | ---- | ---------------- |
42| rule   | bigint | 是   | 需要添加的规则。 |
43
44**示例:**
45
46```js
47// 添加一条规则
48hichecker.addRule(hichecker.RULE_CAUTION_PRINT_LOG);
49
50// 添加多条规则
51hichecker.addRule(
52          hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
53```
54
55## hichecker.removeRule
56
57removeRule(rule: bigint): void
58
59删除一条或多条规则,删除的规则后续将不再生效。
60
61**系统能力:** SystemCapability.HiviewDFX.HiChecker
62
63**参数:**
64
65| 参数名 | 类型   | 必填 | 说明             |
66| ------ | ------ | ---- | ---------------- |
67| rule   | bigint | 是   | 需要删除的规则。 |
68
69**示例:**
70
71```js
72// 删除一条规则
73hichecker.removeRule(hichecker.RULE_CAUTION_PRINT_LOG);
74
75// 删除多条规则
76hichecker.removeRule(
77          hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
78```
79
80## hichecker.getRule
81
82getRule(): bigint
83
84获取当前线程规则、进程规则、告警规则的合集。
85
86**系统能力:** SystemCapability.HiviewDFX.HiChecker
87
88**返回值:**
89
90| 类型   | 说明                   |
91| ------ | ---------------------- |
92| bigint | 当前系统中添加的规则。 |
93
94**示例:**
95
96```js
97// 添加一条规则
98hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
99
100// 获取已添加的规则
101hichecker.getRule();   // return 1n;
102```
103
104## hichecker.contains
105
106contains(rule: bigint): boolean
107
108当前已添加的规则集中是否包含了某一个特定的规则,如果传入的规则级别为线程级别,则仅在当前线程中进行查询。
109
110**系统能力:** SystemCapability.HiviewDFX.HiChecker
111
112**参数:**
113
114| 参数名 | 类型   | 必填 | 说明             |
115| ------ | ------ | ---- | ---------------- |
116| rule   | bigint | 是   | 需要查询的规则。 |
117
118**返回值:**
119
120| 类型    | 说明                                                       |
121| ------- | ---------------------------------------------------------- |
122| boolean | 查询结果,true 表示规则已添加,false 表示规则未添加。 |
123
124**示例:**
125
126```js
127// 添加一条规则
128hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
129
130// 查询是否包含
131hichecker.contains(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
132hichecker.contains(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
133```