• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.resourceschedule.systemload (性能功耗热融合档位)
2
3系统根据当前温度、负载以及是否处于高负载场景等信息决策出系统负载融合档位,并在档位变化时通知已注册的应用。
4
5> **说明:**
6>
7> - 本模块首批接口从 API version 12 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```
12import { systemLoad } from '@kit.BasicServicesKit';
13```
14
15## systemLoad.on('systemLoadChange')
16
17on(type: 'systemLoadChange', callback: Callback\<SystemLoadLevel>): void
18
19注册系统负载回调,感知系统负载融合档位变化,使用callback异步回调。
20
21**系统能力:** SystemCapability.ResourceSchedule.SystemLoad
22
23**参数**:
24
25| 参数名       | 类型                          | 必填   | 说明                                       |
26| --------- | --------------------------- | ---- | ---------------------------------------- |
27| type | string                      | 是    | 固定取值'systemLoadChange',系统负载变化类型。                               |
28| callback  | AsyncCallback&lt;[SystemLoadLevel](#systemloadlevel)&gt; | 是    | 回调函数,返回本次注册系统负载时的系统负载融合档位。 |
29
30**错误码**:
31
32以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
33
34| 错误码ID  | 错误信息             |
35| ---- | --------------------- |
36| 401 | Parameter error. Possible cause: 1. Callback parameter error; 2. Register a exist callback type; 3. Parameter verification failed. |
37
38**示例**:
39
40```ts
41import { systemLoad } from '@kit.BasicServicesKit';
42
43function onSystemLoadChange(res: systemLoad.SystemLoadLevel) {
44    console.log(`system load changed, current level ` + res);
45}
46
47try {
48    systemLoad.on('systemLoadChange', onSystemLoadChange);
49    console.log(`register systemload callback succeeded. `);
50} catch (err) {
51    console.error(`register systemload callback failed: ` + JSON.stringify(err));
52}
53```
54
55## systemLoad.off('systemLoadChange')
56
57off(type: 'systemLoadChange', callback?: Callback\<SystemLoadLevel>): void
58
59取消注册系统负载回调,使用callback异步回调。
60
61**系统能力:** SystemCapability.ResourceSchedule.SystemLoad
62
63**参数**:
64
65| 参数名       | 类型                          | 必填   | 说明                                       |
66| --------- | --------------------------- | ---- | ---------------------------------------- |
67| type | string                      | 是    | 固定取值'systemLoadChange',系统负载变化类型。                               |
68| callback  | AsyncCallback&lt;[SystemLoadLevel](#systemloadlevel)&gt; | 否    | 回调函数,返回本次取消注册系统负载时的系统负载融合档位。 |
69
70**错误码**:
71
72以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
73
74| 错误码ID  | 错误信息             |
75| ---- | --------------------- |
76| 401 | Parameter error. Possible cause: 1. Callback parameter error; 2. Unregister type has not register; 3. Parameter verification failed. |
77
78**示例**:
79
80```ts
81import { systemLoad } from '@kit.BasicServicesKit';
82
83function onSystemLoadChange(res: systemLoad.SystemLoadLevel) {
84    console.log(`system load changed, current level ` + res);
85}
86
87try {
88    systemLoad.off('systemLoadChange', onSystemLoadChange);
89    console.log(`unregister systemload callback succeeded:. `);
90} catch (err) {
91    console.error(`unregister systemload callback failed: ` + JSON.stringify(err));
92}
93```
94
95## systemLoad.getLevel
96
97getLevel(): Promise&lt;[SystemLoadLevel](#systemloadlevel)&gt;
98
99获取系统负载融合档位,使用promise异步回调。
100
101**系统能力:** SystemCapability.ResourceSchedule.SystemLoad
102
103**返回值**:
104
105| 类型                    | 说明                                       |
106| --------------------- | ---------------------------------------- |
107| Promise&lt;[SystemLoadLevel](#systemloadlevel)&gt; | Promise对象,返回系统负载融合档位。 |
108
109**示例**:
110
111```ts
112import { BusinessError } from '@kit.BasicServicesKit';
113import { systemLoad } from '@kit.BasicServicesKit';
114
115systemLoad.getLevel().then((res: systemLoad.SystemLoadLevel) => {
116    console.log(`getLevel promise succeeded. result: ` + JSON.stringify(res));
117}).catch((err: BusinessError) => {
118    console.error(`getLevel promise failed. code is ${err.code} message is ${err.message}`);
119})
120```
121
122## SystemLoadLevel
123
124系统负载融合档位。
125
126**系统能力:** SystemCapability.ResourceSchedule.SystemLoad
127
128| 名称                     | 值  | 说明                    |
129| ----------------------- | ---- | --------------------- |
130| LOW          | 0    | 设备当前温度、负载比较低,无高负载场景。                  |
131| NORMAL       | 1    | 设备温度、负载正常,但邻近中等状态,无感知业务应降低规格和负载。                  |
132| MEDIUM       | 2    | 设备温度、负载有一项或多项稍高,或者当前处于高负载场景,无感知业务应暂停或延迟运行。                    |
133| HIGH         | 3    | 设备当前发热明显或负载比较高,或处于负载温度中等但处于高负载场景,无感知业务应停止,非关键业务应降低规格及负载。                  |
134| OVERHEATED   | 4    | 设备发热严重或者负载较重,无感知业务与非关键业务应停止,前台关键业务应降低规格及负载。                  |
135| WARNING     | 5    | 设备过热或负载过重,或者温度较高但处于高负载场景,即将进入紧急状态,整机资源供给大幅降低,停止所有非关键,前台关键业务应降低至最低规格。                 |
136| EMERGENCY    | 6    | 设备已经进入过热状态或负载极高紧急状态,或接近紧急状态但处于高负载场景,整机资源供给降至最低,设备功能受限,仅保留基础功能可用。        |
137| ESCAPE      | 7    | 设备即将进入热逃生状态或当前负载已经不堪重负,或已经处于紧急状态且高负载状态,所有业务将被强制停止,业务需做好逃生措施,例如保存重要数据等。        |
138