一文带你读懂鸿蒙Stage模型开发运行期和编译期概念

运行期概念

  1. Context 及其继承关系

    • Context:是基础上下文,提供应用运行时的环境信息,如资源访问等。
    • AbilityStageContext:继承自 Context,为 AbilityStage 提供上下文,包含与 AbilityStage 生命周期等相关的信息。
    • UIAbilityContext:继承自 AbilityStageContext ,为 UIAbility 提供上下文,包含 UI 相关的环境信息。
    • 举例:好比一个公司(Application)里,Context 是公司整体的基础环境设定,AbilityStageContext 是某个部门(AbilityStage)的工作环境设定,UIAbilityContext 是部门里负责对外展示(UI 相关)工作的环境设定。
  2. Application 相关

    • Application:代表整个应用程序,持有一个 ApplicationContext ,负责应用的全局管理,如初始化、资源管理等。
    • 举例:就像一个公司的管理层,负责统筹公司整体的运营、资源调配等事务。
  3. AbilityStage 相关

    • AbilityStage:应用程序的一个逻辑阶段,一个 Application 可持有多个 AbilityStage 。它持有一个 AbilityStageContext ,管理 UIAbility 和 ExtensionAbility 等。
    • 举例:类似于公司里不同的项目组,每个项目组(AbilityStage)有自己的工作内容,由管理层(Application)统筹,项目组有自己的工作环境设定(AbilityStageContext )。
  4. UIAbility 相关

    • UIAbility:具备用户界面的能力组件,一个 AbilityStage 可持有多个 UIAbility 。它持有一个 UIAbilityContext ,并关联 WindowStage。
    • 举例:像项目组里负责做具体展示界面的小组,比如开发 APP 界面功能的小组,有自己特定的工作环境(UIAbilityContext ) ,并且和展示窗口(WindowStage)相关联。
  5. WindowStage 相关

    • WindowStage:管理窗口相关的逻辑,一个 UIAbility 持有一个 WindowStage 。
    • 举例:好比展示小组(UIAbility)用来展示成果的舞台框架(WindowStage) ,负责窗口的基本布局等逻辑。
  6. Window 和 ArkUI Page

    • Window:是可视化窗口,一个 WindowStage 持有一个 Window 。
    • ArkUI Page:是使用 ArkUI 框架构建的页面,一个 Window 可持有多个 ArkUI Page 。
    • 举例:Window 就像舞台(WindowStage)上实际的展示屏幕,ArkUI Page 就是在屏幕上展示的一个个具体的内容页面,比如 APP 里不同的功能页面。
  7. ExtensionAbility

    • ExtensionAbility:扩展能力组件,一个 AbilityStage 可持有 0 个或多个 ExtensionAbility ,用于扩展应用的功能。
    • 举例:类似项目组里负责额外功能开发的小组,不是每个项目组都必须有,但有了可以增加项目组的功能丰富度。

编译期概念

  • App 和 HAP

App

  • 作用:代表整个应用程序在编译期的抽象概念,是对应用整体的一种规划和定义范畴。它涵盖了应用的所有功能模块、资源等相关内容的集合,用于从宏观层面界定应用边界和整体架构。
  • 举例:比如一个社交类 App,它在编译期就被定义为包含用户登录注册、消息收发、好友管理等一系列功能模块的整体程序集合。

HAP(HarmonyOS Ability Package)

  • 作用

    • 可分发单元:是鸿蒙应用的可独立分发的基本单元,开发者可以将不同功能模块打包成不同的 HAP,方便在不同场景下进行应用分发,比如针对不同设备特性提供特定的 HAP。
    • 功能模块化封装:用于封装 Ability(能力)相关的代码、资源等,实现应用功能的模块化。每个 HAP 可以包含一个或多个 Ability,使得应用开发可以按功能模块进行独立开发、测试和维护。
    • 资源隔离与管理:不同 HAP 可以管理各自的资源,实现资源的隔离和独立管理,提高资源管理的效率和安全性。
  • 举例:一个大型办公软件 App,可能会有文档编辑 HAP、表格处理 HAP、演示文稿制作 HAP 等。用户在下载安装时,可根据需求选择安装部分 HAP,或者根据设备类型(如手机、平板、电脑)适配安装不同的 HAP ;开发时各功能模块团队可独立开发维护各自对应的 HAP。

相关推荐
听麟3 分钟前
HarmonyOS 6.0+ APP AR文旅导览系统开发实战:空间定位与文物交互落地
人工智能·深度学习·华为·ar·wpf·harmonyos
空白诗27 分钟前
高级进阶React Native 鸿蒙跨平台开发:slider 滑块组件 - 音量调节器完整实现
react native·react.js·harmonyos
●VON43 分钟前
HarmonyOS应用开发实战(基础篇)Day01-《ArkTS基本知识》
学习·华为·harmonyos·鸿蒙·von
BlackWolfSky1 小时前
鸿蒙高级课程笔记2—应用性能优化
笔记·华为·harmonyos
ujainu1 小时前
护眼又美观:Flutter + OpenHarmony 鸿蒙记事本一键切换夜间模式(四)
android·flutter·harmonyos
一只大侠的侠1 小时前
Flutter开源鸿蒙跨平台训练营 Day 13从零开发注册页面
flutter·华为·harmonyos
森之鸟1 小时前
鸿蒙审核常见问题避坑指南_Scroll嵌套List_Grid滑动优化
华为·harmonyos
一只大侠的侠1 小时前
Flutter开源鸿蒙跨平台训练营 Day19自定义 useFormik 实现高性能表单处理
flutter·开源·harmonyos
早點睡3901 小时前
高级进阶 React Native 鸿蒙跨平台开发:react-native-device-info 设备信息获取
react native·react.js·harmonyos
阿钱真强道1 小时前
13 JetLinks MQTT:网关设备与网关子设备 - 温控设备场景
python·网络协议·harmonyos