HarmonyOS Stage模型基本概念讲解

本文 我们来说harmonyos中的一种应用模型
Stage模型

官方提供了两种模型 一种是早期的 FA模型 另一种就是就是 harmonyos 3.1才开始的新增的一种模型 Stage模型

目前来讲 Stage 会成为现在乃至将来 长期推进的一种模型
也就是 无论是 现在的harmonyos 4.0 乃至 之后要发布的 harmonyos next 都会建议我们通过 Stage模型开发

本文呢 我们先来看一下Stage模型基本的一个概念
首先 我们项目里都会有一个 entry 子模块
在这里插入图片描述
模块是应用的基本单元
它里面就会包含源代码 还有一些资源 以及一些配置文件之类的
那其实想这样的模块 我们在一个应用中还可以创建很多很多

但模块基本来讲,还是就分成两大类
第一类就像我们 entry这样 用来开发我们应用的一些能力的
像这样的 我们就称作 Ability Module
顾名思义 能力模块
一个应用的内部它的能力有很多很多,我们就可以把不同的能力 放到不同的模块开发
比如 大家很熟悉的微信
在这里插入图片描述
一个社交类的应用 它的核心功能其实就是社交嘛

那其中 聊天啊 朋友圈啊 好友啊 其实这些都可以分成一个社交类
这部分能力就可以放到同一个模块中
那后来 随着微信的发展 它有出来了一些新的功能 例如小程序呀 视频号呀等等
这些能力相互之间也都是独立的
所以 他们也都可以放在独立的 Ability Module 里面去

这样一来 我们整个应用的能力就都清晰的划分出来了
管理起来也非常的方便

这些属于一类 Ability Module
这些过程当中呢 他们就会有一些通用的 工具 资源 或者组件等等
那如果这些模块,大家都各自去开发,显然是一种重复和浪费

所以 我们就可以把重用的东西抽取出来,放到一个单独的模块里去
这种模块我们就称作 Library Module
顾名思义 就是 一种共享的依赖模块

那么 他们之间 Ability Module 就可以去引用 Library Module

然后 我们回到编辑器
我们选择根目录右键 选择New 就可以看到 module 模块选项了
在这里插入图片描述
点击之后 我们这里就会有这种 module 的各种模板
在这里插入图片描述
其实这么多 无法就是分成 Ability和Library
在这里插入图片描述
那么 这就是Stage模型创建的一个基本的项目结构了

但这是源码 最后整个项目还是会被打包成一个安装包
只是在Stage模型中 为了降低不同模块之间的耦合 每一个模块都可以独立编译或运行的
那么之后所有Ability类型的模块,将来就会被编译成 .HAP 格式的文件
但我们一个App那肯定只能有一个入口呀,对不对?
那么 当我们有多个HAP文件时 那么就要设置一个入口文件 我们将它称之为 Entry 类型的HAP文件

其他就可以理解为一些拓展功能 叫 Feature类型的 HAP

简单说 一个项目只能有一个 Entry类型的HAP 因为你没办法给一个app多个入口,但是呢 可以有多个Feature 拓展功能可以一直往后加呀

最终 我们所有的HAP 肯定还是都要合并到一个app中的
合并到一起之后 我们称之为 Bundle
那么 我们可以设置一个 Bundle
Bundle 会有一个name属性 我们可以给它一个独立标识
最后 Bundle 合并在一起 就是一个app安装包

而且 最大的好处是 首先 Entry 肯定是要的 跑不掉 但其他模块 可以选择性的安装
这样 你就可以让应用没那么大 以及提高安装效率

首先,我们知道,每一个HAP都是可以独立运行的,它在运行时 为了展示我们的界面和一些逻辑
它都会创建一个 AbilityStage 实例 AbilityStage 在这里 被我们翻译为应用组件能力的舞台
这个舞台的意思就很明显了,应用展示自己能力的地方。

AbilityStage 最常见的就是
ExtensionAbility和UIAbility
UIAbility 它是 包含UI界面的应用组件,是系统调度的基本单元。

UIAbility内部会先有一个Windowstage 简单说 就是一个窗口 在这个窗口中展示我们的UI界面
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/401161.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pytest基本应用

文章目录 1.pytest安装2.用例运行规则3.常用参数断言运行参数用例控制setup和teardownini配置文件 4.常用插件5.pytest高阶用法用例跳过参数化 6.pytest之Fixture使用fixture使用装饰器usefixtures 7.pytest之conftest.py8.conftestfixtureyieldyield介绍前后置使用 1.pytest安…

2012及其以上系统修改服务器密码指南

修改服务器密码指南,目前介绍两种不同的方案 方法一 指令式 winR键 弹出运行框里输入 cmd 点击确认或者右下角开始程序里面的点开运行 2.在弹出框里手动输入以下一组文字:net user administrator 123456 框内无法粘贴 需要手动输入 其中administrator 是用…

4核8G服务器腾讯云和阿里云租用价格对比,2024更新

4核8G云服务器多少钱一年?阿里云ECS服务器u1价格955.58元一年,腾讯云轻量4核8G12M带宽价格是646元15个月,阿腾云atengyun.com整理4核8G云服务器价格表,包括一年费用和1个月收费明细: 云服务器4核8G配置收费价格 阿里…

Sora刷爆了,先来了解下基本情况

2月15日,OpenAI发布的Sora模型确实在文生视频领域取得了显著的进步,其特点和创新性表现在以下几个方面: 视频生成长度:Sora模型能够生成长达1分钟的视频,这相比之前的文生视频模型有了显著的提升。这一长度的视频已经…

后端程序员入门react笔记——react的diff算法(三)

