OpenHarmony开源鸿蒙学习入门–Ability和Stage基本概念理解Ability是什么?在OpenHarmony中,Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件,一个应用可以包含一个或多个Ability。 类似Android中的Application和Activity的融合。 了解过商业鸿蒙,HarmonyOS的同学应该会很熟悉Ability。作为本是同根生的两个系统,不管是在框架上还是在组件定义上都有很强的相似性。但是也需要注意,两者还是有区别的,一定不能混淆。 FA和Stage又是什么?在OpenHarmony中,Ability框架模型结构具有两种形态,FA和Stage: (1)FA模型 FA模型将Ability分为FA(Feature Ability)和PA(Particle Ability)两种类型,其中FA支持Page Ability,PA支持Service Ability、Data Ability、以及FormAbility;
FA模型的包结构: (2)Stage模型 第二种形态为Stage模型。从API 9开始,Ability框架引入了Stage模型作为第二种应用形态。 Stage模型将Ability分为Ability和ExtensionAbility两大类,其中ExtensionAbility又被扩展为ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等等一系列ExtensionAbility,以便满足更多的使用场景。 Stage模型的设计基于如下三个出发点:
Stage模型的设计,主要是为了方便开发者更加方便地开发出分布式环境下的复杂应用。 FA和Stage两种模型的差异?下表给出了两种模型在设计上的差异:
(1)进程线程共享的区别: 应用独享独立进程,Ability独享独立线程,应用进程在Ability第一次启动时创建,并为启动的Ability创建线程,应用启动后再启动应用内其他Ability,会为每一个Ability创建相应的线程。每个Ability绑定一个独立的JSRuntime实例,因此Ability之间是隔离的。 (2)Ability类型存在差异; (3)Ability生命周期存在差异; |
|
来自: 创始元灵6666 > 《openHarmony》