【最新鸿蒙应用开发】——什么是应用开发模型?Stage模型

在应用程序开发时通常需要使用应用模型来提供必备的组件和运行机制,有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。接下来谈谈鸿蒙应用开发当中的两种模型:

Stage模型: HarmonyOS 3.1推出 也就是API9 , 是目前主推且会长期演进的模型。

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

区别: Stage模型与FA模型最大的区别在于:

  1. Stage模型中,多个应用组件共享同一个ArkTS引擎实例;

  2. 而FA模型中,每个应用组件独享一个ArkTS引擎实例。

  3. 因此在Stage模型中,应用组件之间可以方便的共享对象和状态,同时减少复杂应用运行对内存的占用。

  4. Stage模型作为主推的应用模型,开发者通过它能够更加便利地开发出分布式场景下的复杂应用。

由于在之后的鸿蒙开发版本中将不推荐使用FA模型,并且官方也明确了以后都长期主推Stage模型,所以我在这里详细介绍一下Stage模型具体拆分成哪些概念来理解:

Stage模型是鸿蒙OS为了适应多设备和分布式场景而设计的一种新的应用模型。在Stage模型中,应用程序被组织成一系列的舞台(Stages),每个舞台代表一个应用的一个界面或一个功能模块。Stage模型重新定义了应用能力的边界,提供了对多设备和多窗口形态的支持,使得应用组件可以使用同一套生命周期,便于系统对应用组件进行管理和优化。

在Stage模型中,我们有两种主要的组件:UIAbilityExtensionAbility

UIAbility就像一个带有用户界面的应用块,可以直接和用户进行互动,比如展示图片、处理用户的选择操作等。它的生命周期主要是创建、销毁、在前台运行和转到后台这些状态。而和显示相关的状态,比如窗口的显示和隐藏,是通过WindowStage的事件来通知开发者的。

ExtensionAbility是针对特定用途的组件,比如做卡片、输入法或者后台任务。开发者并不是直接去创建ExtensionAbility,而是使用它的特定子类。这些子类是针对特定场景设计的,比如你想在桌面上放一个应用卡片,就要用FormExtensionAbility,然后实现必要的函数。这些组件的生命周期是由系统管理的,你只需要实现相关的逻辑。

WindowStage是管理UIAbility窗口的东西,每个UIAbility都有一个WindowStage,就像是应用内的窗口管理器。它有一个主窗口,这个窗口就是ArkUI用来绘制的区域。

Context是一个运行时可以用来访问资源和能力的东东。不同的组件有不同的Context,它们都继承自同一个基类,但是根据组件的不同,会有不同的能力。

AbilityStage是给HAP用的,每个HAP在运行时都会有一个AbilityStage实例。当你第一次加载HAP的代码到进程中时,系统会先创建一个AbilityStage实例。

简而言之:
  • UIAbility是一种包含UI的应用组件,主要用于和用户交互。

  • ExtensionAbility是针对特定用途的组件,开发者用它的子类实现特定功能。

  • WindowStage是管理UIAbility窗口的。

  • Context是应用上下文,是运行时访问资源和能力的。

  • AbilityStage是组件容器,是HAP运行时的一个实例。

### HarmonyOS UI开发技术方案 HarmonyOS 提供了一系列强大的工具和组件来支持开发者构建吸引人的用户界面。以下是关于 HarmonyOS UI 开发的主要技术方案: #### 1. 基于 HTML、CSS 和 JavaScript 的传统 Web 技术 HarmonyOS 支持传统的前端技术栈,允许开发者利用 HTML、CSS 和 JavaScript 构建跨平台的应用程序[^1]。 - **HTML**: 负责结构化页面内容。 - **CSS**: 实现样式设计,提升视觉效果。 - **JavaScript**: 处理动态交互逻辑。 示例代码展示如何通过 JavaScript 添加按钮点击事件: ```javascript var button = document.querySelector('.custom-component button'); button.addEventListener('click', function() { alert('Button clicked'); }); ``` #### 2. ArkTS 和 ArkUI 组件体系 对于更现代化的开发需求,HarmonyOS 推出了基于 TypeScript 的全新开发语言——ArkTS,并配套提供了 ArkUI 组件库[^3]。这些组件具有更高的性能优化和支持多端适配的能力。 - **ArkTS**: 面向声明式的编程方式,简化复杂业务场景下的编码工作量。 - **ArkUI**: 提供丰富的内置组件集合,同时支持高度自定义扩展功能。 #### 3. 自定义 UI 组件机制 除了使用预置的标准组件外,还可以根据具体项目需求创建专属的个性化控件。例如,在现有基础之上修改外观属性或者增强特定的功能模块。 #### 4. Stage 模型与生命周期管理 采用全新的 Stage 生命周期管理模式可以帮助更好地组织应用程序各个部分之间的关系及其运行状态变化过程[^4]。这种模式下,每个页面都遵循统一标准完成初始化到销毁整个流程中的各项任务安排。 #### 5. 多语言支持特性 为了满足全球化市场的需求,HarmonyOS 还特别加强了对多种自然语种环境的支持力度[^5]。只需简单配置即可轻松实现不同地区用户的本地化体验调整。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值