1.基本概念
1.UIAbility组件 一种包含UI的应用组件,主要用于和用户交互
2.EntryAbility默认继承UIAbility
3.ExtentionAbility组件 是基于特定场景如服务卡片、输入法等提供的应用组件。每一个应用。每一个具体场景对应一个ExtentionAbilityType,开发者只能使用系统已经定义的类型,右键即可new一个
4.HAP 是应用安装的基本单位
5.AbilityStage:Module级别的组件容器,与HAP是一一对应的关系,可以管理UIAbility组件和ExtentionAbility组件
5.可以通过不同的Context调用对应资源
6.应用组件和窗口生命周期分离
业务逻辑和UI逻辑分离,例如数据库、蓝牙等等的连接都可以放在业务逻辑
便于系统裁剪,没有屏幕的设备可以直接去掉windowstage
在多设备上,应用组件可以使用一套生命周期
7.单设备上,切换任务场景时,生命周期变化举例
2.AbilityStage组件容器
1.是什么:Module级的组件容器,HAP的运行期类,最主要的能力就是初始化模块,以及对以指定实例模式启动的UIAbility组件进行匹配处理
2.通过四个函数使用其能力
1.onCreate AbilityStage实例创建完成后触发,模块初始化,资源加载,线程创建
2.onAcceptWant 指定实例模式启动UIAbility组件时触发 ,可返回其唯一key值,用于给系统判断实例是否已经存在(在UIAbility组件的启动模式章节张详细讲解)
3.onMemeoryLevel 系统调整内存时触发,可以在这里订阅内存的变化情况
4.onConfigurationUpdate 系统全局配置发生变化时触发的函数,可以在此函数中接受到最新的配置信息,例如获取目前系统的颜色模式
3.默认没有生成AbilityStage,需要手动创建
1.新建目录,新建AbilityStage文件,本质是ets文件,继承AbilityStage
2.配置HAP入口 在module.json5配置文件中,通过配置srcEntry参数来指定模块对应的代码路径,以作为HAP加载的入口
3.UIAbilit组件的启动模式
单实例模式
多实例模式
指定实例模式
4.UIAbility组件间的交互
通过Want进行交互,本质就是数据容器,分显式Want启动 和 隐式Want启动、显式需要在调用方页面配置Want各个属性,在被调用方接受want对象,并获取属性值,隐式,同显式原理差不多,多了一些配置而已