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

相关推荐
ajassi200041 分钟前
开源 Arkts 鸿蒙应用 开发(十七)通讯--http多文件下载
华为·开源·harmonyos
前端世界1 小时前
在鸿蒙里优雅地处理网络错误:从 Demo 到实战案例
网络·华为·harmonyos
changsanjiang1 小时前
鸿蒙 音视频边播放边缓存
harmonyos
Georgewu5 小时前
【HarmonyOS】应用调用相机功能(扫码,自定义相机,人脸活体检测等)显示黑屏
harmonyos
文博知浅6 小时前
时隔4个月,500+star,鸿蒙ArkTS vscode插件1.x已发布🎉完全重构,补全、类型提示、SDK下载管理切换一应俱全,更多新功能正在规划中...
前端·javascript·harmonyos
Georgewu6 小时前
【HarmonyOS】应用设置全屏和安全区域详解
harmonyos
li理6 小时前
鸿蒙Next路由指南:核心API解析与高频问题攻坚
harmonyos
嘤嘤嘤*7 小时前
鸿蒙自带组件效果大全
华为·harmonyos
zhanshuo16 小时前
鸿蒙 ArkTS 自定义组件全攻略:从按钮到商品卡片一步步搞定
harmonyos
zhanshuo16 小时前
HarmonyOS 推送通知开发实战:从权限申请到多场景应用的完整指南
harmonyos