HarmonyOS应用模型Stage基本介绍

文章目录

  • [<font color='coral'> HarmonyOS应用模型概况](# HarmonyOS应用模型概况)
  • [<font color='coral'> Stage模型基本概念](# Stage模型基本概念)
  • [<font color='coral'> Stage模型UIAbiliry的生命周期](# Stage模型UIAbiliry的生命周期)
  • [<font color='coral'> Stage模型的配置文件](# Stage模型的配置文件)
  • [<font color='coral'> 写在后面的话](# 写在后面的话)
  • [<font color='coral'>References](#References)

HarmonyOS应用模型概况

随着系统的演进发展,HarmonyOS先后提供了两种应用模型:

  • FA(Feature Ability)模型:HarmonyOS早期版本开始支持的模型,已经不再主推。

  • Stage模型:HarmonyOS 3.1 Developer Preview版本开始新增的模型,是目前主推且会长期演进的模型。在该模型中,由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的"舞台",因此称这种应用模型为Stage模型。

Stage模型基本概念

如下图所示,一个项目由多个模块组成,每一个模块都可打包成一个独立的Harmony Ability Package, .hap格式的包,这些模块又可以合并起来打包成一个独立的APP,这样的好处的就是用到哪个模块就安装哪个模块。

实际上一个工程是可以有多个模块的

一个模块基本上就是包含下面这三个要素,一个是源码,一个是资源文件,以及对应的模块,module.json5就说明了这个模块是什么类型

在Stage模型中,实际上是提供了两种Ability, 一种是UIAbility,显示UI的界面的能力,还有一种是ExtensionAbilitu 面向特定场景的能力

Stage模型UIAbiliry的生命周期


上述函数的调用时序如下如所示

Stage模型的配置文件

基于Stage模型创建的工程,有两个重要的配置文件,一个是app.json5。一个是module.json

app.json5是一个应用级别的配置文件,这个文件在AppScope下面,而我们的module.json5是一个模块级别的配置文件,在每一个模块下面都有一个配置文件

我们还可以看到在AppScope这个文件夹下面有一个resources文件夹,在我们的模块下,不仅仅限于entry模块其他的feature模块下都有一个resources文件。 AppScope这个文件夹下面有一个resources文件夹,这个文件夹下面放的是全局的资源,在模块下面的资源文件放置的资源只能供给这个模块使用。

一个模块会先在自己的资源文件夹下找自己需要的资源,同名资源只会使用在模块resource下的资源,如果找不到才会去全局资源中寻找。

可以看一下app.json5里面的内容

javascript 复制代码
{
  "app": {
    "bundleName": "com.example.myapplication",
    "vendor": "example",
    "versionCode": 1000000,
    "versionName": "1.0.0",
    "icon": "$media:app_icon",
    "label": "$string:app_name"
  }
}

bundleName是APP的唯一标识

icon标识的是这个APP的图标

label 表示的是这个APP的名字

他们引用的都是这个AppScope下面的resources内容

module.json如下所示

javascript 复制代码
{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "phone",
      "tablet"
    ],
    "deliveryWithInstall": true,
    "installationFree": false,
    "pages": "$profile:main_pages",
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ts",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:icon",
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:icon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ]
      }
    ]
  }
}

在设置文件中的图标和应用的名字是在app.json5中配置的,设置应用桌面的图标和名字是在entry下面的module.json中配置的.


写在后面的话

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程 https://www.cbedai.net/chichoxian


References

  1. https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/application-model-description-0000001493584092-V2
  2. https://www.bilibili.com/video/BV1Ti4y1s79B?p=72&spm_id_from=pageDriver&vd_source=57623809cb42c86b58d359b44bfd8dcf
相关推荐
枫叶丹43 小时前
【HarmonyOS之旅】HarmonyOS开发基础知识(三)
华为od·华为·华为云·harmonyos
SoraLuna8 小时前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
开发语言·macos·ui·华为·harmonyos
AORO_BEIDOU12 小时前
单北斗+鸿蒙系统+国产芯片,遨游防爆手机自主可控“三保险”
华为·智能手机·harmonyos
博览鸿蒙13 小时前
鸿蒙操作系统(HarmonyOS)的应用开发入门
华为·harmonyos
Damon小智20 小时前
HarmonyOS NEXT 技术实践-基于基础视觉服务的多目标识别
华为·harmonyos
匹马夕阳1 天前
华为笔记本之糟糕的体验
华为·笔记本电脑
egekm_sefg1 天前
华为、华三交换机纯Web下如何创关键VLANIF、操作STP参数
网络·华为
岳不谢2 天前
华为DHCP高级配置学习笔记
网络·笔记·网络协议·学习·华为
爱笑的眼睛112 天前
uniapp 极速上手鸿蒙开发
华为·uni-app·harmonyos
K.P2 天前
鸿蒙元服务从0到上架【第三篇】(第二招有捷径)
华为·harmonyos·鸿蒙系统