From 97755fc39b91d34a2ca5e97547bd4f8b48bffd1c Mon Sep 17 00:00:00 2001 From: yangzk Date: Sun, 25 May 2025 15:51:19 +0800 Subject: [PATCH] add inter-process-communication Signed-off-by: yangzk Change-Id: I789b7e1982f240e58ac1a7f9141d3b9216e74358 --- .../application-models/Readme-CN.md | 1 + .../inter-process-communication-stage.md | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 zh-cn/application-dev/application-models/inter-process-communication-stage.md diff --git a/zh-cn/application-dev/application-models/Readme-CN.md b/zh-cn/application-dev/application-models/Readme-CN.md index ae943323632..2a31092cf27 100644 --- a/zh-cn/application-dev/application-models/Readme-CN.md +++ b/zh-cn/application-dev/application-models/Readme-CN.md @@ -64,6 +64,7 @@ - [拉起文件处理类应用(startAbility)](file-processing-apps-startup.md) - [拉起系统应用](system-app-startup.md) - [进程模型](process-model-stage.md) + - [进程间通信](inter-process-communication-stage.md) - [线程模型](thread-model-stage.md) - 任务(Mission)管理(仅对系统应用开放) diff --git a/zh-cn/application-dev/application-models/inter-process-communication-stage.md b/zh-cn/application-dev/application-models/inter-process-communication-stage.md new file mode 100644 index 00000000000..c502f128bb9 --- /dev/null +++ b/zh-cn/application-dev/application-models/inter-process-communication-stage.md @@ -0,0 +1,43 @@ +# 进程间通信 + +## 概述 + +基于当前的进程模型,针对应用间和应用内存在多个进程的情况,系统提供了如下进程间通信机制: + +| 进程间通信机制 | 简介 | 使用场景 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| [公共事件机制](../basic-services/common-event/common-event-overview.md) | 提供了订阅、发布、退订公共事件的能力。每个应用都可以按需订阅公共事件,订阅成功后,当公共事件发布时,系统会将其发送给对应的应用。这些公共事件可能来自系统、其他应用和应用自身。 | 多用于一对多的通信场景,公共事件发布者可能存在多个订阅者同时接收事件。 | +| [Local Socket机制](../network/socket-connection.md#应用通过localsocket进行数据传输) | 应用可以通过 Local Socket 与指定 Local Socket Server 进行数据传输。 | 多用于一对一的通信场景。 | +| [后台服务机制](#后台服务机制) | 应用可以实现后台服务,对外提供接口。其他应用可以连接该后台服务并获取到服务通信对象,然后通过该对象与后台服务通信。 | 通常提供给系统应用、2in1设备上的企业应用使用,当前不支持三方应用实现后台服务。 | + + + + +## 公共事件机制 + +公共事件从系统角度可分为:系统公共事件和自定义公共事件。 + +- 系统公共事件:公共事件服务内部定义的公共事件,当前仅支持系统应用和系统服务发布,例如HAP安装、更新、卸载等公共事件。目前支持的系统公共事件请参见[系统公共事件列表](../reference/apis-basic-services-kit/common_event/commonEventManager-definitions.md)。 +- 自定义公共事件:应用定义的公共事件,可用于实现跨进程的事件通信能力。 + +## Local Socket机制 + +应用可以通过socket模块[创建 Local Socket Server 服务端对象](../network/socket-connection.md#应用通过local-socket-server进行数据传输)。另一进程可以通过[创建一个 Local Socket 客户端对象](../network/socket-connection.md#应用通过localsocket进行数据传输)与之通信。 + +## 后台服务机制 + +应用可以通过 ServiceExtensionAbility 或 AppServiceExtensionAbility 组件提供后台服务。 + +### ServiceExtensionAbility + +系统应用可以[实现 ServiceExtensionAbility 后台服务](serviceextensionability.md#实现一个后台服务仅对系统应用开放),对外提供接口。 + +系统应用或者三方应用可以[连接](serviceextensionability.md#连接一个后台服务)该后台服务并获取到服务通信对象,然后通过该对象与后台服务通信。 + +### AppServiceExtensionAbility + +AppServiceExtensionAbility 当前仅支持2in1设备。 + +企业应用可以[实现 AppServiceExtensionAbility 后台服务](app-service-extension-ability.md#实现一个后台服务),对外提供接口。 + +企业应用或者三方应用可以[连接](app-service-extension-ability.md#连接一个后台服务)该后台服务并获取到服务通信对象,然后通过该对象与后台服务通信。 -- Gitee