stage模型:harmonyos 3.1 develper preview版本开始新增的模型,是目前主推且会长期演进的模型。在该模型中,由于提供了abilitystage、windowstage等类作为应用组件和window窗口的“舞台”,因此称这种应用模型为stage模型。
设计思想
stage模型之所以成为主推模型,源于其设计思想。stage模型的设计基于如下出发点。
为复杂应用而设计
多个应用组件共享同一个arkts引擎(运行arkts语言的虚拟机)实例,应用组件之间可以方便的共享对象和状态,同时减少复杂应用运行对内存的占用。
采用面向对象的开发方式,使得复杂应用代码可读性高、易维护性好、可扩展性强。
支持多设备和多窗口形态
应用组件管理和窗口管理在架构层面解耦:
便于系统对应用组件进行裁剪(无屏设备可裁剪窗口)。 便于系统扩展窗口形态。
在多设备(如桌面设备和移动设备)上,应用组件可使用同一套生命周期。
平衡应用能力和系统管控成本
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组件的描述信息。
应用运行过程中所需的权限信息。
盘点国家对智能网联汽车的布局
台湾工研院︰高通暂停5G合作又怎样,步绝不停歇
物联网时代下 智慧医疗蓄势待发
vivo X60 Pro+相机详细参数曝光:常规主摄+超广角主摄+潜望式长焦+人像镜头
每日一课 | 推动智慧灯杆建设落地的总体思路
鸿蒙Stage模型--概述
小米10系列真机渲染图曝光或将支持100W快充技术
都说国外资源共享还是比国内好!安利国外十大文件共享网站
波音公司推出军用无人机基站 可依靠太阳能电池板持续供电
红外遥控这么简单让我看看还有谁不会
陶瓷电容压力传感器的特点及典型应用说明
红外基本原理介绍
SPR技术原理分析以及未来发展的应用方向
国产集成电路命名方法
MAVLink学习之路05_ MAVLink应用编程接口分析
简述关于边缘检测算法的四个步骤
新基建开启集成电路巨大发展空间
烟感探测器清洗电话
区块链革命注定要“入侵”这些产业?
电子书的文件格式详细介绍