完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嘉宾简介 余枝强,OpenHarmony技术指导委员会跨平台应用开发框架TSG负责人,华为终端软件部应用程序框架首席架构师,华为Web技术C-TMG主任。主导 OpenHarmony / HarmonyOS UI 开发框架 ArkUI 的整体规划、架构设计及实现;也曾主导华为浏览器内核、快应用引擎的从零到一构建。在加入华为之前,任职于英特尔公司,曾负责移动平台的 HTML5 引擎—— Crosswalk 开源项目、XML 高性能处理器等项目。 文章内容来源 第一届开放原子开源基金会OpenHarmony技术峰会——编程语言及应用框架分论坛 正 文 内 容 应用框架,是操作系统连接开发者生态,实现用户体验的关键基础设施。业务的飞速发展促进了应用框架不断演进和变化。在万物智联的新场景下,应用框架应该如何设计呢?华为终端开发框架首席架构师余枝强,在第一届OpenHarmony技术峰会上给出了几点思考。 01 ►业界应用框架的演进 应用是用户使用操作系统/设备的入口,应用框架则是应用开发和运行的基础设施。以移动端为例,一个典型的应用结构一般包括用户界面、业务逻辑、共享库以及包清单文件等部分。
其中,UI框架的主要组成如下图所示:
一般而言,应用框架中的包管理、生命周期/权限管理,和具体的操作系统关联较紧,并相对稳定;能力API则是操作系统对设备能力的封装,主要影响应用使用设备的能力。UI框架以及相应的编程语言则是影响用户体验(包括开发和运行体验)的关键要素,尤其随着移动平台的不断普及以及移动设备的差异,移动平台上的UI框架(含编程语言)是业界不断演进的重点领域。 近十年来,业界UI编程框架围绕着更好的开发效率,更好的运行体验以及适应更多的平台不断发展演进。其中有三个关键的时间节点:
总体而言,移动端应用框架的演进包含以下几个关键特征:
02 ►万物智联下的应用框架的架构设计思考 目前,在万物智联的新场景下,智能设备的数量和种类越来越多,场景也越来越复杂,存在着新需求和新挑战:1.设备间具有不同形态:各设备的屏幕不同,其分辨率、长宽、形状、尺寸等均不相同;2.设备自身的交互方式不同:存在触控、键鼠、遥控、语音、3D手势等多种形式;3.设备间具有不同的能力:各设备的CPU、GPU、NPU、蓝牙等处理能力不同,且RAM、ROM的规格也不相同;4.设备之间的交互方式也不相同:例如无缝流转、协同等。此外,跨OS平台,动态内容部署能力也是重要的需求。 如何设计相应的应用框架来应对挑战呢?以下将从语言选型和框架设计两个维度来讨论。 2.1 ►► 语言选型 如图所示的排行榜显示了在2012年至2022年的区间里,最活跃、热度最高的前20名编程语言,由图可以看出JavaScript和TypeScript的排名是遥遥领先的,本身拥有非常好的生态基础。但是,JavaScript和TypeScript也有一定的缺陷,比如缺失基于类型系统的运行时优化,AOT能力,精细化类型以及细粒度的并行化等。 2.2 ►► 框架设计 相应的,现有框架如Web引擎、React Native、Flutter等在各自领域都具备一定的优势,但也存在性能体验及其与生态难平衡、HTML+CSS+JS三段式开发方式和业界领先的声明式开发(SwiftUI)相比有较大差距的问题。 2.3 ►► 设计思考 尽管业界在语言、框架等各领域都持续进行了相关改进,但始终缺乏系统性的跨越。对于单平台应用框架来说,需要解决开发效率(开发范式、语言、基础库、三方库、调试调优、预览等)、性能体验(性能、内存、功耗、能力完备度等)以及跨设备(不同设备的UI适配和能力适配)等核心问题;对于跨平台应用框架来说,需要解决不同平台的代码复用度、性能和体验不一致等核心问题。此外,还需要考虑动态化内容部署机制和应用部署等因素。 03 ►ArkUI的创新和实践 OpenHarmony应用框架围绕如何解决上述问题,设计了ArkTS开发语言以及ArkUI开发框架,下面将从语言和框架两个维度进行介绍。 3.1 ►► OpenHarmony生态开发语言-ArkTS OpenHarmony生态开发语言ArkTS在JavaScript和TypeScript的基础上,围绕着极简表达、极致性能的最终目标进一步演进。改进了JavaScript和TypeScript的运行时,优化了类型信息,扩展了声明式UI语法,以及轻量级并行能力。后续会持续演进分布式、严格类型等相关能力。 3.2 ►► ArkUI开发框架 ArkUI整体架构如图所示。最上层提供了自研声明式UI范式,也支持类Web范式;中间层为方舟编译器和运行时、声明式UI后端引擎以及渲染引擎,下层为平台适配层和平台桥接层。此外,ArkUI开发框架还配套了相应的IDE开发工具以及工具链,提升开发体验。 ArkUI的声明式范式通过语法扩展方法,提供了装饰器、自定义组件、UI描述、状态管理、内置组件、属性方法以及事件方法等模块,可以根据用户需求灵活组合,从而形成定制化界面。ArkUI的声明式范式具备简洁自然声明式语法,统一UI表达;多态组件/动态布局,简化多设备UI适配;多维度状态管理,简化数据传递&UI变更等关键特征。其中,多维度状态管理包括组件、页面、全局以及分布式等多个维度,数据与UI间的传递方式也支持单向以及双向传递,以满足应用开发的相关诉求。 ArkUI的运行机制如图所示。其中,以ArkTS语言开发的源代码,经过编译工具链和ArkUI框架API编译,形成中间代码,再通过方舟运行时形成ArkUI框架运行时。在整个渲染设计上,ArkUI提供了扁平化渲染管线、按需渲染、数据绑定以及基于PGO的AOT等创新能力,提升用户体验以及渲染效率。在跨设备的设计上,ArkUI提供了响应式组件+响应式能力的响应式布局能力以及自适应组件+自适应能力的自适应布局能力,并且在视觉交互侧也通过分层参数和主题风格、多态组件以及交互归一等进行了交互能力的增强。此外,ArkUI支持部署至百K级、M级的轻量化设备,通过引擎轻量化改造以及基于目标平台进一步轻量化定制,实现跨设备能力适配。 3.3 ►► ArkUI生态 衡量一个应用框架最终是否成功,关键还是要看它对应用开发者生态影响的深度和广度。下图描述了ArkUI生态构建思路概览。 如图所示,自底向上,整体生态构建分为四个维度。
总之,ArkUI的整体生态推进策略是以关键应用为牵引,逐步夯实相应能力构建,通过工具、社区协同,并布局标准培育中长线影响力。 04 ►未来规划 在未来的工作中,ArkUI开发框架团队将持续围绕生态和竞争力逐步演进,包括跨平台能力、分层对接能力、跨设备适配能力、渲染能力、并行化/资源调度能力等进行增强,不断提高用户体验。期待大家一起助力鸿蒙生态,持续创新,使其能够更好地赋能万物智联新场景。 来源:OpenHarmony TSC
|
|
相关推荐
|
|
华秋电子 | 电子发烧友亮相OpenHarmony人才生态大会2024
566 浏览 0 评论
OpenHarmony有 支持的分布式数据库吗? 自动同步各节点数据?
1554 浏览 0 评论
OpenHarmony人才生态大会南向生态社区发展论坛在武汉圆满举办
1119 浏览 0 评论
644 浏览 0 评论
792 浏览 0 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 01:09 , Processed in 0.546562 second(s), Total 66, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号