ArkUI框架
HarmonyOS提供的方舟开发框架(ArkUI框架),提供了开发UI需要使用的组件,布局,动画,交互,绘制等能力。
ArkUI提供了两个开发范式
| 范式名称 | 语言 | 开发方式 | UI更新方式 | 使用场景 | 适用开发人群 |
|---|---|---|---|---|---|
| 声明式开发范式 | ArkTS(基于TypeScript语法扩展) | 使用ArkTS提供的组件,动画和状态管理的UI绘制能力 | 数据驱动更新 | 大型复杂的项目 | 移动端开发同学 |
| 类web开发 | JS | 使用html+css+js的原生web开发方式 | 数据驱动更新 | 简单项目 | web前端开发同学 |
推荐使用声明式开发范式
- 开发效率:更接近自然语义,开发中可以直观描述UI
- 应用性能:对比类web开发范式,无需JS框架进行页面DOM管理,渲染更新链路更少,占内存少,应用性能高
- 发展趋势:主推的开发范式,为开发同学提供更丰富强大的能力
回顾上一篇文章,我们一股脑的创建了一个项目,这里使用到的语言就是ArkTS
应用模型
HarmonyOS提供的应用程序所需能力的抽离提炼,包含了必备的组件和运行机制。开发同学可以基于统一的模型进行更简单高效的开发
构成要素
- 应用组件: 应用的基本组成单位,是应用的运行入口,提供了生命周期的回调函数。开发过程中应首先编写应用组件以及对应的生命周期回调函数,并在应用配置文件中配置相关信息。这样Harmony系统在运行期间通过配置文件创建应用组件的实例,并调度生命周期回调函数,从而可以执行开发编写的代码
- 应用进程模型: 定义应用进程的创建和销毁方式,以及进程间的通信方式
- 应用线程模型: 定义应用进程内线程的创建和销毁方式,主线程和UI线程的创建方式,以及线程间的通信方式
- 应用任务管理模型: 定义任务Mission的创建和销毁方式,任务和组件的关系。
- 应用配置文件: 包含应用配置信息,应用组件信息,权限信息,开发者自定义信息等。这些信息在编译构建,分发以及运行阶段分别提供给编译工具,应用市场以及Harmony操作系统使用
两种应用模型
- FA(Feature Ability)模型:HarmonyOS早期支持的模型,已不再主推
- Stage模型:HarmonyOS3.1 版本新增的模型,目前主推且会长期演进的模型。该模型提供了AbilityStage,WindowStage等类作为应用组件和Window窗口的'舞台',因此称为Stage模型
两个模型最大的区别在于:Stage模型中,多个应用组件共享同一个ArkTS引擎实例;而FA模型中,每个应用组件独享一个ArkTS引擎实例。因此在Stage模型中,应用组件之间可以方便的共享对象和状态,同时减少复杂应用运行对内存的占用
Stage模型特点
- 为复杂应用而设计:
- 多个应用组件共享一个ArkTS引擎(运行ArkTS的虚拟机)实例,应用组件之间可以方便的共享对象和状态,来减少复杂应用运行对内存的占用
- 采用面向对象的开发方式,代码可读性高,易维护,可扩展性强
- 多个应用组件共享一个ArkTS引擎(运行ArkTS的虚拟机)实例,应用组件之间可以方便的共享对象和状态,来减少复杂应用运行对内存的占用
- 支持多设备和多窗口形态
- 便于系统对应用组件进行裁剪(无屏设备可裁剪窗口)。
- 便于系统扩展窗口形态。
- 在多设备(如桌面设备和移动设备)上,应用组件可使用同一套生命周期。
- 平衡应用能力和系统管控成本:
- 提供特定场景(如卡片、输入法)的应用组件,以便满足更多的使用场景
- 规范化后台进程管理:为保障用户体验,Stage模型对后台应用进程进行了有序治理,应用程序不能随意驻留在后台,同时应用后台行为受到严格管理,防止恶意应用行为。
- 提供特定场景(如卡片、输入法)的应用组件,以便满足更多的使用场景
回顾上一篇文章,我们在创建项目的时候选择的是Stage模型进行开发
好了,基本概念就到此结束了,主要讲了HarmonyOS提供的UI框架和应用模型,下一篇文章介绍Stage模型对应的项目目录结构