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

相关推荐
传奇开心果编程10 小时前
中庸、有容、破执:仓颉编程语言的中华智慧结晶——三重哲学境界思辨
开发语言·华为·开源·软件工程
李游Leo10 小时前
HarmonyOS 7 文搜图实战 04:图片增删、索引重建与异常恢复完善 SnapSeek 可维护性【鸿蒙心迹】
harmonyos
三掌柜66614 小时前
# ArkWeb 手记 03|把 JSBridge 做成协议
harmonyos
轻口味14 小时前
HarmonyOS 7 新特性5:平行视界——轻视界文集的两栏阅读与窗口状态边界矩阵真机实测
华为·矩阵·harmonyos·鸿蒙·平行视界
动物园猫14 小时前
Compose Multiplatform 三方库 compose-icons(Octicons)的 OpenHarmony 鸿蒙化适配实战
华为·ar·harmonyos
旺仔Sec15 小时前
2026年江西省职业院校技能大赛鸿蒙应用开发赛项竞赛任务书(高职组)样题
华为·harmonyos
曲鸟15 小时前
体验完鸿蒙AI后的几点感受
人工智能·华为·harmonyos
HwJack2016 小时前
【HarmonyOS开发小实践】Node-API 的SO 命名规则、多线程限制与调试
华为·harmonyos
LucianaiB16 小时前
用 HarmonyOS 做一张会写诗的月夜明信片:追月的完整开发复盘
华为·ai·harmonyos·skill
蒸鱼Yuzheng17 小时前
HarmonyOS HAP 与调试工件治理:包结构、版本身份与自动化证据链
自动化·性能测试·数据治理·harmonyos·hap