鸿蒙中 process 进程的配置与控制
HarmonyOS采用多进程架构设计,应用组件可灵活分布在各类进程中。系统支持主进程、ExtensionAbility进程、Render进程等基础类型,还提供模块独立进程、动态/静态指定进程等高级配置方式。开发人员可通过module.json5文件设置isolationMode、process等字段,或使用childProcessManager接口创建子进程。进程生命周期与其中的Ability组件
本文同步发表于我的微信公众号,微信搜索 程语新视界 即可关注,每个工作日都有文章更新
一、进程gai念
进程是操作系统进行资源分配的基本单位,也是操作系统结构的基础。在 HarmonyOS 中,一个应用可以由多个 UIAbility 和 ExtensionAbility 组件构成,这些组件在运行时可能分布在不同的进程中。
二、进程类型
1. 主进程
-
默认情况下,同一应用(Bundle 名称相同)的所有 UIAbility 组件都运行在同一个独立进程中,称为主进程。
-
例如,一个名为
com.example.myapp的应用,其所有 UIAbility 默认运行在同一个主进程中。
2. ExtensionAbility 进程
-
同一类型的所有 ExtensionAbility 组件(如 FormExtensionAbility、ShareExtensionAbility)运行在一个独立的进程中。
-
例如,所有 FormExtensionAbility 实例运行在 “FormExtensionAbility 进程” 中。
-
特别地,继承自 UIExtensionAbility 的组件可以为每个实例配置独立进程。
3. Render 进程
-
应用中使用的 Web 组件在运行时,系统会为其分配一个独立的 Render 进程,用于页面渲染。
注意:进程名称没有固定规则,不能用于业务逻辑判断。例如,输入法进程的名称可能是 com.example.myapp:input,但这并不是固定的。
三、其他进程类型(适用于 2in1 和 Tablet 设备)
1. 模块独立进程
-
对于多 HAP(HarmonyOS Ability Package)的应用,如果希望不同 HAP 的 UIAbility 运行在不同进程中,可以在
module.json5中配置:-
isolationMode: isolationOnly:只在独立进程中运行。 -
isolationMode: isolationFirst:优先在独立进程中运行。
-
-
例如,UIAbilityC 可以配置为运行在 “Main Process2” 而不是默认的 “Main Process1”。
2. 动态指定进程
-
当同一 HAP 中的 UIAbility 需要根据运行时状态(如每个进程最多支持 5 个实例)动态分配到不同进程时:
-
在
module.json5中设置该 UIAbility 的isolationProcess: true。 -
系统启动该 Ability 时,会回调主控进程的
onNewProcessRequest方法。 -
然后在该回调中返回一个自定义字符串,系统根据该字符串复用或创建新进程。
-
-
例如,UIAbilityD 可能运行在 “Main Process3” 或 “Main Process4” 中。
3. 静态指定进程
-
同一应用中的UIAbility或EmbeddedUIExtensionAbility需要运行到不同进程时,可以在
module.json5的abilities或extensionAbilities标签中设置process字段,指定 UIAbility 或 EmbeddedUIExtensionAbility 运行的进程。 -
如果多个组件配置了相同的
process字符串,它们将运行在同一个进程中。 -
例如,UIAbilityE 和 EmbeddedUIExtensionAbility 可以配置为运行在 “Main Process5” 中。
4. 子进程
-
可以使用
childProcessManager接口创建子进程,用于执行后台任务。 -
子进程的生命周期依赖于父进程,父进程结束时子进程也会被终止。
-
子进程不支持再创建子进程。
-
例如,主进程可以创建 “ArkTS Child Process” 或 “Native Child Process”。
四、进程与 Ability 的生命周期关系
-
一个进程可以包含多个 AbilityStage,一个 AbilityStage 可以包含多个 Ability。
-
进程的生命周期与其中运行的 Ability 密切相关:只有当进程中所有 Ability 都退出后,进程才会被销毁。
-
因此,要退出进程,必须先退出其中所有的 Ability。
五、配置说明
-
进程的分配和行为可以通过
module.json5配置文件进行灵活控制。 -
支持的配置项包括:
-
isolationMode -
isolationProcess -
process字段
-
-
应根据业务需求选择合适的进程模型,以优化资源使用和性能。
总结
HarmonyOS 提供了灵活的进程模型,支持主进程、ExtensionAbility 进程、Render 进程、模块独立进程、动态/静态指定进程以及子进程等多种类型。可以通过配置文件或运行时回调来控制组件的进程分配,从而实现资源隔离、性能优化和多任务处理。进程的生命周期与其中运行的 Ability 紧密相关,需合理设计以避免资源泄漏或进程残留。
更多推荐




所有评论(0)