ArKUI (方舟UI框架)介绍

ArkUI(方舟UI框架)为应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界面开发。

一、ArKUI 开发框架介绍

  • 开发模型层

提供了 UI开发范式的基础语言规范, 并提供内置的UI组件、布局和动画, 提供了多种状态管理机制,为应用开 发者提供一系列接口支持。

  • 引擎层

后端引擎提供了兼容不同开发范式的 UI渲染管线,提供多种基础组件、布 局计算、动效、交互事件,提供了状 态管理和绘制能力。提供了高效的绘 制能力,将渲染管线收集的渲染指令, 绘制到屏幕能力

  • 平台抽象层

提供了针对不同操作系统渲染层的适 配,可抹平不同平台的接口差异,实 现ArkUI框架的多平台一致性

二、基本概念介绍

  • 方舟UI框架(简称ArkUI): 为HarmonyOS应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界面开发。

  • ArkTS: 是UI开发语言,基于Typescript (简称TS)语言扩展而来,是TS的超集。扩展能力包含各种装饰器、自定义组件、UI描述机制。

  • 声明式开发范式: 基于ArkTS的声明式开发范式的方舟开发框架是一套开发极简、高性能、支持跨设备的UI开发框架,提供了构建HarmonyOS应用UI所必需的能力。

  • UI: 即用户界面。开发者可以将应用的用户界面设计为多个功能页面,每个页面进行单独的文件管理,并通过页面路由API完成页面间的调度管理如跳转、回退等操作,以实现应用内的功能解耦。

  • 组件: UI构建与显示的最小单位,如列表、网格、按钮、单选框、进度条、文本等。开发者通过多种组件的组合,构建出满足自身应用诉求的完整界面。

三、 声明式UI和命令式UI的区别

1、命令式 UI
  • 设计思想: 其更加注重的是实现的具体步骤和过程。
  • 代码风格: 侧重于编写细的指令和操作来控制用户界面的构建和交互。
  • 代码可维护性: 复杂、冗长,因为需要明确指定每个步骤和操作的细节来告诉计算机怎么去实现。
2、声明式UI
  • 设计思想: 仅注重描述界面的最终实现的结果,而不关心实现它的过程。
  • 代码风格: 使用更抽象、更高级的语法,通常使用配置、声明或描述来构建用户界面。
  • 代码可维护性: 易于维护,因为它的代码更清晰、简洁,易于理解。

四、 两种开发范式

