1.2 Harmony开发前奏-基本概念

149 阅读4分钟

ArkUI框架

HarmonyOS提供的方舟开发框架(ArkUI框架),提供了开发UI需要使用的组件,布局,动画,交互,绘制等能力。

ArkUI提供了两个开发范式

范式名称语言开发方式UI更新方式使用场景适用开发人群
声明式开发范式ArkTS(基于TypeScript语法扩展)使用ArkTS提供的组件,动画和状态管理的UI绘制能力数据驱动更新大型复杂的项目移动端开发同学
类web开发JS使用html+css+js的原生web开发方式数据驱动更新简单项目web前端开发同学

推荐使用声明式开发范式

  • 开发效率:更接近自然语义,开发中可以直观描述UI
  • 应用性能:对比类web开发范式,无需JS框架进行页面DOM管理,渲染更新链路更少,占内存少,应用性能高

image.png

  • 发展趋势:主推的开发范式,为开发同学提供更丰富强大的能力

回顾上一篇文章,我们一股脑的创建了一个项目,这里使用到的语言就是ArkTS image.png

应用模型

HarmonyOS提供的应用程序所需能力的抽离提炼,包含了必备的组件和运行机制。开发同学可以基于统一的模型进行更简单高效的开发

构成要素

  • 应用组件: 应用的基本组成单位,是应用的运行入口,提供了生命周期的回调函数。开发过程中应首先编写应用组件以及对应的生命周期回调函数,并在应用配置文件中配置相关信息。这样Harmony系统在运行期间通过配置文件创建应用组件的实例,并调度生命周期回调函数,从而可以执行开发编写的代码
  • 应用进程模型: 定义应用进程的创建和销毁方式,以及进程间的通信方式
  • 应用线程模型: 定义应用进程内线程的创建和销毁方式,主线程和UI线程的创建方式,以及线程间的通信方式
  • 应用任务管理模型: 定义任务Mission的创建和销毁方式,任务和组件的关系。
  • 应用配置文件: 包含应用配置信息,应用组件信息,权限信息,开发者自定义信息等。这些信息在编译构建,分发以及运行阶段分别提供给编译工具,应用市场以及Harmony操作系统使用

两种应用模型

  1. FA(Feature Ability)模型:HarmonyOS早期支持的模型,已不再主推
  2. Stage模型:HarmonyOS3.1 版本新增的模型,目前主推且会长期演进的模型。该模型提供了AbilityStage,WindowStage等类作为应用组件和Window窗口的'舞台',因此称为Stage模型

两个模型最大的区别在于:Stage模型中,多个应用组件共享同一个ArkTS引擎实例;而FA模型中,每个应用组件独享一个ArkTS引擎实例。因此在Stage模型中,应用组件之间可以方便的共享对象和状态,同时减少复杂应用运行对内存的占用

Stage模型特点

  • 为复杂应用而设计:
    1. 多个应用组件共享一个ArkTS引擎(运行ArkTS的虚拟机)实例,应用组件之间可以方便的共享对象和状态,来减少复杂应用运行对内存的占用
    2. 采用面向对象的开发方式,代码可读性高,易维护,可扩展性强
  • 支持多设备和多窗口形态
    1. 便于系统对应用组件进行裁剪(无屏设备可裁剪窗口)。
    2. 便于系统扩展窗口形态。
    3. 在多设备(如桌面设备和移动设备)上,应用组件可使用同一套生命周期。
  • 平衡应用能力和系统管控成本:
    1. 提供特定场景(如卡片、输入法)的应用组件,以便满足更多的使用场景
    2. 规范化后台进程管理:为保障用户体验,Stage模型对后台应用进程进行了有序治理,应用程序不能随意驻留在后台,同时应用后台行为受到严格管理,防止恶意应用行为。

回顾上一篇文章,我们在创建项目的时候选择的是Stage模型进行开发

image.png

好了,基本概念就到此结束了,主要讲了HarmonyOS提供的UI框架和应用模型,下一篇文章介绍Stage模型对应的项目目录结构