js-apis-hichecker.md 4.0 KB
Newer Older
L
lutao 已提交
1 2
# 检测模式

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

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


## 导入模块

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


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

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

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

L
lutao 已提交
22 23
| 名称                               | 参数类型 | 说明                                                   |
| ---------------------------------- | -------- | ------------------------------------------------------ |
24 25 26 27
| 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 已提交
28 29 30 31


## hichecker.addRule

32
addRule(rule: bigint): void
L
lutao 已提交
33 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
Z
zengyawen 已提交
47 48 49 50 51 52 53
// 添加一条规则
hichecker.addRule(hichecker.RULE_CAUTION_PRINT_LOG);

// 添加多条规则
hichecker.addRule(
          hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
```
L
lutao 已提交
54 55 56

## hichecker.removeRule

57
removeRule(rule: bigint): void
L
lutao 已提交
58 59 60

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

Z
zengyawen 已提交
61 62
**系统能力:** SystemCapability.HiviewDFX.HiChecker

Z
zengyawen 已提交
63
**参数:**
L
lutao 已提交
64

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

Z
zengyawen 已提交
69
**示例:**
L
lutao 已提交
70

 
卢韬 已提交
71
```js
Z
zengyawen 已提交
72 73 74 75 76 77 78
// 删除一条规则
hichecker.removeRule(hichecker.RULE_CAUTION_PRINT_LOG);

// 删除多条规则
hichecker.removeRule(
          hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
```
L
lutao 已提交
79

Z
zengyawen 已提交
80
## hichecker.getRule
L
lutao 已提交
81

82
getRule(): bigint 
L
lutao 已提交
83 84 85

获取当前线程规则、进程规则、告警规则的合集。

Z
zengyawen 已提交
86 87
**系统能力:** SystemCapability.HiviewDFX.HiChecker

Z
zengyawen 已提交
88
**返回值:**
L
lutao 已提交
89

Z
zengyawen 已提交
90 91
| 类型   | 说明                   |
| ------ | ---------------------- |
92
| bigint | 当前系统中添加的规则。 |
L
lutao 已提交
93

Z
zengyawen 已提交
94
**示例:**
L
lutao 已提交
95

 
卢韬 已提交
96
```js
Z
zengyawen 已提交
97 98 99 100 101 102
// 添加一条规则
hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);

// 获取已添加的规则
hichecker.getRule();   // return 1n;
```
L
lutao 已提交
103 104 105

## hichecker.contains

106
contains(rule: bigint): boolean
L
lutao 已提交
107

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

Z
zengyawen 已提交
110 111
**系统能力:** SystemCapability.HiviewDFX.HiChecker

Z
zengyawen 已提交
112
**参数:**
L
lutao 已提交
113

Z
zengyawen 已提交
114 115
| 参数名 | 类型   | 必填 | 说明             |
| ------ | ------ | ---- | ---------------- |
116
| rule   | bigint | 是   | 需要查询的规则。 |
L
lutao 已提交
117

Z
zengyawen 已提交
118
**返回值:**
L
lutao 已提交
119

Z
zengyawen 已提交
120 121 122
| 类型    | 说明                                                       |
| ------- | ---------------------------------------------------------- |
| boolean | 查询结果,true 表示规则已添加,false 表示规则未添加。 |
L
lutao 已提交
123

Z
zengyawen 已提交
124 125
**示例:**

 
卢韬 已提交
126
```js
Z
zengyawen 已提交
127 128
// 添加一条规则
hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
L
lutao 已提交
129

Z
zengyawen 已提交
130 131 132 133
// 查询是否包含
hichecker.contains(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
hichecker.contains(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
```