modular_object_extension_manager.h
概述
声明用于管理ModularObjectExtensionAbility的接口,包括查询ModularObjectExtensionAbility信息、连接与断开连接等能力。开发者可以通过本模块提供的接口查询当前应用内所有已注册的ModularObjectExtensionAbility的信息(包括启动模式、进程模式、线程模式、组件名称及禁用状态等),并根据需要建立或断开与ModularObjectExtensionAbility的通信连接。
引用文件: <AbilityKit/ability_runtime/modular_object_extension_manager.h>
库: libability_runtime.so
系统能力: SystemCapability.Ability.AbilityRuntime.Core
起始版本: 26.0.0
相关模块: AbilityRuntime
汇总
结构体
| 名称 | typedef关键字 | 描述 |
|---|---|---|
| OH_AbilityRuntime_ModularObjectExtensionInfo* | OH_AbilityRuntime_ModObjExtensionInfoHandle | 表示单个ModularObjectExtensionAbility的信息句柄。该句柄指向一个ModularObjectExtensionAbility的完整信息,包含启动模式、进程模式、线程模式、组件名称(AbilityBase_Element)以及禁用状态等属性。 |
| OH_AbilityRuntime_AllModularObjectExtensionInfos* | OH_AbilityRuntime_AllModObjExtensionInfosHandle | 表示当前应用内所有ModularObjectExtensionAbility信息的集合句柄。该句柄指向一个包含多个OH_AbilityRuntime_ModObjExtensionInfoHandle的集合,可通过OH_AbilityRuntime_GetCountFromAllModObjExtensionInfos获取集合中元素的数量,并通过OH_AbilityRuntime_GetModObjExtensionInfoByIndex按索引遍历获取单个ModularObjectExtensionAbility信息。使用完毕后需通过OH_AbilityRuntime_ReleaseAllExtensionInfos释放该集合。 |
枚举
| 名称 | typedef关键字 | 描述 |
|---|---|---|
| OH_AbilityRuntime_LaunchMode | OH_AbilityRuntime_LaunchMode | 定义ModularObjectExtensionAbility的启动模式。 |
| OH_AbilityRuntime_ProcessMode | OH_AbilityRuntime_ProcessMode | 定义ModularObjectExtensionAbility的进程模式。 |
| OH_AbilityRuntime_ThreadMode | OH_AbilityRuntime_ThreadMode | 定义ModularObjectExtensionAbility的线程模式。 |
函数
枚举类型说明
OH_AbilityRuntime_LaunchMode
enum OH_AbilityRuntime_LaunchMode
描述
定义ModularObjectExtensionAbility的启动模式。
起始版本: 26.0.0
| 枚举项 | 描述 |
|---|---|
| OH_ABILITY_RUNTIME_LAUNCH_MODE_IN_PROCESS = 0 | 表示ModularObjectExtensionAbility将在调用方(客户端)进程中启动。在此模式下,ModularObjectExtensionAbility与调用方共享同一个进程,适用于对进程隔离无要求的场景。 |
| OH_ABILITY_RUNTIME_LAUNCH_MODE_CROSS_PROCESS = 1 | 表示ModularObjectExtensionAbility允许跨进程启动。在此模式下,ModularObjectExtensionAbility运行在独立的进程中,与调用方进程隔离,适用于需要进程级隔离以提高稳定性和安全性的场景。 |
OH_AbilityRuntime_ProcessMode
enum OH_AbilityRuntime_ProcessMode
描述
定义ModularObjectExtensionAbility的进程模式。
起始版本: 26.0.0
| 枚举项 | 描述 |
|---|---|
| OH_ABILITY_RUNTIME_PROCESS_MODE_BUNDLE = 0 | 表示同一应用下的所有ModularObjectExtensionAbility实例共享一个进程。所有实例运行在同一进程中,减少系统资源消耗。 |
| OH_ABILITY_RUNTIME_PROCESS_MODE_TYPE = 1 | 表示Ability名称相同的ModularObjectExtensionAbility实例共享一个进程。具有相同Ability名称的Extension实例被分配到同一进程中,不同Ability名称的实例运行在不同进程中。 |
| OH_ABILITY_RUNTIME_PROCESS_MODE_INSTANCE = 2 | 表示每个ModularObjectExtensionAbility实例独占一个进程。每个Extension实例拥有独立的进程空间,实现最大程度的进程隔离,适用于对稳定性和安全性要求极高的场景。 |
OH_AbilityRuntime_ThreadMode
enum OH_AbilityRuntime_ThreadMode
描述
定义ModularObjectExtensionAbility的线程模式。
起始版本: 26.0.0
| 枚举项 | 描述 |
|---|---|
| OH_ABILITY_RUNTIME_THREAD_MODE_BUNDLE = 0 | 表示同一应用下的所有ModularObjectExtensionAbility实例共享一个线程。所有实例在同一线程中依次执行,资源开销最小,但需注意避免单实例阻塞影响其他实例。 |
| OH_ABILITY_RUNTIME_THREAD_MODE_TYPE = 1 | 表示Ability名称相同的ModularObjectExtensionAbility实例共享一个线程。具有相同类型的Extension实例共享线程,不同类型的实例使用不同线程,在资源消耗与并发性能之间取得平衡。 |
| OH_ABILITY_RUNTIME_THREAD_MODE_INSTANCE = 2 | 表示每个ModularObjectExtensionAbility实例独占一个线程。每个Extension实例拥有独立的线程,互不干扰,适用于需要高并发或对响应时间有严格要求的场景。 |
函数说明
OH_AbilityRuntime_GetModularObjectExtensionInfoLaunchMode()
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetModularObjectExtensionInfoLaunchMode(OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo, OH_AbilityRuntime_LaunchMode *launchMode)
描述
从指定的ModularObjectExtensionAbility信息中获取启动模式。
起始版本: 26.0.0
参数:
| 参数项 | 描述 |
|---|---|
| OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo | 目标ModularObjectExtensionAbility的信息句柄。 |
| OH_AbilityRuntime_LaunchMode *launchMode | 指向OH_AbilityRuntime_LaunchMode的指针,用于接收启动模式。 |
返回:
| 类型 | 说明 |
|---|---|
| AbilityRuntime_ErrorCode | 返回特定的错误码。 ABILITY_RUNTIME_ERROR_CODE_NO_ERROR 接口调用成功。 ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID extensionInfo或launchMode为空。 |
OH_AbilityRuntime_GetModularObjectExtensionInfoProcessMode()
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetModularObjectExtensionInfoProcessMode(OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo, OH_AbilityRuntime_ProcessMode *processMode)
描述
从指定的ModularObjectExtensionAbility信息中获取进程模式。
起始版本: 26.0.0
参数:
| 参数项 | 描述 |
|---|---|
| OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo | 目标ModularObjectExtensionAbility的信息句柄。 |
| OH_AbilityRuntime_ProcessMode *processMode | 指向OH_AbilityRuntime_ProcessMode的指针,用于接收进程模式。 |
返回:
| 类型 | 说明 |
|---|---|
| AbilityRuntime_ErrorCode | 返回特定的错误码。 ABILITY_RUNTIME_ERROR_CODE_NO_ERROR 接口调用成功。 ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID extensionInfo或processMode为空。 |
OH_AbilityRuntime_GetModularObjectExtensionInfoThreadMode()
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetModularObjectExtensionInfoThreadMode(OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo, OH_AbilityRuntime_ThreadMode *threadMode)
描述
从指定的ModularObjectExtensionAbility信息中获取线程模式。
起始版本: 26.0.0
参数:
| 参数项 | 描述 |
|---|---|
| OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo | 目标ModularObjectExtensionAbility的信息句柄。 |
| OH_AbilityRuntime_ThreadMode *threadMode | 指向OH_AbilityRuntime_ThreadMode的指针,用于接收线程模式。 |
返回:
| 类型 | 说明 |
|---|---|
| AbilityRuntime_ErrorCode | 返回特定的错误码。 ABILITY_RUNTIME_ERROR_CODE_NO_ERROR 接口调用成功。 ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID extensionInfo或threadMode为空。 |
OH_AbilityRuntime_GetModularObjectExtensionInfoElementName()
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetModularObjectExtensionInfoElementName(OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo, AbilityBase_Element *element)
描述
从指定的ModularObjectExtensionAbility信息中获取组件名称(AbilityBase_Element)。
起始版本: 26.0.0
参数:
| 参数项 | 描述 |
|---|---|
| OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo | 目标ModularObjectExtensionAbility的信息句柄。 |
| AbilityBase_Element *element | 指向AbilityBase_Element的指针,用于接收组件名称。 |
返回:
| 类型 | 说明 |
|---|---|
| AbilityRuntime_ErrorCode | 返回特定的错误码。 ABILITY_RUNTIME_ERROR_CODE_NO_ERROR 接口调用成功。 ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID extensionInfo或element为空。 |
OH_AbilityRuntime_GetModularObjectExtensionInfoDisableState()
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetModularObjectExtensionInfoDisableState(OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo, bool *isDisabled)
描述
从指定的ModularObjectExtensionAbility信息中获取禁用状态。
起始版本: 26.0.0
参数:
| 参数项 | 描述 |
|---|---|
| OH_AbilityRuntime_ModObjExtensionInfoHandle extensionInfo | 目标ModularObjectExtensionAbility的信息句柄。 |
| bool *isDisabled | 指向布尔值的指针,用于接收禁用状态。true表示已禁用,不允许其他应用连接;false表示未禁用,允许其他应用连接。 |
返回:
| 类型 | 说明 |
|---|---|
| AbilityRuntime_ErrorCode | 返回特定的错误码。 ABILITY_RUNTIME_ERROR_CODE_NO_ERROR 接口调用成功。 ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID extensionInfo或isDisabled为空。 |
OH_AbilityRuntime_AcquireSelfModularObjectExtensionInfos()
AbilityRuntime_ErrorCode OH_AbilityRuntime_AcquireSelfModularObjectExtensionInfos(OH_AbilityRuntime_AllModObjExtensionInfosHandle *outOwnedAllExtensionInfos)
描述
获取当前应用所有已注册的ModularObjectExtensionAbility信息。该接口返回一个包含当前应用所有已注册的ModularObjectExtensionAbility信息集合句柄。开发者可通过OH_AbilityRuntime_GetCountFromAllModObjExtensionInfos和OH_AbilityRuntime_GetModObjExtensionInfoByIndex遍历集合中的各个ModularObjectExtensionAbility信息,进而获取每个ModularObjectExtensionAbility的启动模式、进程模式、线程模式等属性。
起始版本: 26.0.0
设备行为差异:该接口仅在PC/2in1设备中可正常调用,在其他设备中返回ABILITY_RUNTIME_ERROR_CODE_NOT_SUPPORTED错误码。
参数:
| 参数项 | 描述 |
|---|---|
| OH_AbilityRuntime_AllModObjExtensionInfosHandle *outOwnedAllExtensionInfos | 指向OH_AbilityRuntime_AllModObjExtensionInfosHandle的指针,用于接收ModularObjectExtensionAbility信息集合。 |
返回:
| 类型 | 说明 |
|---|---|
| AbilityRuntime_ErrorCode | 返回特定的错误码。 ABILITY_RUNTIME_ERROR_CODE_NO_ERROR 接口调用成功。 ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID outOwnedAllExtensionInfos为空。 ABILITY_RUNTIME_ERROR_CODE_NOT_SUPPORTED 设备不支持该操作。 |
OH_AbilityRuntime_ReleaseAllExtensionInfos()
AbilityRuntime_ErrorCode OH_AbilityRuntime_ReleaseAllExtensionInfos(OH_AbilityRuntime_AllModObjExtensionInfosHandle *allExtensionInfos)
描述
释放由OH_AbilityRuntime_AcquireSelfModularObjectExtensionInfos获取的ModularObjectExtensionAbility信息集合。当不再需要使用ModularObjectExtensionAbility信息集合时,必须调用此接口释放相关资源,避免内存泄漏。
起始版本: 26.0.0
参数:
| 参数项 | 描述 |
|---|---|
| OH_AbilityRuntime_AllModObjExtensionInfosHandle *allExtensionInfos | 指向需要释放的ModularObjectExtensionAbility信息集合句柄的指针。释放后该指针将被置空。 |
返回:
| 类型 | 说明 |
|---|---|
| AbilityRuntime_ErrorCode | 返回特定的错误码。 ABILITY_RUNTIME_ERROR_CODE_NO_ERROR 接口调用成功。 ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID allExtensionInfos为空。 |
参考:
OH_AbilityRuntime_AcquireSelfModularObjectExtensionInfos
OH_AbilityRuntime_GetCountFromAllModObjExtensionInfos()
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetCountFromAllModObjExtensionInfos(OH_AbilityRuntime_AllModObjExtensionInfosHandle allExtensionInfos, size_t *count)
描述
获取ModularObjectExtensionAbility信息集合中包含的ModularObjectExtensionAbility信息数量。返回的数量可用于确定遍历集合时的索引上限,配合OH_AbilityRuntime_GetModObjExtensionInfoByIndex逐个访问集合中的ModularObjectExtensionAbility信息。
起始版本: 26.0.0
参数:
| 参数项 | 描述 |
|---|---|
| OH_AbilityRuntime_AllModObjExtensionInfosHandle allExtensionInfos | ModularObjectExtensionAbility信息集合句柄。 |
| size_t *count | 指向size_t的指针,用于接收ModularObjectExtensionAbility信息的数量。 |
返回:
| 类型 | 说明 |
|---|---|
| AbilityRuntime_ErrorCode | 返回特定的错误码。 ABILITY_RUNTIME_ERROR_CODE_NO_ERROR 接口调用成功。 ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID allExtensionInfos或count为空。 |
OH_AbilityRuntime_GetModObjExtensionInfoByIndex()
AbilityRuntime_ErrorCode OH_AbilityRuntime_GetModObjExtensionInfoByIndex(OH_AbilityRuntime_AllModObjExtensionInfosHandle allExtensionInfos, size_t index, OH_AbilityRuntime_ModObjExtensionInfoHandle *extensionInfo)
描述
根据索引从ModularObjectExtensionAbility信息集合中获取指定的ModularObjectExtensionAbility信息。索引的有效范围为[0, count),其中count可通过OH_AbilityRuntime_GetCountFromAllModObjExtensionInfos获取。获取到的ModularObjectExtensionAbility信息句柄可用于查询该ModularObjectExtensionAbility的启动模式、进程模式、线程模式等属性。
起始版本: 26.0.0
参数:
| 参数项 | 描述 |
|---|---|
| OH_AbilityRuntime_AllModObjExtensionInfosHandle allExtensionInfos | ModularObjectExtensionAbility信息集合句柄。 |
| size_t index | 目标ModularObjectExtensionAbility信息在集合中的索引,必须小于集合包含的ModularObjectExtensionAbility信息数量。 |
| OH_AbilityRuntime_ModObjExtensionInfoHandle *extensionInfo | 指向OH_AbilityRuntime_ModObjExtensionInfoHandle的指针,用于接收指定索引处的ModularObjectExtensionAbility信息句柄。 |
返回:
| 类型 | 说明 |
|---|---|
| AbilityRuntime_ErrorCode | 返回特定的错误码。 ABILITY_RUNTIME_ERROR_CODE_NO_ERROR 接口调用成功。 ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID allExtensionInfos或extensionInfo为空, 或index大于等于集合中ModularObjectExtensionAbility信息数量。 |
你可能感兴趣的鸿蒙文章
openharmony 鸿蒙 js-apis-app-ability-appServiceExtensionAbility
openharmony 鸿蒙 js-apis-inner-wantAgent-triggerInfo-sys
openharmony 鸿蒙 js-apis-inner-wantAgent-wantAgentInfo-sys
openharmony 鸿蒙 js-apis-appControl-sys
openharmony 鸿蒙 js-apis-app-ability-environmentCallback
openharmony 鸿蒙 js-apis-inner-application-missionInfo-sys
openharmony 鸿蒙 js-apis-bundleManager-sharedBundleInfo-sys
openharmony 鸿蒙 js-apis-inner-application-continueMissionInfo-sys
openharmony 鸿蒙 js-apis-inner-application-appServiceExtensionContext
openharmony 鸿蒙 js-apis-bundleManager-businessAbilityInfo-sys