乐趣区

关于harmonyos:鸿蒙学习笔记Stage模型概述

「鸿蒙学习笔记」Stage 模型 – 概述

Stage 模型:HarmonyOS 3.1 Develper Preview 版本开始新增的模型,是目前主推且会长期演进的模型。在该模型中,因为提供了 AbilityStage、WindowStage 等类作为利用组件和 Window 窗口的“舞台”,因而称这种利用模型为 Stage 模型。

设计思维

Stage 模型之所以成为主推模型,源于其设计思维。Stage 模型的设计基于如下出发点。

  1. 为简单利用而设计

    • 多个利用组件共享同一个 ArkTS 引擎(运行 ArkTS 语言的虚拟机)实例,利用组件之间能够不便的共享对象和状态,同时缩小简单利用运行对内存的占用。
    • 采纳面向对象的开发方式,使得简单利用代码可读性高、易维护性好、可扩展性强。
  2. 反对多设施和多窗口状态

    利用组件治理和窗口治理在架构层面解耦:

    • 便于系统对利用组件进行裁剪(无屏设施可裁剪窗口)。
    • 便于零碎扩大窗口状态。
    • 在多设施(如桌面设施和挪动设施)上,利用组件可应用同一套生命周期。
  3. 均衡利用能力和零碎管控老本

    Stage 模型从新定义利用能力的边界,均衡利用能力和零碎管控老本。

    • 提供特定场景(如卡片、输入法)的利用组件,以便满足更多的应用场景。
    • 规范化后盾过程治理:为保障用户体验,Stage 模型对后盾利用过程进行了有序治理,应用程序不能随便驻留在后盾,同时利用后盾行为受到严格管理,避免歹意利用行为。

概述

  • UIAbility 组件和 ExtensionAbility 组件

Stage 模型提供 UIAbility 和 ExtensionAbility 两种类型的组件,这两种组件都有具体的类承载,反对面向对象的开发方式。

UIAbility 组件是一种蕴含 UI 界面的利用组件,次要用于和用户交互。例如,图库类利用能够在 UIAbility 组件中展现图片瀑布流,在用户抉择某个图片后,在新的页面中展现图片的具体内容。同时用户能够通过返回键返回到瀑布流页面。UIAbility 的生命周期只蕴含创立 / 销毁 / 前台 / 后盾等状态,与显示相干的状态通过 WindowStage 的事件裸露给开发者。

ExtensionAbility 组件是一种面向特定场景的利用组件。

  • WindowStage

每个 UIAbility 类实例都会与一个 WindowStage 类实例绑定,该类提供了利用过程内窗口管理器的作用。它蕴含一个主窗口。也就是说 UIAbility 通过 WindowStage 持有了一个窗口,该窗口为 ArkUI 提供了绘制区域。

  • Context

在 Stage 模型上,Context 及其派生类向开发者提供在运行期能够调用的各种能力。UIAbility 组件和各种 ExtensionAbility 派生类都有各自不同的 Context 类,他们都继承自基类 Context,然而各自又依据所属组件,提供不同的能力。

  • AbilityStage

每个 Entry 类型或者 Feature 类型的 HAP 在运行期都有一个 AbilityStage 类实例,当 HAP 中的代码首次被加载到过程中的时候,零碎会先创立 AbilityStage 实例。每个在该 HAP 中定义的 UIAbility 类,在实例化后都会与该实例产生关联。开发者能够应用 AbilityStage 获取该 HAP 中 UIAbility 实例的运行时信息。

利用与组件配置

在基于 Stage 模型开发的利用我的项目代码下,都存在一个 app.json5 及一个或多个 module.json5 这两种配置文件。

app.json5 次要蕴含以下内容:

  • 利用的全局配置信息,蕴含利用的包名、开发厂商、版本号等根本信息。
  • 特定设施类型的配置信息。

module.json5 次要蕴含以下内容:

  • Module 的根本配置信息,例如 Module 名称、类型、形容、反对的设施类型等根本信息。
  • 利用组件信息,蕴含 UIAbility 组件和 ExtensionAbility 组件的形容信息。
  • 利用运行过程中所需的权限信息。

参考

  • https://developer.harmonyos.com/cn/docs/documentation/doc-gui…
退出移动版