- 应用模型是HarmonyOS为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。
- 随着系统的演进发展,HarmonyOS先后提供了两种应用模型:
2.1 FA(Feature Ability)模型:HarmonyOS早期版本开始支持的模型,已经不再主推。
2.2 Stage模型:HarmonyOS 3.1 Developer Preview版本开始新增的模型,是目前主推且会长期演进的模型。
在该模型中,由于提供了 AbilityStage、WindowStage 等类作为应用组件和Window窗口的“舞台”,因此称这种应用模型为Stage模型。
Stage 模型
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/036b0b9c434d495fbae1a159b55c5140.png#pic_center)
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/dfdb6945565e457185baf7c3a7dc76e1.png#pic_center)
1. Stage 模型应用/组件级配置文件
- 基于 Stage 模型创建的工程,有俩个重要的配置文件,一个是应用级的配置文件
app.json5
,另一个是模块级的module.json5
。 - app.json5 用于配置整个应用的基本信息,包括应用的包名、开发商、版本号等。
app.json5配置文件 - module.json5 用于配置当前模块的各种信息,包括基本信息(例如名称、类型、描述、支持的设备类型等)、Ability 组件信息、所需权限等。
module.json5配置文件 - 在鸿蒙应用中,桌面上启动的图标以 UIAbility 为粒度,支持同一个应用存在多个启动图标,点击后会启动对应的 UIAbility,因此桌面图标需要在 module.json5 文件中对应的 Ability 中进行设置。
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"description": "$string:EntryAbility_desc",
"icon": "$media:layered_image",
"label": "$string:EntryAbility_label",
}
]
- 设置界面中的应用图标是以应用为粒度的,每个应用只能设置一个,需要在 app.json5 文件中配置。
{
"app": {
"bundleName": "com.example.englishpractice",
"vendor": "example",
"versionCode": 1000000,
"versionName": "1.0.0",
"icon": "$media:splash_logo3",
"label": "$string:app_name"
}
}
2 Stage 模型提供的 UIAbility 组件
UIAbility 组件生命周期函数
3 Stage 模型提供的 ExtensionAbility 组件