【鸿蒙】稍微理解一下Stage模型

鸿蒙的Stage模型是HarmonyOS多端统一的应用开发框架中的一个核心概念,用于描述应用的界面层次结构和组件之间的关系。下面将详细解析Stage模型的主要组成部分和特点:

  1. 模型组成

    • UIAbility组件:这是应用中负责绘制用户界面的组件,通过创建UIAbility组件可以实现应用的界面展示和用户交互的功能。UIAbility组件的生命周期包括Create、Foreground、Background、Destroy四个状态,每个状态都对应着特定的应用行为。
    • ExtensionAbility组件:这是一种非UI能力的组件,用于提供后台处理任务、访问系统资源、与外部设备交互等功能,与UIAbility组件相互配合完成应用的功能。ExtensionAbility有多种派生类,如用于卡片场景的FormExtensionAbility和用于输入法场景的InputMethodExtensionAbility等。
    • WindowStage:应用界面的顶层容器,负责管理应用界面的显示和布局。WindowStage可以包含一个或多个UIAbility组件,并负责协调它们之间的界面切换和交互。
    • Context:应用界面的上下文环境,通过Context对象可以获取应用的资源、系统服务和应用数据等。在WindowStage中的每个UIAbility组件都对应一个Context对象,用于提供界面相关的上下文信息。
    • AbilityStage:HarmonyOS应用的生命周期管理容器,负责管理应用的各个阶段(如创建、启动、暂停、恢复、停止等)。AbilityStage可以包含一个或多个WindowStage,用于管理多个应用界面的生命周期和切换。
  2. 模型特点

    • 跨设备通信:系统在拉起过程中,通过底层软总线的能力在两个组件实例之间建立跨设备的RPC连接,开发者在获取RPC接口后,即可进行跨设备通信。
    • 进程模型:Stage模型有三类进程,不支持应用自定义配置多进程,也不支持通过接口启动进程。开发者编写的UIAbility入口及其依赖的代码都在该进程中运行,由UIAbility组件的启动触发创建。
    • 事件订阅:通过发布订阅模式,订阅者可以实现松耦合的消息传递,提高系统的可扩展性和灵活性。无论是动态订阅还是静态订阅,订阅方都可以实现自己的业务逻辑来处理接收到的公共事件。
    • 生命周期管理:Stage模型基于场景的服务扩展、严格的后台管控机制和受限的进程模型,重新定义了应用能力边界,使进程环境从"无序"到"有序",规范了进程管理模型。
  3. 配置与应用

    • 应用需要在工程的AppScope目录下的app.json5配置文件中配置bundleName标签,用于标识应用的唯一性。同时,还需要配置应用图标、应用标签等。
    • UIAbility组件的配置包括名称、代码路径、描述信息、图标等,这些配置信息对于应用的功能和用户体验至关重要。

Stage模型的设计思想

1、为复杂应用而设计

多个应用组件共享同一个ArkTS引擎实例,应用组件之间可以方便共享对象和状态。

采用面向对象的开发方式,让复杂的应用代码可读性高、利于维护、可扩展性强。

2、支持多设备和多窗口形态

Stage模型的应用组件管理和窗口管理在架构层面上解耦,便于系统对应组件进行裁剪,比如无屏设备可以裁剪窗口;便于系统扩展窗口形态;在多设备上,应用组件可以使用同一套生命周期。

3、平衡应用能力和系统管控成本

Stage模型定义了应用能力的边界,平衡了应用能力和系统管控成本,比如:

  1. 提供特定场景的应用组件,以便于满足更多的使用场景,比如卡片、输入法
  2. 规范了后台进程管理:为保证用户体验,Stage模型对后台应用进程进行了有序治理,应用程序不能随意驻留在后台,应用后台行为也受到严格管理,防止恶意应用行为。

总结来说,鸿蒙的Stage模型是一个全面而强大的应用开发框架,它通过清晰的界面层次结构和组件关系,以及强大的跨设备通信、进程管理和事件订阅等能力,为开发者提供了极大的便利和灵活性,使得应用能够更加高效、稳定地运行在多端设备上。

相关推荐
ai安歌10 小时前
鸿蒙PC:Qt适配OpenHarmony实战【取色间】:RGB 滑动调整、HEX 展示和颜色预览
qt·华为·harmonyos
lqj_本人11 小时前
鸿蒙electron跨端框架PC想法卡片实战:把零散灵感做成能继续展开的卡片流
华为·electron·harmonyos
专注前端30年12 小时前
2025-2026 大厂 Vue2Vue3 高频面试题 Top100
百度·华为·大厂面试题·阿里·前端vue2/3
lqj_本人14 小时前
鸿蒙electron跨端框架PC浮签实战:做一面轻巧但能回找的桌面便签墙
华为·harmonyos
ai安歌14 小时前
鸿蒙PC:Qt适配OpenHarmony实战【人名录】:单机联系人卡片,不读系统通讯录也能演示详情联动
数据库·qt·harmonyos
lqj_本人15 小时前
鸿蒙electron跨端框架PC简序实战:把轻任务、优先级和截止时间塞进一张桌面清单
华为·harmonyos
想你依然心痛16 小时前
HarmonyOS 6 悬浮导航 + 沉浸光感:打造鸿蒙智能体驱动的沉浸式智能家居控制中枢
华为·ar·智能家居·harmonyos·智能体
lqj_本人16 小时前
鸿蒙PC:Qt适配OpenHarmony实战【花账】:从一笔支出开始,做一个本地记账小应用
数据库·qt·harmonyos
递归40416 小时前
ofdkit-harmony 0.2.0 发布:鸿蒙原生 OFD 阅读库,已上架 ohpm
开源·harmonyos·arkts·ofd·ohpm
nashane17 小时前
HarmonyOS 6学习:SoundPool音频防抖与Web长截图时序重构
学习·音视频·harmonyos·harmonyos 5