首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 25-04-22 00:01
  • 3209
  • 6700
juejin.cn

Stage模型.png

运行期概念

  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。

注:本文转载自juejin.cn的干中学的文章"https://juejin.cn/post/7495420228386799656"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

142
代码人生
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top