“在科技的浪潮中,鸿蒙操作系统宛如一颗璀璨的新星,引领着创新的方向。作为鸿蒙开天组,今天我们将一同踏上鸿蒙基础的探索之旅,为您揭开这一神奇系统的神秘面纱。”
各位小伙伴们我们又见面了,我就是鸿蒙开天组,下面让我们进入今天的学习,鸿蒙进阶篇-Stage模型、UIAbility
在鸿蒙操作系统中:
Stage 模型:
Stage 模型是鸿蒙应用开发中的一种架构模型。它将应用的运行环境分为前台和后台两个阶段。前台阶段应用与用户进行交互,后台阶段应用可以进行一些轻量级的处理,如数据保存、资源释放等。Stage 模型有助于提高应用的性能和资源利用效率。
UIAbility:
UIAbility 是鸿蒙应用中实现用户界面和交互逻辑的基本单元。一个鸿蒙应用可以包含多个 UIAbility,每个 UIAbility 可以具有独立的页面和逻辑。UIAbility 负责处理页面的生命周期,响应用户操作,并与其他组件进行通信和协作,以提供完整的应用功能和用户体验。
总的来说,Stage 模型和 UIAbility 是鸿蒙开发中构建应用架构和实现功能的重要概念。
State 模型
应用模型是系统为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。
---------
简而言之:应用模型就是应用的施工图纸,规范化了程序的运行流程,项目的结构和文件的功能,咱们了解了这个模型之后就知道:
1实现某个功能时需要在哪个文件编码
2如何感知应用的状态变化(启动,关闭,切后台..)
3需要调整配置时又需要去哪个文件调整
注意:
随着系统的演进发展,先后提供了两种应用模型:
●FA(Feature Ability)模型:从API 7开始支持的模型,已经不再主推。
●Stage模型:从API 9开始新增的模型,是目前主推且会长期演进的模型。在该模型中,由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,因此称这种应用模型为Stage模型。
划重点:咱们目前只需要关注 Stage模型即可,后续没有特别标注指的就是 Stage 模型
核心构成
来看看主要组成部分有哪些
应用模型的构成要素包括:
1应用配置文件
2应用组件
3应用进程模型
4应用线程模型
5应用任务管理模型
咱们目前关注 应用配置文件 和 应用组件 即可,3、4、5 对应的内容会在后续课程中逐步讲解
Stage模型工程目录结构,咱们会在后续的课程中逐步认识内部各种文件的作用
●AppScope > app.json5:应用的全局配置信息。
●entry:HarmonyOS工程模块,编译构建生成一个HAP包。
○src > main > ets:用于存放ArkTS源码。
○src > main > ets > entryability:应用/服务的入口。
○src > main > ets > pages:应用/服务包含的页面。
○src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源分类与访问https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/resource-categories-and-access-0000001774119914。
○src > main > module.json5:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见module.json5配置文件https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/module-configuration-file-0000001820879553。
○build-profile.json5:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
○hvigorfile.ts:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
○obfuscation-rules.txt:混淆规则文件。混淆开启后,在使用Release模式进行编译时,会对代码进行编译、混淆及压缩处理,保护代码资产。详见开启代码混淆https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-build-obfuscation-0000001731754312。
●oh_modules:用于存放三方库依赖信息。
●build-profile.json5:应用级配置信息,包括签名signingConfigs、产品配置products等。其中products中可配置当前运行环境,默认为HarmonyOS。
●hvigorfile.ts:应用级编译构建任务脚本。
应用/组件级配置
应用配置
应用配置在工程的 AppScope 目录下的 app.json5 配置文件中
{"app": {"bundleName": "包名 不可省略","vendor": "应用开发厂商描述 不可省略","versionCode": 版本号,数值越大版本越高,"versionName": "给用户看的版本号","icon": "应用图标","label": "应用名"}
}
其中 icon 和 label 配置的都是资源索引,配置完毕之后重新运行即可生效
入口图标和标签配置
这部分的配置在模块对应的 module.json5 配置文件中进行
{"module": {..."abilities": [{"icon": "$media:icon","label": "$string:EntryAbility_label","skills": [{"entities": ["entity.system.home"],"actions": ["ohos.want.action.home"]}],}]}
}
目前项目中只有一个module( entry ),同时内部只有一个 ability,所以不用担心设置错误,设置完毕之后重新运行即可
UIAbility 组件
每一个UIAbility实例,都对应于一个最近任务列表中的任务。
UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。
一个应用可以有一个 UIAbility也可以有多个UIAbility,如图所示:
●单 UIAbility:任务列表只有一个任务,应用内部结合【多页面】的形式让用户进行的搜索和浏览内容,页面的跳转使用路由来实现即可(到目前为止咱们做的都是这种)
●多个 UIAbility:那么在任务列表中会有多个任务。比如【wps】
指定 UIAbility 的启动页面
在UIAbility的onWindowStageCreate()生命周期回调中,通过 WindowStage 对象的 loadContent() 方法设置启动页面。
import UIAbility from '@ohos.app.ability.UIAbility';
import window from '@ohos.window';export default class EntryAbility extends UIAbility {onWindowStageCreate(windowStage: window.WindowStage): void {// Main window is created, set main page for this abilitywindowStage.loadContent('pages/Index', (err, data) => {// ...});}// ...
}
注意:
1 windowStage.loadContent加载的页面,不可以用 / 开头
2加载的页面需要在 main_pages.json5 中存在
3出现页面白色的(上述 2 个问题)
UIAbility 组件的生命周期
当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列【回调函数】,如果需要在特定的时间添加自定义逻辑,往对应的回调函数内添加代码即可
UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,如下图所示。
●onCreate:Ability创建时回调,执行初始化业务逻辑操作。
●onDestory:Ability生命周期回调,在销毁时回调,执行资源清理等操作。
●onWindowStageCreate:
○当WindowStage(窗口管理器)创建后调用。
○内部通过 windowStage.loadContent 加载页面
●onWindowStageDestory:当WindowStage销毁后调用。
●onForeground:Ability生命周期回调,当应用从后台转到前台时触发。
●onBackground:Ability生命周期回调,当应用从前台转到后台时触发
以上是关于鸿蒙进阶篇- Stage模型、UIAbility综合的一些内容,方便大家学习,至此,关于鸿蒙进阶篇-Stage模型、UIAbility综合的内容就介绍到这里,愿您能学以致用,开发出精彩的鸿蒙应用!
以上内容仅供学习交流,如有违法或者侵权可以联系删除。