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

L
lutao 已提交
3
> **说明:**
L
lutao 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

```
import hichecker from '@ohos.hichecker';
```


## 系统能力

SystemCapability.HiviewDFX.HiChecker

## 规则常量

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

| 名称                               | 参数类型 | 说明                                                   |
| ---------------------------------- | -------- | ------------------------------------------------------ |
| RULE_CAUTION_PRINT_LOG             | BigInt   | 告警规则,当有告警时记录日志。                         |
| RULE_CAUTION_TRIGGER_CRASH         | BigInt   | 告警规则,当有告警时让应用推出。                       |
| RULE_THREAD_CHECK_SLOW_PROCESS     | BigInt   | 检测规则,检测是否有耗时函数被调用。                   |
| RULE_CHECK_SLOW_EVENT              | BigInt   | 检测规则,检测是否有事件分发或处理超过规定的时间阈值。 |
| RULE_CHECK_ABILITY_CONNECTION_LEAK | BigInt   | 检测规则,检测是否发生ability泄露。                    |


## hichecker.addRule

addRule(rule: BigInt): void

添加一条或多条规则到系统,系统根据添加的规则进行检测或反馈。

Z
zengyawen 已提交
37
**参数:**
L
lutao 已提交
38

Z
zengyawen 已提交
39 40 41
| 参数名 | 类型   | 必填 | 说明             |
| ------ | ------ | ---- | ---------------- |
| rule   | BigInt | 是   | 需要添加的规则。 |
L
lutao 已提交
42

Z
zengyawen 已提交
43
**示例:**
L
lutao 已提交
44

Z
zengyawen 已提交
45 46 47 48 49 50 51 52
```
// 添加一条规则
hichecker.addRule(hichecker.RULE_CAUTION_PRINT_LOG);

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

## hichecker.removeRule

removeRule(rule: BigInt): void

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

Z
zengyawen 已提交
60
**参数:**
L
lutao 已提交
61

Z
zengyawen 已提交
62 63 64
| 参数名 | 类型   | 必填 | 说明             |
| ------ | ------ | ---- | ---------------- |
| rule   | BigInt | 是   | 需要删除的规则。 |
L
lutao 已提交
65

Z
zengyawen 已提交
66
**示例:**
L
lutao 已提交
67

Z
zengyawen 已提交
68 69 70 71 72 73 74 75
```
// 删除一条规则
hichecker.removeRule(hichecker.RULE_CAUTION_PRINT_LOG);

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

Z
zengyawen 已提交
77
## hichecker.getRule
L
lutao 已提交
78 79 80 81 82

getRule(): BigInt 

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

Z
zengyawen 已提交
83
**返回值:**
L
lutao 已提交
84

Z
zengyawen 已提交
85 86 87
| 类型   | 说明                   |
| ------ | ---------------------- |
| BigInt | 当前系统中添加的规则。 |
L
lutao 已提交
88

Z
zengyawen 已提交
89
**示例:**
L
lutao 已提交
90

Z
zengyawen 已提交
91 92 93 94 95 96 97
```
// 添加一条规则
hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);

// 获取已添加的规则
hichecker.getRule();   // return 1n;
```
L
lutao 已提交
98 99 100 101 102

## hichecker.contains

contains(rule: BigInt): boolean

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

Z
zengyawen 已提交
105
**参数:**
L
lutao 已提交
106

Z
zengyawen 已提交
107 108 109
| 参数名 | 类型   | 必填 | 说明             |
| ------ | ------ | ---- | ---------------- |
| rule   | BigInt | 是   | 需要查询的规则。 |
L
lutao 已提交
110

Z
zengyawen 已提交
111
**返回值:**
L
lutao 已提交
112

Z
zengyawen 已提交
113 114 115
| 类型    | 说明                                                       |
| ------- | ---------------------------------------------------------- |
| boolean | 查询结果,true 表示规则已添加,false 表示规则未添加。 |
L
lutao 已提交
116

Z
zengyawen 已提交
117 118 119 120 121
**示例:**

```
// 添加一条规则
hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);
L
lutao 已提交
122

Z
zengyawen 已提交
123 124 125 126
// 查询是否包含
hichecker.contains(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
hichecker.contains(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
```