基本概念
UIAbility组件是一种包含UI的应用组件,主要用于和用户交互。
在项目创建时,系统默认生成的EntryAbility类继承了UIAbility类。
ExtensionAbility组件:是基于特定场景(例如服务卡片、输入法等)提供的应用组件。每一个具体场景对应一个ExtensionAbilityType,开发者只能使用系统已定义的类型。
在这里可以直接创建不同类型的ExtensionAbility组件文件
HAP:应用安装的基本单位,一个APP可以包含一个或多个HAP。
包含UIAbility组件或者ExtensionAbility组件的Module可以单独运行。该类型Module运行时会编译生成一个.hap文件
AbilityStage:Module级别的组件容器。
当HAP中的代码首次被加载到进程中时(Module初始化),系统首先会创建一个AbilityStage实例,可以管理Module中的UIAbility组件和ExtensionAbility组件。
AbilityStage与编译期的HAP是一一对应的关系
在开发时,一个项目可能需要包含一个或者多个可以单独运行的Module,对应即为一个Application包含一个或多个AbilityStage。
在运行期,每个AbilityStage持有该Module上定义的UIAbility组件和ExtensionAbility组件。AbilityStage与Module一一对应,即一个Module拥有一个AbilityStage。
当UIAbility组件首次启动时,系统会为UIAbility组件创建实例,并将该实例与持有它的