一文彻底搞清楚ArkUI

news/2025/3/1 3:33:28/文章来源:https://www.cnblogs.com/feiyi/p/18627812

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java相关开发、鸿蒙开发、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴!君志所向,一往无前!


0.前言

在移动开发领域,长期以来存在着两大阵营:iOS和Android。为了满足不同平台的需求,开发者往往需要分别编写两套代码,这无疑增加了开发成本和维护难度。在这种背景下,跨平台UI框架应运而生,旨在实现“一套代码,多平台运行”。

目前主流的跨端开发框架:

  1. React Native由Facebook开发
  2. Flutter是由Google公司开发的
  3. uni-app 是国内的DCloud开发的
  4. ArkUI 是华为推出一款跨平台
  5. Weex是由阿里巴巴开发的跨平台

1.ArkUI是什么

ArkUI(方舟UI框架)正是在这样的背景下诞生的。它是一款基于Web技术栈的跨平台UI框架,采用声明式语法,使得开发者可以轻松地构建美观、流畅的跨平台应用。是华为推出的一款跨平台用户界面(UI)开发框架,它是华为HarmonyOS(鸿蒙操作系统)的一部分,旨在为开发者提供一种统一的方式来构建适用于多种设备的用户界面。

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

2.ArkUI开发范式

针对不同的应用场景及技术背景,方舟UI框架提供了两种开发范式,分别是基于ArkTS的声明式开发范式(简称“声明式开发范式”)和兼容JS的类Web开发范式(简称“类Web开发范式”)。针对2种模式的说明,如下所示:

  1. 声明式开发范式:采用基于TypeScript声明式UI语法扩展而来的ArkTS语言,从组件、动画和状态管理三个维度提供UI绘制能力。
  2. 类Web开发范式:采用经典的HML、CSS、JavaScript三段式开发方式,即使用HML标签文件搭建布局、使用CSS文件描述样式、使用JavaScript文件处理逻辑。该范式更符合于Web前端开发者的使用习惯,便于快速将已有的Web应用改造成方舟UI框架应用。

目前推荐使用的是声明式开发,为什么呢,主要基于以下几点考虑:

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

3.ArkUI声明式开发

基于ArkTS的声明式开发范式的方舟开发框架是一套开发极简、高性能、支持跨设备的UI开发框架,提供了构建应用UI所必需的能力,主要包括以下几点:

1.ArkTS

ArkTS是优选的主力应用开发语言,围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展。

扩展能力包含声明式UI描述、自定义组件、动态扩展UI元素、状态管理和渲染控制。

状态管理作为基于ArkTS的声明式开发范式的特色,通过功能不同的装饰器给开发者提供了清晰的页面更新渲染流程和管道。

状态管理包括UI组件状态和应用程序状态,两者协作可以使开发者完整地构建整个应用的数据更新和UI渲染。

2.布局

布局是UI的必要元素,它定义了组件在界面中的位置。

ArkUI框架提供了多种布局方式,除了基础的线性布局、层叠布局、弹性布局、相对布局、栅格布局外,也提供了相对复杂的列表、宫格、轮播等。

3.组件

组件是UI的必要元素,形成了在界面中的样子,由框架直接提供的称为系统组件,由开发者定义的称为自定义组件。

系统内置组件包括按钮、单选框、进度条、文本等。开发者可以通过链式调用的方式设置系统内置组件的渲染效果。

我们也可以将系统内置组件组合为自定义组件,通过这种方式将页面组件化为一个个独立的UI单元,实现页面不同单元的独立创建、开发和复用,具有更强的工程性。

4.页面路由和组件导航

应用可能包含多个页面,可通过页面路由实现页面间的跳转。一个页面内可能存在组件间的导航如典型的分栏,可通过导航组件实现组件间的导航。

5.图形

方舟开发框架提供了多种类型图片的显示能力和多种自定义绘制的能力,以满足开发者的自定义绘图需求,支持绘制形状、填充颜色、绘制文本、变形与裁剪、嵌入图片等。

6.动画

动画是UI的重要元素之一。优秀的动画设计能够极大地提升用户体验,框架提供了丰富的动画能力,除了组件内置动画效果外,还包括属性动画、显式动画、自定义转场动画以及动画API等,开发者可以通过封装的物理模型或者调用动画能力API来实现自定义动画轨迹。

7.交互事件

交互事件是UI和用户交互的必要元素。方舟开发框架提供了多种交互事件,除了触摸事件、鼠标事件、键盘按键事件、焦点事件等通用事件外,还包括基于通用事件进行进一步识别的手势事件。手势事件有单一手势如点击手势、长按手势、拖动手势、捏合手势、旋转手势、滑动手势,以及通过单一手势事件进行组合的组合手势事件。

8.自定义能力

自定义能力是UI开发框架提供给开发者对UI界面进行开发和定制化的能力。包括:自定义组合、自定义扩展、自定义节点和自定义渲染。

4.声明式开发范式的好处

4.1开发效率高,开发体验好

代码简洁:通过接近自然语义的方式描述UI,不必关心框架如何实现UI绘制和渲染。

数据驱动UI变化:让开发者更专注自身业务逻辑的处理。当UI发生变化时,开发者无需编写在不同的UI之间进行切换的UI代码, 开发人员仅需要编写引起界面变化的数据,具体UI如何变化交给框架。

开发体验好:界面也是代码,让开发者的编程体验得到提升。

4.2 性能优越

声明式UI前端和UI后端分层:UI后端采用C++语言构建,提供对应前端的基础组件、布局、动效、交互事件、组件状态管理和渲染管线。

语言编译器和运行时的优化:统一字节码、高效FFI(Foreign Function Interface)、AOT(Ahead Of Time)、引擎极小化、类型优化等。

