首页 > 其他分享 >鸿蒙Stage模型--概述

鸿蒙Stage模型--概述

时间:2024-01-29 15:06:03浏览次数:25  
标签:鸿蒙 -- 模型 UIAbility 实例 应用 组件 Stage

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

设计思想

Stage模型之所以成为主推模型,源于其设计思想。Stage模型的设计基于如下出发点。

  • 为复杂应用而设计

多个应用组件共享同一个ArkTS引擎(运行ArkTS语言的虚拟机)实例,应用组件之间可以方便的共享对象和状态,同时减少复杂应用运行对内存的占用。
采用面向对象的开发方式,使得复杂应用代码可读性高、易维护性好、可扩展性强。

  • 支持多设备和多窗口形态

应用组件管理和窗口管理在架构层面解耦:

便于系统对应用组件进行裁剪(无屏设备可裁剪窗口)。 便于系统扩展窗口形态。
在多设备(如桌面设备和移动设备)上,应用组件可使用同一套生命周期。

  • 平衡应用能力和系统管控成本

Stage模型重新定义应用能力的边界,平衡应用能力和系统管控成本。

提供特定场景(如卡片、输入法)的应用组件,以便满足更多的使用场景。
规范化后台进程管理:为保障用户体验,Stage模型对后台应用进程进行了有序治理,应用程序不能随意驻留在后台,同时应用后台行为受到严格管理,防止恶意应用行为。

概述

鸿蒙Stage模型--概述_鸿蒙开发

  • UIAbility组件和ExtensionAbility组件

Stage模型提供UIAbility和ExtensionAbility两种类型的组件,这两种组件都有具体的类承载,支持面向对象的开发方式。

UIAbility组件是一种包含UI界面的应用组件,主要用于和用户交互。例如,图库类应用可以在UIAbility组件中展示图片瀑布流,在用户选择某个图片后,在新的页面中展示图片的详细内容。同时用户可以通过返回键返回到瀑布流页面。UIAbility的生命周期只包含创建/销毁/前台/后台等状态,与显示相关的状态通过WindowStage的事件暴露给开发者。

ExtensionAbility组件是一种面向特定场景的应用组件。

  • WindowStage

每个UIAbility类实例都会与一个WindowStage类实例绑定,该类提供了应用进程内窗口管理器的作用。它包含一个主窗口。也就是说UIAbility通过WindowStage持有了一个窗口,该窗口为ArkUI提供了绘制区域。

  • Context

在Stage模型上,Context及其派生类向开发者提供在运行期可以调用的各种能力。UIAbility组件和各种ExtensionAbility派生类都有各自不同的Context类,他们都继承自基类Context,但是各自又根据所属组件,提供不同的能力。

  • AbilityStage

每个Entry类型或者Feature类型的HAP在运行期都有一个AbilityStage类实例,当HAP中的代码首次被加载到进程中的时候,系统会先创建AbilityStage实例。每个在该HAP中定义的UIAbility类,在实例化后都会与该实例产生关联。开发者可以使用AbilityStage获取该HAP中UIAbility实例的运行时信息。

应用与组件配置

在基于Stage模型开发的应用项目代码下,都存在一个 app.json5 及一个或多个 module.json5 这两种配置文件。

app.json5主要包含以下内容:

  • 应用的全局配置信息,包含应用的包名、开发厂商、版本号等基本信息。
  • 特定设备类型的配置信息。
    module.json5主要包含以下内容:

Module的基本配置信息,例如Module名称、类型、描述、支持的设备类型等基本信息。

  • 应用组件信息,包含UIAbility组件和ExtensionAbility组件的描述信息。
  • 应用运行过程中所需的权限信息。

标签:鸿蒙,--,模型,UIAbility,实例,应用,组件,Stage
From: https://blog.51cto.com/u_16536309/9464836

