主进程,默认情况下,应用中(同一Bundle名称)的所有UIAbility均是运行在同一个独立进程(主进程)中,即图1中的“Main Process1”。学习鸿蒙中,遇到了一个问题怎么理解呢?#跟着万少学鸿蒙
主进程,默认情况下,应用中(同一Bundle名称)的所有UIAbility均是运行在同一个独立进程(主进程)中,即图1中的“Main Process1”。学习鸿蒙中,遇到了一个问题怎么理解呢?#跟着万少学鸿蒙
您需要先 登录 才能评论/回答
全部评论(1)
基本进程类型
开发者开发一个复杂功能的应用,包含多个UIAbility组件和多个ExtensionAbility组件,ExtensionAbility如图1中的FormExtensionAbility和ShareExtensionAbility。那么在应用运行态,可能存在的进程类型:
-
主进程:默认情况下,应用中(同一Bundle名称)的所有UIAbility均是运行在同一个独立进程(主进程)中,即图1中的“Main Process1”。
-
ExtensionAbility进程:应用中(同一Bundle名称)的所有同一类型ExtensionAbility均是运行在一个独立进程中,如图1中“FormExtensionAbility Process”、“其他类型ExtensionAbility Process”(其他类型的ExtensionAbility组件)。
特别地,对于继承自UIExtensionAbility的ExtensionAbility,可以为每个实例配置独立进程。例如ShareExtensionAbility可以指定每个ShareExtensionAbility实例分别运行在一个独立进程,详见UIExtensionAbility。
-
Render进程:应用中的Web组件运行时,系统会为之分配一个Render进程,用于渲染。如图1中的“Render Process”。
-
基本进程类型
-

- 进程名称的命名无固定规则,而且与进程类型也不存在直接关联,不能用于业务逻辑的判断。例如,开发者开发了一款应用com.example.myapplication,其中有一个输入法组件InputMethodExtensionAbility,输入法组件是运行在独立进程中的,通常情况下其进程名是为“com.example.myapplication:input”。但这并不是固定的,该进程名对应的进程不一定是输入法进程,输入法进程也不一定是该进程名。
- 一个进程可以包含多个AbilityStage,一个AbilityStage可以包含多个Ability。进程的生命周期与Ability生命周期息息相关,当进程内的所有Ability都退出后,进程才会走销毁流程。换句话说,如果想退出进程,需要先退出进程内的所有Ability。
#跟着万少学鸿蒙
2025-11-13 22:14:45