ArkUI 与 跨平台UI技术的发展
内容提要
本文介绍了ArkUI的开发过程和与跨渠道技术的关系,包括跨渠道UI的核心要素、ArkUI选择ArkTS作为开发语言的原因以及跨渠道技术的常见实现方式。文章还提到了ArkUI选择将Flutter引擎作为跨渠道技术的一部分,并解释了Flutter引擎的架构和优势。
延伸解读
ArkTS 如何突破 JS 性能瓶颈
文章指出,JS 常被认为“慢”,是因为传统 JS 在运行时才解析和编译代码,产生 JIT 开销。ArkTS 通过 AOT 提前编译机器码,在安装时即完成编译,避免运行时解析损耗,从而满足 APP 对性能的要求。这类似于 ReactNative 的 Hermes 引擎直接解析字节码,但 ArkTS 更彻底地提前生成适配鸿蒙的机器码。
跨平台 UI 的三种技术路线对比
文章将跨平台方案分为三类:以 WebKit 为代表的网页中心方案,以 ReactNative 为代表的系统 Native 渲染方案,以及以 Flutter 为代表的自制引擎方案。WebKit 依赖 WebView,存在加载和初始化损耗;ReactNative 复用原生控件,但需维护映射关系;Flutter 自绘 UI,性能好但生态耦合 Dart。ArkUI 的选择融合了后两者的思路。
ArkUI 为何选择 Flutter 引擎作为起点
鸿蒙初期生态薄弱,ArkUI 必须先在 Android 上跑通。Flutter 引擎本身能对接 Android 系统,且渲染架构优秀。ArkUI 复用 Flutter 引擎,但将 Dart 编写的 UI 表述层替换为 ArkTS,并用 C++ 重写相关框架,从而保留 Flutter 的渲染优点,同时为后续切换自研引擎(如 Rosen)预留可能。
多引擎架构的灵活性与挑战
ArkUI 采用 JS 引擎 + Flutter 引擎 + 多引擎的架构,既满足当前跨平台需求,也为未来自定义系统做准备。但多引擎架构对设计提出更高要求,需要适配线程模型、定义 TS 组件到 C++ 的封装,并处理 Flutter 框架概念的迁移。文章认为,这种架构是 ArkUI 历史发展的产物,平衡了现实与长远规划。
Q&A
ArkUI的开发语言是什么?
ArkUI选择ArkTS作为开发语言。
ArkUI与Flutter引擎的关系是什么?
ArkUI选择将Flutter引擎作为跨渠道技术的一部分,以便快速适配Android系统。
ArkTS如何提高应用性能?
ArkTS通过提前编译机器码来提高应用性能,避免运行时的开销。
跨渠道技术主要有哪些实现方式?
跨渠道技术主要分为三种:以网页为中心的WebKit、以系统Native渲染引擎为主的ReactNative、以及以自制引擎为主的Flutter。
ArkUI的设计理念是什么?
ArkUI的设计理念是保留Flutter的优点,同时为后续自定义引擎的切换提供可能性。
ArkUI如何满足不同平台的需求?
ArkUI通过JS引擎与Flutter引擎的结合,形成了多引擎的架构,满足了不同平台的需求。