赞
踩
进程是计算机中运行的程序的实例。它是操作系统对正在执行的程序的一种抽象概念。每个进程都有自己的独立内存空间、运行状态和执行上下文。进程可以包含一个或多个线程,每个线程可以独立执行一部分任务。操作系统通过分配和管理进程资源来实现多任务和并发执行。进程之间可以通过进程间通信机制进行数据交换和协作。
在HarmonyOS中,应用的进程模型是基于多线程的。每个应用会运行在一个独立的进程中,并且应用中的所有UIAbility(即应用的界面部分)会运行在同一个进程中。这意味着应用中的不同界面之间可以通过共享内存和消息传递等方式进行通信。
另外,HarmonyOS中的WebView拥有独立的渲染进程。这是为了提高浏览器的安全性和稳定性。通过将WebView的渲染过程与应用的进程隔离开来,避免了恶意网页对应用进行攻击或造成应用崩溃的情况。
HarmonyOS的进程模型是基于多线程的,应用的界面部分运行在同一个进程中,而WebView拥有独立的渲染进程。这样可以提高应用的安全性和稳定性。
HarmonyOS的公共事件服务(Common Event Service,CES)是一种机制,可以为应用程序提供订阅、发布和退订公共事件的能力。这个服务使得不同应用程序之间可以进行事件的交互和通信。
通过CES,应用程序可以定义自己的事件,并将这些事件发布到系统的事件总线上。其他应用程序可以通过订阅感兴趣的事件来接收相关的通知。当有事件发生时,发布者会将事件信息发送到事件总线,然后事件总线会将这些信息传递给所有订阅者。
CES提供了一种可靠的事件通信机制,可以在不同的应用程序之间进行事件的交互。这样,应用程序可以更方便地实现功能的集成和扩展。
在CES中,事件是以消息的形式进行传递的,可以包含任意类型的数据。应用程序可以根据需要定义不同类型的事件,并指定事件的触发条件和处理方式。
公共事件从系统角度可分为:系统公共事件和自定义公共事件
类型 | 描述 | 示例 |
---|---|---|
系统公共事件 | CES内部定义的公共事件,只有系统应用和系统服务才能发布 | HAP安装、更新、卸载等 |
自定义公共事件 | 应用自定义一些公共事件用来实现跨进程的事件通信能力 | 应用间数据传递、状态更新等 |
公共事件按发送方式可分为:无序公共事件、有序公共事件和粘性公共事件
类型 | 描述 |
---|---|
无序公共事件 | CES转发公共事件时,不考虑订阅者是否接收到,且订阅者接收到的顺序与其订阅顺序无关。 |
有序公共事件 | CES转发公共事件时,根据订阅者设置的优先级等级,优先将公共事件发送给优先级较高的订阅者,等待其成功接收该公共事件之后再将事件发送给优先级较低的订阅者。如果有多个订阅者具有相同的优先级,则他们将随机接收到公共事件。 |
粘性公共事件 | 能够让订阅者收到在订阅前已经发送的公共事件就是粘性公共事件。普通的公共事件只能在订阅后发送才能收到,而粘性公共事件的特殊性就是可以先发送后订阅。发送粘性事件必须是系统应用或系统服务,且需要申请ohos.permission.COMMONEVENT_STICKY权限,配置方式请参阅访问控制授权申请指导。 |
订阅是指在发布者-订阅者模式中,订阅者向发布者注册,以接收发布者发送的消息或事件。订阅者可以选择订阅他们感兴趣的特定主题或类型的消息。
在发布订阅模式中,订阅者需要执行以下步骤来进行订阅:
订阅者可以随时选择取消订阅,以停止接收发布者的消息。取消订阅通常通过调用发布者的取消订阅方法,并传递订阅者对象或函数作为参数来完成。
通过发布订阅模式,订阅者可以实现松耦合的消息传递,提高系统的可扩展性和灵活性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。