1、声明式开发范式(基于ArkTS的声明式开发范式

  • 采用基于TypeScript声明式UI语法扩展而来的ArkTS语言,从组件、动画和状态管理三个维度提供UI绘制能力。

  • 数据驱动UI界面更新

    2、类Web开发范式(兼容JS的类Web开发范式

  • 采用经典的HML、CSS、JavaScript三段式开发方式,即使用HML标签文件搭建布局、使用CSS文件描述样式、使用JavaScript文件处理逻辑。该范式更符合于Web前端开发者的使用习惯,便于快速将已有的Web应用改造成方舟UI框架应用。

  • 通过单向数据绑定进行关联的,当数据发生变化的时候UI界面会自动发生变化。

五、 为什么新应用推荐采用声明式开发范式来构建UI?

  • 开发效率: 声明式开发范式更接近自然语义的编程方式,开发者可以直观地描述UI,无需关心如何实现UI绘制和渲染,开发高效简洁。
  • 应用性能: 如下图所示,两种开发范式的UI后端引擎和语言运行时是共用的,但是相比类Web开发范式,声明式开发范式无需JS框架进行页面DOM管理,渲染更新链路更为精简,占用内存更少,应用性能更佳。
  • 发展趋势:声明式开发范式后续会作为主推的开发范式持续演进,为开发者提供更丰富、更强大的能力。

六、不同应用类型支持的开发范式

根据所选用应用模型(Stage模型、FA模型)和页面形态(应用或服务的普通页面、卡片)的不同,对应支持的UI开发范式也有所差异,详见下表。

表1 支持的UI开发范式

应用模型 页面形态 支持的UI开发范式
Stage模型(推荐) 应用或服务的页面 声明式开发范式(推荐)
卡片 声明式开发范式(推荐)类Web开发范式
FA模型 应用或服务的页面 声明式开发范式类Web开发范式
卡片 类Web开发范式

七、Stage模型、FA模型

1、 Stage模型

定义

Stage模型是HarmonyOS NEXT版本主推且会长期演进的模型。该模型提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的"舞台",因此称这种应用模型为Stage模型。在Stage模型中,多个应用组件共享同一个ArkTS引擎实例,应用组件之间可以方便地共享对象和状态,同时减少复杂应用运行对内存的占用。

特点

  • 基于过程:Stage模型将软件开发过程划分为多个阶段,每个阶段都有明确的目标和任务,适用于软件开发的实施阶段。
  • 资源共享:在Stage模型中,应用组件之间可以方便地共享对象和状态,提高资源利用效率。
  • 分布式场景:开发者通过Stage模型能够更加便利地开发出分布式场景下的复杂应用。

应用场景

Stage模型主要用于HarmonyOS等操作系统的应用开发,特别是针对需要高效资源利用和分布式场景的应用。

2、FA模型

定义

FA模型,即Feature Abstraction Model(特征抽象模型),是HarmonyOS开发中的重要组成部分。它是一种描述软件系统的特征和功能的模型,用于帮助开发者更好地理解系统的本质,并指导系统的开发和设计。

特点

  • 基于需求:FA模型主要用于软件需求分析阶段,通过对用户需求进行分析,确定软件开发的功能和特性。
  • 统一抽象接口:FA模型提供了物联网设备的统一抽象接口,使得开发者可以更加方便地使用设备的各种功能。
  • 增强开发效率:通过定义特征的名称、功能、参数等信息,FA模型简化了设备功能的描述过程,提高了开发效率。

应用场景

FA模型广泛应用于物联网设备的开发过程中,特别是在需要快速响应市场需求、提高开发效率的场景下。

综上所述,Stage模型和FA模型在软件开发和评估中扮演着不同的角色。Stage模型侧重于软件开发的实施阶段和分布式场景下的应用开发,而FA模型则专注于软件需求分析阶段和物联网设备的特征抽象与描述。两者共同为软件开发提供了有力的支持。

相关推荐
PlumCarefree2 小时前
基于鸿蒙API10的RTSP播放器(四:沉浸式播放窗口)
华为·harmonyos
中关村科金5 小时前
中关村科金推出得助音视频鸿蒙SDK,助力金融业务系统鸿蒙化提速
华为·音视频·harmonyos
小强在此9 小时前
基于OpenHarmony(开源鸿蒙)的智慧医疗综合应用系统
华为·开源·团队开发·健康医疗·harmonyos·开源鸿蒙
奔跑的露西ly16 小时前
【鸿蒙 HarmonyOS NEXT】popup弹窗
华为·harmonyos
OH五星上将20 小时前
OpenHarmony(鸿蒙南向开发)——轻量和小型系统三方库移植指南(一)
嵌入式硬件·移动开发·harmonyos·openharmony·鸿蒙开发·鸿蒙移植
codes234577891 天前
鸿蒙开发之ArkTS 界面篇 一
harmonyos·arkts·harmonyos next·deveco-studio·鸿蒙界面·鸿蒙界面入门·鸿蒙 index.ets
HarmonyOS_SDK1 天前
免弹窗、预授权,默认界面扫码能力打造系统级扫码体验
harmonyos
追风小老头折腾程序1 天前
实战06-LazyForEach
harmonyos
让开,我要吃人了1 天前
OpenHarmony鸿蒙( Beta5.0)摄像头实践开发详解
驱动开发·华为·移动开发·harmonyos·鸿蒙·鸿蒙系统·openharmony
OH五星上将2 天前
如何编译OpenHarmony SDK API
嵌入式硬件·移动开发·api·sdk·harmonyos·openharmony·鸿蒙开发