相关文章

  • 留学期间被怀疑学术不端无法毕业?解决办法这里看
    留学期间被怀疑学术不端无法毕业?解决办法这里看学术不端,一次一次被提上热搜。学术诚信问题,也越发被重视。不仅国内。国外院校也是如此。国外的大多是院校,对于学生对待学术诚信与否的问题看得十分的严重,“学术不诚信”包括:作业抄袭、考试抄袭、论文抄袭、论文代笔等等……院校一旦发......
  • 项目管理工具方法--结构树
    ......
  • 轮廓测长|轮廓仪高精度测量粗糙度
    现代工业制造领域中,为什么测量粗糙度至关重要?在现代工业制造领域中,测量粗糙度是一项非常重要的工作。因为粗糙度能够影响到工件的功能性能和外观质量。当我们制造机器零件或工具时,需要确保表面的光洁度能够满足设计要求。过高或过低的粗糙度都会对产品的使用性能产生负面影响。在......
  • AI算力集群​
    如何规模和部署一个AI算力集群,需要准备哪些软硬件设备,这是一个网友的提问。下面说说这件事。一个标准的AI算力集群主要由以下4部分组成:1.集群网络:RDMA网络。2.算力服务器:DGX/HGX、或者其它算力服务器。3.操作系统:Linux操作系统/Laxcus分布式操作系统。4.应用软件:AI大模型、向......
  • [Mac游戏]割绳子3 Cut the Rope 3 v1.3.0 for Mac 苹果电脑游戏
    你准备好和AmNom和迷人的KusNom一起去未开发的土地了吗?这场激动人心的冒险从一张旧地图和诱人的伟大发现开始。然后你们三个将带着狡猾的谜题去不可思议的地方旅行!解决所有问题,找到Nyammi的新物种,并成为伟大的先驱。对于那些喜欢基于物理的游戏的人来说,在这里,你会发现所有你最喜......
  • 和男同事出差肄业qing,要不要告诉男朋友?
    和男同事出差yiyeqing,要不要告诉男朋友?各种版本都有,自取。《我都不敢告诉你,就是怕你担心》《这是个误会》《不是你想的那样》《我只是单纯的喜欢那个氛围》《都是同事》《很单纯的喝酒》《你要这样想我也没办法》《我都没跟他说话》《真的就只是气氛到了》《他只是蹭了蹭》《戴了》......
  • 我道歉!我被小米汽车举报了
    文|AUTO芯球作者|雷歌前几天,我写了《小米,不要将卖手机那套话术带进汽车圈》。小米汽车向腾讯举报,谴责我对他们进行“品牌抹黑、虚构诋毁”!我要向小米道歉。我不该说“16.8亿种驾驶模式是文字游戏”。那是你们的说话艺术,就跟你们很久以前将304不锈钢称为奥氏体304不锈钢一样,一种......
  • Python中/与//的区别是什么?其如何使用?
    在学习Python或者使用Python进行工作的时候,大家应该都看到过“/”和“//”,它们是Python算术运算符中比较常用的两个运算符,那么Python语言中/与//的区别是什么?如果你还不清楚,这篇文章千万不要错过。Python语言中/与//的区别是什么?在Python中/表示浮点整除法,返回浮点结......
  • Linux grep命令有何作用?如何使用?
    进行Linux系统维护的时候,想要在文本中快速搜索到你需要的东西,grep命令是非常不错的选择,它主要用于查找文件里符合条件的字符串,从而节省时间、提高工作效率。那么Linux系统中grep命令如何使用?我们一起来看看详细的内容介绍。Linuxgrep命令用于查找文件里符合条件的字符串......
  • 百望云受邀参加2024数据要素创新发展大会 共同发布“匿名数据网络”
    近日,由中国信息通信研究院(以下简称“中国信通院”)泰尔终端实验室主办的2024数据要素创新发展大会在天津举办。百望云受邀参会,与中国信通院、中移信息、联通在线、天翼数字生活、个推、极光、中互数科、数据空间研究院等行业企业共同发布了匿名数据网络。会议重点聚焦企业数据安全......