构建第一个ArkTS应用(Stage模型)-快速入门-入门 | 华为开发者联盟 (huawei.com)
鸿蒙开发两种模型
- FA模型:早期使用,现在不主推。
- Stage模型:推荐HarmonyOS4和HarmonyOS NEXT版本开发
从源码到编译到运行
@entry就是一个Ability类的一个模块。
编译期
源码中的所有Ability模块全会编译成为.HAP(Harmony Ability Package)文件;所有的Library模块,会被编译为.HSP(Harmony Shared Package)文件。
HAP包再运行中就可以引用HSP包,一个应用,只能有一个入口模块--Entry类型的HAP,剩下的叫做Feature类型的HAP。
多个HAP文件合并到一起之后变成一个Bundle,可以理解为一个应用的唯一标识。最后这个bundle会被合并打包成为一个.app。
采用多HAP文件原因:
- 为了降低各功能模块之间的耦合性,每个模块都可以独立运行。
- 再安装应用时,可以选择性的安装。
运行期
运行期每一个HAP包文件会生成一个AbilityStage,被称为组件的“舞台”。又分为很多类型,其中UIAbility——应用的UI界面的应用组件,是系统调度的基本单元;ExtensionAbility(应用卡片、输入法等)。
UIStage展示
UIStage展示时,并不是直接展示,而是持有一个WindowsStage对象,WindowsStage是一个组件内窗口的“舞台”。
UIStage-->WindowStage-->Window-->ArkUI Page
Window窗口用来绘制UI页面的窗口,将组件和窗口解耦,适用于跨设备多端使用。
Stage模型的概述
文章参考:OpenHarmony应用开发-应用模型与Stage模型开发指导-鸿蒙开发者社区-51CTO.COM
HarmonyOS Stage模型是华为在HarmonyOS 3.1版本ÿ