1-1.【Stage 模型】Stage 模型与 FA 模型的本质差异是什么?Stage 在多设备协同场景下解决了什么问题?

3 阅读2分钟

1️⃣ Stage 模型与 FA 模型的本质差异

维度FA 模型(旧)Stage 模型(新)差异与优化点
核心抽象Ability + PageAbilityAbility + WindowStage + PageStage 将页面和窗口分离,引入 WindowStage,支持多窗口和多设备流转。
生命周期管理Ability 生命周期与页面高度耦合Ability 生命周期与 WindowStage 生命周期分离页面可以独立创建/销毁,不必销毁整个 Ability;资源管理更精细。
多实例支持PageAbility 对 Ability 实例强绑定WindowStage 支持多实例可以在同一 Ability 下存在多个独立 WindowStage,实现多窗口、多任务场景。
多设备协同支持能力有限原生支持 Ability ContinuationAbility 状态可序列化并迁移到另一设备,跨设备延续用户操作。
UI 渲染页面直接依赖 Ability页面绑定 WindowStageUI 与窗口解耦,支持分屏、折叠屏、桌面小窗等复杂场景。
模块化HAP 与 FA 强耦合Stage 支持多 HAP + 独立 WindowStage多模块可按需加载,跨 HAP 页面跳转更灵活。

总结:Stage 模型本质上是 能力(Ability)与窗口(WindowStage)解耦的进化版本,它解决了 FA 模型中生命周期耦合、页面管理不灵活、多设备协同能力弱的问题。


2️⃣ Stage 在多设备协同场景下解决的问题

  1. Ability Continuation(能力延续)

    • 可以将当前 Ability 的状态、页面栈、UI 状态序列化,迁移到另一设备继续操作。
    • 例如:手机上编辑文档,用户切换到平板,文档状态无缝延续。
  2. 状态同步与恢复

    • Stage 模型通过 WindowStage 维护独立 UI 状态,可以精确恢复页面布局和用户操作历史。
    • 避免了 FA 模型中跨设备恢复时“整个 Ability 重启”的问题。
  3. 多设备多窗口支持

    • Stage 可以在不同设备上创建独立 WindowStage 实例,实现多屏显示、跨设备协作。
    • UI 层与业务能力层解耦,不同设备可同时操作不同窗口实例。
  4. 模块化与动态加载

    • Stage 支持 HAP 按需加载和多模块跳转,跨设备能力迁移时无需完整下载所有模块,提高效率。

总结:Stage 模型在多设备协同下,使 跨设备能力迁移、UI 状态保持、窗口独立管理成为可能,用户体验更自然,工程实现更灵活。