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