diffing算法 虚拟dom 我们知道,react里面操作的都是虚拟dom,最后经过render渲染为真正的dom,那么为什么要提出虚拟dom这个概念呢?其实就是将逻辑和视图区分开,react的虚拟dom,就相当于mvc的c,…

网络安全实验(三)补充

1.假设内网用户需要通过外网的web服务器和pop3邮件服务器下载文件和邮件,内网的FTP服务器也需要接受外网用户上传的文件。针对该场景进行防病毒的防护。 2.我们需要针对办公区用户进行上网行为管理,要求进行URL过滤,要求在上班时间仅能访问教…

UE蓝图 入口(FunctionEntry)节点和源码

系列文章目录 UE蓝图 Get节点和源码 UE蓝图 Set节点和源码 UE蓝图 Cast节点和源码 UE蓝图 分支(Branch)节点和源码 UE蓝图 入口(FunctionEntry)节点和源码 文章目录 系列文章目录一、FunctionEntry节点功能二、入口节点用法1. 创建函数2. 命名函数3. 定义参数4. 编写函数逻辑5…

http协议工具:apache详解

目录 一、常见的http服务程序 1、 Apache HTTP Server 介绍 1.1 apache 概念 1.2 apache 功能 1.3 apache 特性 2、MPM(multi-processing module)工作模式 2.1 prefork 2.2 worker 2.3 event 二、Apache HTTP Server安装和相关文件 1、安装方…

五种多目标优化算法(MOGWO、MOJS、NSWOA、MOPSO、MOAHA)性能对比,包含6种评价指标,9个测试函数(提供MATLAB代码)

一、5种多目标优化算法简介 1.1MOGWO 1.2MOJS 1.3NSWOA 1.4MOPSO 1.5MOAHA 二、5种多目标优化算法性能对比 为了测试5种算法的性能将其求解9个多目标测试函数(zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3)&#xff0…

多维时序 | Matlab实现基于VMD-DBO-GRU、VMD-GRU、GRU的多变量时间序列预测

多维时序 | Matlab实现基于VMD-DBO-GRU、VMD-GRU、GRU的多变量时间序列预测 目录 多维时序 | Matlab实现基于VMD-DBO-GRU、VMD-GRU、GRU的多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现基于VMD-DBO-GRU、VMD-GRU、GRU的多变量时间序列预测…

AWS安全组是什么?有什么用?

最近看到小伙伴在问,AWS安全组是什么?有什么用?今天我们大家就来简单聊聊,仅供参考哦! AWS安全组是什么?有什么用? 【回答】:AWS安全组是一种虚拟防火墙,用于控制进出…

Eclipse项目间的引用

我们在开发的时候,有时候需要把一个大的项目打散,尤其是现在微服务的架构很流行,一个大的项目往往被拆成很多小的项目,而有的项目作为公共工程被独立出来,比如有个工程专门提供各种Util工具类,有的工程专门…

【hoare优化版】快速排序算法(2)

目录 GitMidi三数取中 整体思想 图解分析 代码实现 Hoare优化 上篇我们介绍了hoare基础版,但是这种代码存在缺陷,所以我们提出了两种解决方案。主流的解决方案就是【三数取中选key】 GitMidi三数取中 在快排的过程中,每一次我们要取一…

Hive--内部表常用操作 全面且详细

文章中关于内部表常用操作目录 一、隔符 二、根据查询结果创建表 ​​​​​​​三、根据已经存在的表结构创建表 ​​​​​​​四、查询表的类型 ​​​​​​​五、删除表 ​​​​​​​一、隔符 create table if not exists stu2(id int ,name string) row format d…

分享:大数据信用查询去什么样的平台查?

在当今社会,大数据信用查询已经成为企业和个人了解自身信用状况的重要途径。然而,面对众多的大数据信用查询平台,如何选择一个可靠的平台进行查询呢?本文将为您介绍一些选择大数据信用查询平台的关键因素。 一、平台信誉度 首先,…

django自定义后端过滤

​ DRF自带的过滤 第一个 DjangoFilterBackend 是需要安装三方库见[搜索:多字段筛选]两外两个是安装注册了rest_framework就有。 如上图,只要配置了三个箭头所指的方向,就能使用。 第一个单字段过滤 用户视图集中加上filterset_fields …

(done) 两个矩阵 “相似” 是什么意思?

参考视频:https://www.bilibili.com/video/BV1zu411673J/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 参考资料:https://baike.baidu.com/item/%E7%9B%B8%E4%BC%BC%E7%9F%A9%E9%98%B5/10369874?frge_a…

javaSE多态

文章目录 斜体样式1.1 面向对象三大特征 ?1.2 什么是多态 ?*斜体样式*1.3 多态的前提1.4 多态的成员访问特点1.5 多态的优缺点1.6 多态的转型1.7 多态的转型注意1.8 解决转型安全隐患 2 内部类2.1 内部类的分类什么是内部类 ?什么时候使用内部类 ?内部类分类 ? 2.2 成员内…

C#通过继承泛型类来分块显示学生的个人信息以及成绩信息

目录 一、涉及到的知识点 1.泛型类的继承 2.泛型类的可视化 (1)用UML图说明泛型类的可视化 (2)用实例说明泛型类的可视化 二、实例1 1.源码 2.生成效果 三、实例2 再发一个继承泛型类的应用案例。 一、涉及到的知识点 …

mac 安装H3C iNode + accessClient mac版

一、下载安装 官网下载地址 https://www.h3c.com/cn/Service/Document_Software/Software_Download/IP_Management/ 可以使用文末参考博文中的账号 yx800 密码 01230123登录下载 选择版本 下载 下载 H3C_iNode_PC_7.3_E0626.zip 文件后,解压下载到的PC端压缩包…