stage模型与FA模型的区别

427 阅读2分钟

前言

为了统一大家的开发模式和习惯,HarmonyOS对应用程序所需能力做了一层提取封装,并向外提供必备的组件和运行机制,开发者可以基于一套统一的模型进行应用开发,这一套流程被称作应用模型。应用模型目前有FA和Stage两个模型。

FA模型

API8及其更早版本的应用程序只能使用FA模型进行开发,已经不再主推。

  • 应用组件有,PageAbility组件:提供展示UI的能力;ServiceAbility组件:提供后台服务的能力,无UI界面;DataAbility组件:提供数据分享的能力,无UI界面
  • 每个应用组件实例运行在一个单独的ArkTS引擎实例中。
  • 通过导出匿名对象、固定入口文件的方式指定应用组件。开发者无法进行派生,不利于扩展能力。每个应用组件实例运

Stage模型

API9版本开始新增的模型,是目前主推且会长期演进的模型。

  • 应用组件有,UIAbility组件:提供展示UI的能力;ExtensionAbility组件:提供特定场景(如卡片、输入法)的扩展能力,满足更多的使用场景。
  • 多个应用组件共享同一个ArkTS引擎(运行ArkTS语言的虚拟机)实例,方便状态共享,性能更好。
  • 采用面向对象的开发方式,使得复杂应用代码可读性高、易维护性好、可扩展性强。
  • 应用组件管理和窗口管理在架构层面解耦,使用场景更灵活。
  • 提供特殊场景的(如卡片、输入法)的应用组件,规范了后台进程管理。
  • 采用面向对象的方式,将应用组件以类接口的形式开放给开发者,可以进行派生,利于扩展能力。

总结

通过对比Stage更适合一些复杂场景,性能更好,功能更强大。也是后续官方主推的模型。选择优先级更高。了解更多移步官方文档