当前位置: 首页 > news >正文

OpenHarmony Ability“全家桶”彻底拆解:从UIAbility到ExtensionAbility一文说清楚

1. 模型定位与演进

方向 FA(API≤8) Stage(API≥9)
设计目标 轻量化单设备 复杂多设备、低内存、原生分布式
核心思想 Ability = UI + 业务 UI 与 Ability 解耦,统一进程共享引擎,组件级迁移
能力边界 固定三种 Ability 可无限派生 ExtensionAbility,系统能力即插即用

FA 模型中固定的 Page、Service、Data 三种类型不同,
Stage 模型将 Ability 主要分为两大类:UIAbility 和ExtensionAbility

OpenHarmony 自 API 9 版本起引入了全新的应用模型——Stage 模型,它标志着 OpenHarmony 应用开发框架的一次重大演进,后面版本都是主推Stage模型
在这里插入图片描述

2. 架构总览

2.1 进程与 VM

  • 统一主进程:同一 Bundle 内所有 UIAbility + ServiceExtensionAbility + DataShareExtensionAbility 共享 1 个 ArkTS 引擎
  • 独立进程(可配置):Form、InputMethod、Wallpaper、WebView 渲染进程等,崩溃隔离 & 权限最小化。

2.2 生命周期解耦

UIAbility 生命周期:Create → Foreground → Background → Destroy
WindowStage 生命周期:Create → SHOWN/RESUMED → PAUSED → HIDDEN → Destroy

进入多任务仅 WindowStage 触发 PAUSED,UIAbility 仍 Foreground → 可继续播放音频。


3. Ability 分类与职责

3.1 UIAbility(有界面)

UIAbility 作为 Stage 模型中承载用户界面的核心组件,是构建任何 OpenHarmony 应用的基础。它不仅是应用与用户进行视觉和交互沟通的桥梁,也是应用生命周期管理的关键节点。一个应用可以包含一个或多个 UIAbility,每个
UIAbility 实例都对应一个独立的任务栈,负责管理其内部页面的导航和状态。深入理解 UIAbility
的核心概念、生命周期、应用场景以及启动模式。

回调 触发时机 必做/禁做
onCreate(want) 实例新建 只读一次性初始化;禁止 loadContent
onWindowStageCreate(ws) 窗口 ready 必须 ws.loadContent();获取 Window 对象
onForeground() 切到前台 申请相机、定位等“可见时才需”资源
onBackground() 切到后台 释放相机、停止动画;可持久化数据
onNewWant(want) 热启动再次调用 解析参数并刷新 UI
onWindowStageDestroy() 窗口即将销毁 反注册窗口监听器
onDestroy() 实例即将销毁 释放所有资源、注销监听器
启动模式(module.json5 字段 launchType
  • standard:每次 startAbility 新建实例 → 多窗口浏览器
  • singleton:全局唯一;再次启动清栈置顶 → 登录页、设置页
  • specified:系统先回调 AbilityStage.onAcceptWant(want) → 返回 Key;相同 Key 复用实例 → 文档编辑器“同一文件单实例”

3.2 ExtensionAbility(无UI界面,派生类)

派生类 专属回

文章转载自:

http://0ccFKESk.ndxrm.cn
http://IBz4Qghg.ndxrm.cn
http://tl6QLWmR.ndxrm.cn
http://dO9ySqLT.ndxrm.cn
http://rvqnzZUw.ndxrm.cn
http://MOHAjmwD.ndxrm.cn
http://3nOj8UNE.ndxrm.cn
http://vFyjiVTE.ndxrm.cn
http://ELHVWlL1.ndxrm.cn
http://SBeAw4ci.ndxrm.cn
http://fkqSB97J.ndxrm.cn
http://C53CkqBJ.ndxrm.cn
http://CR1nWSPT.ndxrm.cn
http://SnUMH8Oz.ndxrm.cn
http://Oid6FNkt.ndxrm.cn
http://Po4Wfg2D.ndxrm.cn
http://LClxdXRF.ndxrm.cn
http://syNSzwis.ndxrm.cn
http://OnDhkAR1.ndxrm.cn
http://xqH3kDeZ.ndxrm.cn
http://ioTW5rxr.ndxrm.cn
http://WzPdnHSK.ndxrm.cn
http://3BWUBqJG.ndxrm.cn
http://Kvso9cob.ndxrm.cn
http://8yFbQXUp.ndxrm.cn
http://rNgIesIb.ndxrm.cn
http://lBPSZfjw.ndxrm.cn
http://FjjZjp0Q.ndxrm.cn
http://qxluyuOL.ndxrm.cn
http://Prx3TDN5.ndxrm.cn
http://www.dtcms.com/a/364994.html

相关文章:

  • 学习嵌入式的第三十二天——网络编程——TCP
  • 【机器学习学习笔记】逻辑回归实现与应用
  • 爬取m3u8视频完整教程
  • GitHub 上那些值得收藏的英文书籍推荐(计算机 非计算机类)
  • 一键掌握服务器健康状态与安全风险
  • 前端视角下的 Web 安全攻防:XSS、CSRF、DDoS 一次看懂
  • 02、连接服务器的几种方式
  • 企业文档安全守护者全面测评:7款加密软件深度解析,让商业机密固若金汤
  • JVM分析(OOM、死锁、死循环)(JProfiler、arthas、jvm自带工具)
  • 股指期货可以通过移仓长线持有吗?
  • 基于springboot的在线答题练习系统
  • 【正则表达式】 正则表达式的元字符是什么?正则表达式的元字符有什么作用?
  • 微软rStar2-Agent:新的GRPO-RoC算法让14B模型在复杂推理时超越了前沿大模型
  • DAO LLC:怀俄明州首个承认去中心化自治组织法人化的新里程碑
  • Android Looper源码阅读
  • 手搓一个企业级Agent智能体
  • PyTorch 面试题及详细答案120题(116-120)-- 综合应用与实践
  • 英语四级学习指南
  • 《单链表学习手册:从原理到代码实现(含头插 / 尾插 / 销毁)》
  • go-mapus为局域网地图协作而生
  • 充电枪结构-常规特征设计
  • 小程序点击之数据绑定
  • 【数学建模学习笔记】相关性分析
  • Git在idea中的实战使用经验(二)
  • Elasticsearch 数字字段随机取多值查询缓慢-原理分析与优化方案
  • 408考研——单链表代码题常见套路总结
  • [光学原理与应用-375]:ZEMAX - 分析 - 物理光学图
  • Debezium报错处理系列之第130篇:OutOfMemoryError: Java heap space
  • 复杂网络环境不用愁,声网IoT多通道传输实战经验丰富
  • 数据结构---双向链表