HarmonyOS应用开发Stage模型应用组件
- 1. 应用级配置
- 2. Module级配置
- 3. Stage模型的组件
- 3.1 AbilityStage
- 3.1.1 AbilityStage的创建和配置
- 3.1.2 AbilityStage的生命周期回调
- 3.1.3 AbilityStage的事件回调:
 
- 3.2 UIAbility
- 3.2.1 UIAbility生命周期
- 3.2.3 UIAbility启动模式
 
 
1. 应用级配置
应用级配置在AppScope目录下的app.json5配置文件中。
- bundleName:用于标识应用的唯一性。
- icon:应用图标
- label:应用名称
- versionCode:用于标识应用的版本号
- versionName:版本号的文字描述
{"app": {"bundleName": "com.dake.myapplication","vendor": "example","versionCode": 1000000,"versionName": "1.0.0",// 读取resouces/media目录下app_icon"icon": "$media:app_icon",// 读取resouces/element目录下string.json文件中的app_name"label": "$string:app_name"}
}
2. Module级配置
Module级配置在Module_Name/src/main目录下的module.json5配置文件中。
- abilities:配置Ability
- deviceTypes:表明当前的Module支持在该设备上运行。
- requestPermissions:该标签用于声明需要申请权限的名称、申请权限的原因以及权限使用的场景。
{"module": {// module的名称"name": "entry",// module的类型"type": "entry","description": "$string:module_desc","mainElement": "EntryAbility","deviceTypes": ["phone","tablet"],"deliveryWithInstall": true,"installationFree": false,"pages": "$profile:main_pages","abilities": [{"name": "EntryAbility",// 指定UIAbility的类路径"srcEntry": "./ets/entryability/EntryAbility.ts","description": "$string:EntryAbility_desc",// 入口图标"icon": "$media:icon",// 入口名称"label": "$string:EntryAbility_label","startWindowIcon": "$media:icon","startWindowBackground": "$color:start_window_background","exported": true,"skills": [{"entities": ["entity.system.home"],"actions": ["action.system.home"]}]}]}
}
3. Stage模型的组件

3.1 AbilityStage
AbilityStage是一个Module级别的组件容器:
- 应用的HAP在首次加载时会创建一个AbilityStage实例,可以对该Module进行初始化等操作。
- 一个Module拥有一个AbilityStage
一个Module编译后生成一个HAP文件,详细了解可以查看另一篇博文:HarymonyOS应用程序包介绍
3.1.1 AbilityStage的创建和配置
DevEco Studio默认工程中未自动生成AbilityStage,如需要使用AbilityStage的能力,可以手动新建一个AbilityStage文件。
- 创建一个 ArkTS File
- 文件中创建一个类,并继承AbilityStage
- 在Module配置文件module.json5中配置
{"module": {// srcEntry指定AbilityStage的类路径"srcEntry": "./ets/myabilitystage/MyAbilityStage.ets",}
}
3.1.2 AbilityStage的生命周期回调
- onCreate():在开始加载对应 Module的第一个UIAbility实例之前会先创建 AbilityStage,并在 AbilityStage 创建完成之后执行其onCreate()生命周期回调。
3.1.3 AbilityStage的事件回调:
- onAcceptWant():UIAbility指定实例模式(specified)启动时候触发的事件回调。
- onConfigurationUpdated():当系统全局配置发生变更时触发的事件,系统语言、深浅色等,配置项目前均定义在 Configuration类中。
- onMemoryLevel():当系统调整内存时触发的事件。
3.2 UIAbility
UIAbility组件是一种包含UI的应用组件,主要用于和用户交互。
- UIAbility组件是系统调度的基本单元,为应用提供绘制界面的窗口。
- 一个应用可以包含一个或多个UIAbility组件
3.2.1 UIAbility生命周期
UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态。
 
- Create状态为在应用加载过程中,- UIAbility实例创建完成时触发,系统会调用- onCreate()回调。
- 进入Foreground状态之前,系统会创建一个WindowStage。WindowStage创建完成后会进入onWindowStageCreate()回调;UIAbility实例切换至前台时触发onForeground()回调。
- UIAbility实例切换至后台时触发- onBackground()回调。
- 在进入Destroy状态之前,UIAbility实例销毁之前,先进入WindowStage的onWindowStageDestroy()回调;UIAbility实例销毁时触发onDestroy()回调。
3.2.3 UIAbility启动模式
在Module的配置文件 module.json5 中配置
{"module": {"abilities": [{"launchType": "singleton"}]}
}
- singleton启动模式为单实例模式,默认启动模式。系统中只存在唯一一个该 UIAbility 实例。
- multiton启动模式为多实例模式,每次调用 startAbility()方法时,都会在应用进程中创建一个新的该类型 UIAbility 实例。
- specified启动模式为指定实例模式。