「鸿蒙学习笔记」Stage模型--概述

BytePulse
• 阅读 508

「鸿蒙学习笔记」Stage模型--概述

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

设计思想

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

  1. 为复杂应用而设计

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

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

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

    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组件的描述信息。
  • 应用运行过程中所需的权限信息。

参考

点赞
收藏
评论区
推荐文章
【OpenAI】私有框架代码生成实践 | 京东云技术团队
由OpenAI提供的ChatGPT/GPT4模型和CodeX模型能够很好的理解和生成业界大多数编程语言的逻辑和代码,然而在实际应用中,我们经常会在编码时使用到一些私有框架、包、协议和DSL等。由于相关模型没有学习最新网络数据,且这些私有数据通常也没有发布在公开网络上,OpenAI无法根据这些私有信息生成对应代码。
黎明之道 黎明之道
4年前
天池比赛数据挖掘心电图模型调参
Task4建模与调参4.1学习目标学习机器学习模型的建模过程与调参流程完成相应学习打卡任务4.2内容介绍逻辑回归模型:理解逻辑回归模型;逻辑回归模型的应用;逻辑回归的优缺点;树模型:理解树模型;树模型的应用;树模型的优缺点;集成模型基于bagging思想的集成
Wesley13 Wesley13
3年前
FLASH基础概念 [一]
舞台stage:其中舞台(Stage)是最根本的容器,包含当前SWF的所有显示对象,每个flash程序只能有一个舞台容器。所有显示对象的stage属性都指向舞台。这里有关于舞台的宽度的问题:stage.width:stage上所有child构成的范围的宽(没东西width就是0)stage.stageWidth:st
Wesley13 Wesley13
3年前
Spread for Windows Forms高级主题(1)
底层模型概述Spread控件提供了很多模型,这些模型提供了自定义控件的基础架构。同时,这些模型作为底层模板,派生出了更多通用的快捷对象。在不使用Spread的底层模型的情况下,你可以完成许多任务。通过使用Spread设计器或者快捷对象(如单元格、列和行)的属性,你可以在表单上实现许多改变。但是因为表单模型是所有快捷对象的基础,因此在通常
Wesley13 Wesley13
3年前
TP3快速入门
一、查询  D方法实例化模型类的时候通常是实例化某个具体的模型类,如果你仅仅是对数据表进行基本的CURD操作的话,使用M方法实例化的话,由于不需要加载具体的模型类,所以性能会更高。$maparray();$map'u.store_id'array('eq',0);$map'u.reg_time'a
数据堂 数据堂
1年前
大模型数据集:构建、挑战与未来趋势
一、引言随着深度学习技术的快速发展,大型预训练模型如GPT4、BERT等在各个领域取得了显著的成功。这些大模型背后的关键之一是庞大的数据集,为模型提供了丰富的知识和信息。本文将探讨大模型数据集的构建、面临的挑战以及未来发展趋势。二、大模型数据集的构建收集数
银装素裹 银装素裹
2年前
ModelScope 垂类检测系列模型介绍
本文对ModelScope上的垂类检测系列模型进行介绍,ModelScope是阿里达摩院推出的中文版模型即服务(MaaS,ModelasaService)共享平台。用户可以在上面轻松且免费地使用先进的领域模型,应用于自己的领域。基于垂类检测模型(比如口罩检测模型、安全帽检测模型、香烟检测模型等),可以构建不同的解决方案(如佩戴口罩检测、安全生产、抽烟行为检测等)。
基础模型应用概述
目前,基础模型的研究主要局限于计算机科学和人工智能领域,而基础模型的影响和其所支撑的应用主要集中在科技产业。更进一步,基础模型展现出了明显的潜力,其可以在科技产业以外的许多领域改变和拓展人工智能的影响范围,这也意味着对于人类生活的普遍影响。尽管有许多应用和领域需要考虑,我们选择了医疗保健、法律和教育这三个领域,因为它们代表了社会的基本支柱。
京东云开发者 京东云开发者
6个月前
智慧之锤|如何通过有监督微调锻造大模型
作者:京东物流李雪婷本文为《大规模语言模型从理论到实践》第五章有监督微调的学习笔记,在介绍基本内容的同时会补充一些扩展知识和案例来帮助大家更好地理解该章。一、前言大模型调整的历程经历了显著的演变,从最初的“预训练微调”范式开始,模型首先在大规模无监督数据上
AGIC.TWang AGIC.TWang
5个月前
大模型推理GPT | DeepSeek | Doubao
AIGC发展到现在,大模型已经逐渐在大家的知识探索、学习知识、搜索领域的重要帮手,那么从普通大众认知角度,到底能做到什么程度,我们选三个当前知名度较高的大模型进行验证和对比。GPT4o:OpenAI大模型代表,大模型的标杆DeepSeek:深度求索的大模型,当前最火爆的大模型,低成本高效能的杰出代表。(也是作为开发者的我最喜爱的大模型)Doubao:字节跳动的大模型,也是国内断崖领先的大模型应用豆包的底层模型。(豆包App是基于该大模型的应用,做了大量其他辅助工作,如搜索等,因此该大模型表现的能力,不能完全和豆包App划等号)
数据堂 数据堂
1年前
大模型数据集:力量的源泉,进步的阶梯
一、引言在人工智能的繁荣发展中,大模型数据集的作用日益凸显。它们如庞大的知识库,为AI提供了丰富的信息和理解能力。本文将用一种独特的风格来探讨大模型数据集的魅力和潜力。二、大模型数据集:宏大的舞台大模型数据集如广袤的舞台,为AI技术的展现提供了广阔的空间。
BytePulse
BytePulse
Lv1
你可知?爱沵莪不怕输,只怕沵不快乐!
文章
4
粉丝
0
获赞
0