4.3 生态容易快速推进

能够借力主流语言生态快速推进,语言相对中立友好,有相应的标准组织可以逐步演进

5.ArkUI架构体系

1.声明式UI前端

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

2.语言运行时

选用方舟语言运行时,提供了针对UI范式语法的解析能力、跨语言调用支持的能力和TS语言高性能运行环境。

3.声明式UI后端引擎

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

4.渲染引擎

提供了高效的绘制能力,将渲染管线收集的渲染指令,绘制到屏幕的能力。

5.平台适配层

提供了对系统平台的抽象接口,具备接入不同系统的能力,如系统渲染管线、生命周期调度等。

好啦,本篇文章就到这里了,希望本篇可以为你带来新知识,关注我,跟着我搞起来!

本文由mdnice多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/858194.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法网关视频分析网关小知识:监控系统频繁掉线,如何排查网络问题?

在现代监控系统中,网络稳定性对于确保视频流的连续性和图像质量至关重要。然而,监控系统频繁掉线是一个常见的问题,它可能由多种因素引起,包括硬件故障、网络配置错误、供电不稳定等。为了有效排查和解决这些问题,以下是一些系统性的步骤,可以帮助我们定位并解决监控系统…

SQLMAP注入之MySQL注入总结

SQLMAP注入之MySQL注入总结 简介 sqlmap 是一个开源的自动化 SQL 注入(SQLi)攻击和数据库接管工具,广泛应用于渗透测试、漏洞评估和安全研究。它旨在帮助安全研究人员和渗透测试人员发现和利用 SQL 注入漏洞,进行数据库接管、信息泄露和数据提取等操作。 sqlmap 提供了强大…

【SpringCloud】5.Micromete——分布式链路追踪

必要性: 由客户端发起的请求会形成链路,任何一环出现问题,可能导致失败。我们需要快速的观测、定位和解决问题。概述 ZipKin Micromete+ZipKin搭建链路控制案例概述 为什么需要分布式链路技术 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点…

区块链技术学习笔记

密码学基础 哈希算法 哈希算法是指把任意输入值通过特定方式(hash 函数)处理后生成一个结果值。有时会发生输入值不同,但是处理后结果值相同的情况,这就叫哈希冲突。但一般来说,只要哈希函数设计得当,并且样本足够大,那么发生哈希冲突的概率可以忽略不计。因此,可以认为…

Web浏览器播放rtsp视频流详细解决方案

1、背景 在当前项目中,需要实现Web端直接播放RTSP视频流。该功能的核心目标是使得用户能够通过浏览器观看来自不同品牌的IPC(Internet Protocol Camera)设备的实时视频流。主要的IPC设备来自海康威视、大华科技以及宇视等厂商,这些设备普遍使用RTSP协议来传输视频数据。点播…

怎么写好年末报告——看板软件篇

通过明确报告目的、结构清晰、合理利用看板软件等工具和方法,可以撰写出一份既全面又具有深度的年末报告,并为团队的工作提供有力的支持和指导。年末报告怎么写 年末报告是总结过去一年工作成果、分析存在问题并提出未来规划的重要文档。以下是一份撰写年末报告的指南: 明确…

2024年项目管理软件排行榜:哪款最适合你?

在项目管理领域,选择合适的软件工具是确保项目成功的关键因素之一。随着技术的不断进步,市场上涌现出众多功能强大、易于使用的项目管理软件。本文将为您详细介绍2024年最受欢迎的项目管理软件,帮助您找到最适合您团队需求的工具。 禅道项目管理软件禅道项目管理软件是一款开…

学习高校课程-软件设计模式-状态、策略和模版模式(lec12)

State: Problem A finite number of states The program behaves differently within a state Can be switched from one state to another, and switching rules (transitions) are also finite and predetermined 有限数量的状态 程序在某个状态下的行为有所不同 可以从一种状…

Java项目实战:基于 Spring、SpringMVC、MyBatis 与 JSP 的新闻管理系统架构设计与功能实现

1. 引言 1.1目的 本设计文档旨在详细描述基于SSM框架的新闻管理系统的设计方案,包括系统架构、功能模块、数据库设计、接口设计等方面,为系统的开发、测试和维护提供依据,确保系统能够满足用户需求,具有良好的性能、可扩展性和可维护性。 1.2范围 本系统涵盖了新闻管理的各…

宠物公司双旦工作管理,啥办公软件可优化流程?

双旦佳节来临,宠物行业迎来销售热潮,业务量呈井喷式增长。在这繁忙时期,高效的团队协作办公软件成为避免任务延误、确保业务顺畅运转的关键。此类软件能让各部门紧密配合,精准执行任务,提升整体工作效率。以下将盘点 6 款适用于宠物公司的可视化团队协作办公软件。 一、板…

基于Jenkins+Docker的自动化部署实践——整合Git与Python脚本实现远程部署

环境说明:Ubuntu:v24.04.1 LTS Jekins:v2.491 Docker:v27.4.0 Gogs:v0.14.0 - 可选。可以选择Github,Gitlab或者Gitea等Git仓库,不限仓库类型 1Panel: v1.10.21-lts - 可选。这里主要用于查看和管理Docker容器Jenkins实现参数化构建 这里通过Docker进行安装 【系统管理】…

ABB弧焊机器人保养主要包括哪些?

ABB弧焊机器人保养主要包括日检查及维护、周检查及维护和月检查及维护三个方面。一、日检查及维护 - 检查送丝机构,包括送丝力距是否正常,送丝导管是否损坏,有无异常报警。 - 检查气体流量是否正常。 - 检查焊枪安全保护系统是否正常(禁止关闭焊枪安全保护工作…