• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# BackgroundProcessManager
2
3
4## 概述
5
6提供后台子进程调度策略管控C接口。
7
8**起始版本:** 17
9
10
11## 汇总
12
13
14### 文件
15
16| 名称 | 描述 |
17| -------- | -------- |
18| [background_process_manager.h](background__process__manager_8h.md) | 本模块提供了后台子进程管控接口。开发者可以通过本模块接口对子进程进行压制、解压制,避免子进程过多占用系统资源,导致系统使用卡顿。 本模块接口仅对通过[OH_Ability_StartNativeChildProcess](../apis-ability-kit/c-apis-ability-childprocess.md#oh_ability_startnativechildprocess)接口创建的子进程生效。  |
19
20
21### 类型定义
22
23| 名称 | 描述 |
24| -------- | -------- |
25| typedef enum [BackgroundProcessManager_ProcessPriority](#backgroundprocessmanager_processpriority) [BackgroundProcessManager_ProcessPriority](#backgroundprocessmanager_processpriority) | 子进程压制档位。  |
26| typedef enum [BackgroundProcessManager_ErrorCode](#backgroundprocessmanager_errorcode) [BackgroundProcessManager_ErrorCode](#backgroundprocessmanager_errorcode) | 定义后台子进程管控错误码。  |
27
28
29### 枚举
30
31| 名称 | 描述 |
32| -------- | -------- |
33| [BackgroundProcessManager_ProcessPriority](#backgroundprocessmanager_processpriority) { PROCESS_BACKGROUND = 1, PROCESS_INACTIVE = 2 } | 子进程压制档位。  |
34| [BackgroundProcessManager_ErrorCode](#backgroundprocessmanager_errorcode) { ERR_BACKGROUND_PROCESS_MANAGER_SUCCESS = 0, ERR_BACKGROUND_PROCESS_MANAGER_INVALID_PARAM = 401, ERR_BACKGROUND_PROCESS_MANAGER_REMOTE_ERROR = 31800001 } | 定义后台子进程管控错误码。  |
35
36
37### 函数
38
39| 名称 | 描述 |
40| -------- | -------- |
41| int [OH_BackgroundProcessManager_SetProcessPriority](#oh_backgroundprocessmanager_setprocesspriority) (int pid, [BackgroundProcessManager_ProcessPriority](#backgroundprocessmanager_processpriority) priority) | 设置子进程的压制档位,子进程被压制后可获得的CPU资源将会受到限制。如果主进程调度策略发生变化,如从后台切至前台等,子进程会跟随主进程一同变化,子进程如需继续压制,需要重新调用本接口。  |
42| int [OH_BackgroundProcessManager_ResetProcessPriority](#oh_backgroundprocessmanager_resetprocesspriority) (int pid) | 为子进程解压制,即子进程策略恢复为主进程调度策略。若主进程调度策略发生变化,如从后台切至前台等,子进程会跟随主进程一同变化,等效于执行一次resetProcessPriority动作。  |
43
44
45## 类型定义说明
46
47
48### BackgroundProcessManager_ErrorCode
49
50```
51typedef enum BackgroundProcessManager_ErrorCodeBackgroundProcessManager_ErrorCode
52```
53**描述**
54
55定义后台子进程管控错误码。
56
57**起始版本:** 17
58
59
60### BackgroundProcessManager_ProcessPriority
61
62```
63typedef enum BackgroundProcessManager_ProcessPriorityBackgroundProcessManager_ProcessPriority
64```
65**描述**
66
67子进程压制档位。
68
69**起始版本:** 17
70
71
72## 枚举类型说明
73
74
75### BackgroundProcessManager_ErrorCode
76
77```
78enum BackgroundProcessManager_ErrorCode
79```
80**描述**
81
82定义后台子进程管控错误码。
83
84**起始版本:** 17
85
86| 枚举值 | 描述 |
87| -------- | -------- |
88| ERR_BACKGROUND_PROCESS_MANAGER_SUCCESS  | 压制参数发送成功。 |
89| ERR_BACKGROUND_PROCESS_MANAGER_INVALID_PARAM  | 参数检查失败。 |
90| ERR_BACKGROUND_PROCESS_MANAGER_REMOTE_ERROR  | 客户端进程请求系统服务进程,获取系统服务操作失败。 |
91
92
93### BackgroundProcessManager_ProcessPriority
94
95```
96enum BackgroundProcessManager_ProcessPriority
97```
98**描述**
99
100子进程压制档位。
101
102**起始版本:** 17
103
104| 枚举值 | 描述 |
105| -------- | -------- |
106| PROCESS_BACKGROUND  | 该档位相较PROCESS_INACTIVE压制效果更显著,获取到的CPU资源更少。推荐执行处于后台的图文页面等用户无感知业务的后台子进程时设置该档位。   |
107| PROCESS_INACTIVE  | 推荐正在执行播放音频、导航等用户可感知业务的后台子进程时设置该档位。   |
108
109
110## 函数说明
111
112
113### OH_BackgroundProcessManager_ResetProcessPriority()
114
115```
116int OH_BackgroundProcessManager_ResetProcessPriority (int pid)
117```
118**描述**
119
120为子进程解压制,即子进程策略恢复为主进程调度策略。若主进程调度策略发生变化,如从后台切至前台等, 子进程会跟随主进程一同变化,等效于执行一次resetProcessPriority动作。
121
122**起始版本:** 17
123
124**参数:**
125
126| 名称 | 描述 |
127| -------- | -------- |
128| pid | 子进程的进程号,[OH_Ability_StartNativeChildProcess](../apis-ability-kit/c-apis-ability-childprocess.md#oh_ability_startnativechildprocess)接口创建子进程后的pid参数,即为子进程进程号。  |
129
130**返回:**
131
132返回执行的错误码。错误码定义详见[BackgroundProcessManager_ErrorCode](#backgroundprocessmanager_errorcode)。返回 ERR_BACKGROUND_PROCESS_MANAGER_SUCCESS,表示压制参数发送成功。 返回 ERR_BACKGROUND_PROCESS_MANAGER_REMOTE_ERROR,表示客户端进程请求系统服务进程,获取系统服务操作失败。
133
134
135### OH_BackgroundProcessManager_SetProcessPriority()
136
137```
138int OH_BackgroundProcessManager_SetProcessPriority (int pid, BackgroundProcessManager_ProcessPriority priority )
139```
140**描述**
141
142设置子进程的压制档位,子进程被压制后可获得的CPU资源将会受到限制。如果主进程调度策略发生变化,如从后台切至前台等,子进程会跟随主进程一同变化,子进程如需继续压制,需要重新调用本接口。
143
144**起始版本:** 17
145
146**参数:**
147
148| 名称 | 描述 |
149| -------- | -------- |
150| pid | 需要被压制子进程的进程号,[OH_Ability_StartNativeChildProcess](../apis-ability-kit/c-apis-ability-childprocess.md#oh_ability_startnativechildprocess)接口创建子进程后的pid参数,即为子进程进程号。  |
151| priority | 压制档位。 |
152
153**返回:**
154
155返回执行的错误码。错误码定义详见[BackgroundProcessManager_ErrorCode](#backgroundprocessmanager_errorcode)。返回 ERR_BACKGROUND_PROCESS_MANAGER_SUCCESS,表示压制参数发送成功。 返回 ERR_BACKGROUND_PROCESS_MANAGER_INVALID_PARAM,表示参数检查失败。 返回 ERR_BACKGROUND_PROCESS_MANAGER_REMOTE_ERROR,表示客户端进程请求系统服务进程,获取系统服务操作失败。
156