native_child_process.h
概述
支持创建Native子进程,并在父子进程间建立IPC通道。通过此模块和childProcessManager(非SELF_FORK模式)可以启动的子进程总数最大为512个。
库:libchild_process.so
系统能力:SystemCapability.Ability.AbilityRuntime.Core
起始版本:12
相关模块:ChildProcess
汇总
文件
| 名称 | 描述 |
|---|---|
| native_child_process.h | 支持创建Native子进程,并在父子进程间建立IPC通道。 引用文件:<AbilityKit/native_child_process.h> 库:libchild_process.so |
类型定义
| 名称 | 描述 |
|---|---|
| typedef enum Ability_NativeChildProcess_ErrCode Ability_NativeChildProcess_ErrCode | 定义Native子进程模块错误码。 |
| typedef void(* OH_Ability_OnNativeChildProcessStarted) (int errCode, OHIPCRemoteProxy *remoteProxy) | 定义通知子进程启动结果的回调函数。 |
| typedef struct NativeChildProcess_Fd | 定义子进程文件描述符记录。 |
| typedef struct NativeChildProcess_FdList | 定义子进程文件描述符记录链表。 |
| typedef struct NativeChildProcess_Args | 定义启动子进程入参。 |
| typedef struct NativeChildProcess_Options | 定义子进程选项。 |
枚举
| 名称 | 描述 |
|---|---|
| Ability_NativeChildProcess_ErrCode { NCP_NO_ERROR = 0, NCP_ERR_INVALID_PARAM = 401, NCP_ERR_NOT_SUPPORTED = 801, NCP_ERR_INTERNAL = 16000050, NCP_ERR_BUSY = 16010001, NCP_ERR_TIMEOUT = 16010002, NCP_ERR_SERVICE_ERROR = 16010003, NCP_ERR_MULTI_PROCESS_DISABLED = 16010004, NCP_ERR_ALREADY_IN_CHILD = 16010005, NCP_ERR_MAX_CHILD_PROCESSES_REACHED = 16010006, NCP_ERR_LIB_LOADING_FAILED = 16010007, NCP_ERR_CONNECTION_FAILED = 16010008 } |
定义Native子进程模块错误码。 |
| NativeChildProcess_IsolationMode { NCP_ISOLATION_MODE_NORMAL = 0, NCP_ISOLATION_MODE_ISOLATED = 1, } |
定义子进程独立模式。 |
函数
| 名称 | 描述 |
|---|---|
| int OH_Ability_CreateNativeChildProcess (const char *libName, OH_Ability_OnNativeChildProcessStarted onProcessStarted) | 创建子进程并加载参数中指定的动态链接库文件,进程启动结果通过回调参数异步通知,需注意回调通知为独立线程,回调函数实现需要注意线程同步,且不能执行高耗时操作避免长时间阻塞。 说明:从API version 14开始,支持2in1和tablet设备。API version 13及之前版本,仅支持2in1设备。从API version 15开始,单个进程最多支持启动50个Native子进程。API version 14及之前版本,单个进程只能启动1个Native子进程。 |
| Ability_NativeChildProcess_ErrCode OH_Ability_StartNativeChildProcess(const char* entry, NativeChildProcess_Args args, NativeChildProcess_Options options, int32_t *pid) | 启动子进程,加载参数中指定的动态链接库文件并调用入口函数。支持传参到子进程。 说明:当前仅支持2in1、tablet设备。 |
| NativeChildProcess_Args* OH_Ability_GetCurrentChildProcessArgs() | 通过OH_Ability_StartNativeChildProcess启动子进程后,子进程能够在任意so和任意子线程中获取启动参数NativeChildProcess_Args。 说明:当前仅支持2in1、tablet设备。 |