HarmonyOS 鸿蒙Next中通信API区别
EventHub
模块提供了事件中心,提供订阅、取消订阅、触发事件的能力。
特点:
- 通过context直接获取,作用范围与使用的context等价
Emitter
模块提供了在同一进程不同线程间,或同一进程同一线程内,发送和处理事件的能力,包括持续订阅事件、单次订阅事件、取消订阅事件,以及发送事件到事件队列的能力。
特点:
- 可以与worker搭配使用
commonEventManager
模块提供了公共事件相关的能力,包括发布公共事件、订阅公共事件、以及退订公共事件。
特点:
- 订阅系统的公共事件,比如低电量提示、开始充电等。
- 应用间通信,可以添加权限管控。
如何选择
- 主线程内通信:EventHub
- 主线程与Worker间通信:Emitter
- 应用间通信:commonEventManager
- 获取系统公共事件信息(低电量、充电信息):commonEventManager
commonEventManager 比如在多个线程订阅了事件,当事件发布时,多个线程都会响应
项目跨页面等消息通知推荐Emitter
更多关于HarmonyOS 鸿蒙Next中通信API区别的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙)Next中,通信API根据应用场景和功能需求被划分为不同的模块。主要区别如下:
-
IPC通信:用于进程间通信,支持跨进程调用,基于Binder机制实现,适用于高性能、低延迟的通信需求。
-
RPC通信:远程过程调用,支持跨设备通信,基于分布式能力实现,适用于设备间协同工作场景。
-
Socket通信:提供传统的TCP/UDP通信接口,适用于需要直接管理网络连接的场景。
-
消息队列:支持异步通信,适用于解耦生产者和消费者,提高系统响应速度和吞吐量。
-
事件总线:提供发布/订阅模式,适用于组件间松耦合的通信,支持跨线程、跨进程事件传递。
-
分布式数据管理:支持跨设备数据同步和共享,适用于多设备间的数据一致性维护。
每种通信API都有其特定的应用场景和性能特点,开发者需根据具体需求选择合适的通信方式。
在HarmonyOS(鸿蒙)Next中,通信API主要包括以下几种,各自有明确的用途和场景:
- 分布式数据管理(Distributed Data Management):用于跨设备数据共享和同步,支持分布式数据库和文件系统。
- 分布式任务调度(Distributed Task Scheduling):实现跨设备的任务调度和协同工作,确保任务在合适的设备上执行。
- 分布式软总线(Distributed Soft Bus):提供设备间通信的基础设施,支持设备发现、连接和数据传输。
- RPC(Remote Procedure Call):用于跨设备的远程方法调用,支持同步和异步通信。
- 消息队列(Message Queue):支持设备间的消息传递,确保消息的可靠性和顺序性。
这些API共同构建了HarmonyOS的分布式能力,确保设备间的高效通信和协同工作。