文档版本发布日期V2.02026-06-08 版权所有©华为终端有限公司2026。保留一切权利。 本材料所载内容受著作权法的保护,著作权由华为公司或其许可人拥有,但注明引用其他方的内容除外。未经华为公司或其许可人事先书面许可,任何人不得将本材料中的任何内容以任何方式进行复制、经销、翻印、播放、以超级链路连接或传送、存储于信息检索系统或者其他任何商业目的的使用。 商标声明 华为,以上为华为公司的商标(非详尽清单),未经华为公司书面事先明示许可,任何第三方不得以任何形式使用。 注意 华为会不定期对本文档的内容进行更新。 本文档仅作为使用指导,文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。 华为终端有限公司 地址:广东省东莞市松山湖园区新城路2号网址:https://consumer.huawei.com CONTENT 鸿蒙编程语言整体框架 1)ArkTS概述······················62)仓颉概述·······················3)C/C++概述······················4)语言互操作介绍···················89115)其他编程语言·····················20 鸿蒙编程语言适用场景 1)高效开发·······················223)安全·························4)跨平台························5)技术资产保护····················325155592)高性能························6)AI辅助开发·····················647)智能化························66 鸿蒙编程语言演进策略 1)语言演进整体策略·················2)未来一年语言演进策略···············6970 1第一章:鸿蒙编程语言整体框架 鸿蒙是多编程语言生态。为满足不同业务场景诉求及不同开发者编程习惯,鸿蒙向应用开发者提供ArkTS等多语言混合开发能力,其中ArkTS、仓颉和C/C++是主要编程语言。 ArkTS是动态类型编程语言,主打易学易用、生态丰富、极简开发、持续创新四大特征;仓颉是静态类型编程语言,主打高性能、强安全、跨平台、智能化等特性。C/C++代码可通过跨语言互操作封装为ArkTS、仓颉扩展模块,提供给ArkTS、仓颉高效使用。ArkTS和仓颉均通过垃圾回收机制自动管理内存,C/C++需开发者手动管理内存。 开发者可以根据业务场景需要,选择使用ArkTS、仓颉和C/C++进行特性开发。对于动态更新业务场景、与TS/JS高效互通场景、快速构建等场景建议优先选择ArkTS;对于高吞吐量/高频读写的数据处理场景、高频交互高负载场景、启动时延敏感等场景建议优先选择仓颉;对于游戏引擎、物理仿真等计算密集型任务场景、需要深度优化CPU指令集的专用算法库硬件加速等场景建议优先选择C/C++。 ArkTS、仓颉和C/C++支持高性能互操作,相互配合、互不替代、长期演进、形成优势互补,共同支撑鸿蒙应用生态构建。 ArkTS概述 ArkTS是鸿蒙首选应用开发高级语言。 ArkTS基于TypeScript(简称TS),保持了TS的基本语法和风格,同时通过引入类型校验模式和类型推断增强规则,强化开发期静态检查和分析能力,提升代码健壮性,并实现更好的程序执行稳定性和性能。ArkTS同时也支持与TS/JavaScript(简称JS)高效互操作以复用业界TS/JS生态技术资产。ArkTS已广泛应用于鸿蒙应用生态。 在标准TS的基础上,ArkTS结合鸿蒙应用开发的诉求进行了创新和能力扩展,主要新增四大特性如下: 并发编程模型:ArkTS新增提供TaskPool和Worker两种并发编程API供开发者使用。同时,ArkTS进一步提出了Sendable对象模型的机制来支持对象在并发任务间的引用传递,极大提升ArkTS对象在并发实例间的通信性能。 声明式语法:ArkTS结合ArkUI提供声明式UI描述、状态管理、渲染控制等强大的UI开发能力,拥有简洁且富有表达力的语法,通过简洁 的语法和实时预览功能,大大提高了UI开发的效率,使得代码更易于编写和阅读。 强大的标准库:ArkTS拥有一个功能丰富的标准库,涵盖了从数据结构、算法到输入输出等方方面面,例如:高精度浮点运算、二进制Buffer、XML生成解析转换和多种容器库等丰富的操作方法,帮助开发者简化开发工作,提升开发效率。 模块化管理:ArkTS支持应用模块化开发、编译、打包和运行,例如:应用模块化按需加载能力,方便大型复杂应用的多模块业务场景,高性能启动运行,提高了代码的模块化管理和重用性。 ArkTS在保持TS基本语法风格的基础上,引入以下规则,强化开发期代码静态检查和分析能力,提升代码健壮性并实现更好的程序执行性能: 不支持结构化类型:ArkTS遵循命名类型的类型系统,有利于增强类型安全性。同时,命名类型系统也有利于开发者明确声明类型的边界和抽象,提升大型系统长期演进的可靠性。 不支持更改对象布局:ArkTS不支持更改对象布局,提升代码健壮性和可读性的同时有利于提高执行性能。使能空安全检查:ArkTS通过强制启用编译时空安全检查,能够在开发阶段识别并规避绝大多数空指针风险,提升代码安全性和可维护性。 方舟编译运行时(ArkCompiler)支持ArkTS、TS、JS的编译运行,目前它主要分为ArkTS编译工具链和ArkTS运行时两部分。其中ArkTS编译工具链负责在开发侧将高级语言编译为方舟字节码文件(*.abc),而ArkTS运行时则负责在设备侧运行字节码文件执行程序逻辑。 ArkTS会结合鸿蒙应用开发的需求持续创新,平滑演进。进一步丰富并发编程、完善类型系统、现代化语法等显著改进和新特性,使开发者能够更快速地构建稳定且性能优越的应用。 仓颉概述 仓颉也是鸿蒙应用开发高级语言。 仓颉是一款静态类型、静态编译的编程语言,通过现代语言特性的集成、全方位的编译优化和运行时实现、以及开箱即用的工具链支持,为鸿蒙应用开发者打造友好开发体验和卓越程序性能。 同时,仓颉的全部模块包括编译器、语言运行时、标准库及工具链等均已开源并实现社区化开发和运作,欢迎参与仓颉开源社区贡献,参见链接:仓颉开源社区1。OpenHarmony社区版本默认继承仓颉语言社区版本。 仓颉的具体特性表现为: 高性能:仓颉基于静态类型和静态编译优化技术,具有“编译前端+编译后端+运行时”的全栈垂直优化能力,为鸿蒙应用提供卓越的性能支持。仓颉采用内存共享的并发模型,提供轻量用户态线程和易用的无锁并发数据结构让并发编程变得轻松高效;提供了低时延高效率的自动内存管理,支持鸿蒙应用以更高帧率、更少内存流畅运行,从而降低设备功耗,延长续航。仓颉运行时采用轻量化设计,使仓颉应用具有较低的基础开销。通过仓颉包按需动态加载技术,仓颉应用启动/运行占用资源更少。 强安全:仓颉通过静态类型系统和自动内存管理,确保程序内存安全;同时,仓颉提供多种编译时和运行时检查,包括数组下标越界检查、类型转换检查、数值计算溢出检查、以及字符串编码合法性检查等,能够及时发现程序运行中的错误。 跨平台:仓颉支持基于静态编译至机器码的跨OS平台执行能力,允许开发者实现“同构开发、异构运行”的跨OS平台代码共享,支持鸿蒙、Android、iOS、Windows、Linux、MacOS等OS平台;支持条 件编译宏和common/specific声明机制组织跨平台代码,通过跨平台UI库、跨平台系统库及Java/Objective-C互操作实现生态复用,并提供统一的跨平台调试工具cjdb支撑多平台调试。 智能化:仓颉通过元编程扩展出面向LLM智能体编程的Agent DSL,该语言提供多种特性有效简化Agent编写复杂度,包括Agent声明式配置、提示词模式、多Agent协同、多轮对话等;同时,该语言兼容MCP生态,能够让开发者快速开发智能体应用。 C/C++概述 鸿蒙应用开发全面支持C/C++语言开发能力,为开发者提供开发套件(NDK)及配套工具链。基于C/C++实现的功能模块,可通过跨语言互操作封装为ArkTS、仓颉扩展模块,提供给ArkTS、仓颉高效使用。 C/C++在应用开发中的适用场景 在鸿蒙应用开发中,ArkTS凭借其声明式UI、丰富的组件库和高效的开发工具链,能够显著提升开发效率,让开发者快速构建跨设备应用。相比之下,C API开发门槛高、需要手动管理内存、调试复杂,开发效率较低。因此,当前鸿蒙的开放策略明确以ArkTS优先,C API则遵循谨慎提供原则——仅针对高性能计算、底层系统交互、游戏渲染等对实时性或算力要求极高的场景进行开放,确保在保持高效开发体验的同时,为关键性能诉求提供必要的底层能力支撑,当前如下场景会提供C API: 极致性能与硬件加速场景:这个场景面向的是对计算效率有严格要求的业务,通常需要主动开放底层能力。 高性能计算:涵盖高性能IO、CPU密集计算、音视频编解码、图形计算等。 硬件指令集优化:为深度优化CPU指令集的专用算法库提供支持。 生态框架兼容场景:为保障主流应用框架能正常运行,需要按需开放其内部所依赖的C API。 典型框架:如Unity、Electron、CEF等。 行业标准与约定场景:当行业存在明确的规范、标准或广泛约定时,需要按需开放相应的C API以满足合规或互操作性要求。 C/C++支持组件 为构建符合鸿蒙技术标准的应用开发能力,提供了一套完整的C/C++开发组件体系,具体包括: NDK(Native Development Kit):作为鸿蒙应用开发的核心工具套件,NDK对外发布提供完整的编译工具链、系统C API接口、C++运行时环境支持。 libc标准运行时库:基于开源MUSL库作优化,鸿蒙系统实现了标准C语言运行时支持、功能扩展、系统级性能的提升。标准C++运行时库:采用LLVM 15版本的libc++作为基础,提供完整的C++标 准 库 实 现 , 支 持 全 量C++98、C++03、C++11、C++14、C++17标准与大部分C++20标准。暂未支持的少量C++20标准特性列表见LLVM官方链接2。编译工具链:选用毕昇编译器作为官方指定的C/C++编译器,确保符合最新语言标准规范、支持特有的编译优化、提供稳定的工具链支持。这套组件体系共同构成了鸿蒙系统对开发能力的完整支持,为开发者提供了高效、稳定的C/C++开发环境。 语言互操作介绍 ArkTS与C/C++互操作 开发者可以使用Node-API实现ArkTS和C/C++的跨语言交互。ArkTS提供的Node-API是基于Node.js 18.x LTS的Node-API规范扩展开发的机制,为开发者提供了ArkTS与C/C++模块之间的交互能力。它提供了一组稳定的、跨平台的API,可以在不同的操作系统上使用。 使用ArkTS语言开发鸿蒙应用一般情况下无需依赖C/C++库,但部分场景由于性能、效率等要求,比如游戏引擎、物理仿真等,需要依赖使用C/C++库。Node-API规范封装了I/O、CPU密集型、OS底层等能力并对外暴露ArkTS接口,从而实现ArkTS和C/C++的交互。 涉及到互操作的主要场景如下: 系统可以将框架层丰富的模块功能通过ArkTS接口开放给上层应用。应用开发者也可以选择将一些对性能、底层系统调用有要求的核心功能用C/C++封装实现,再通过ArkTS接口使用,提高应用本身的执行效率。 Node-API的组成架构 Native Module:开发者使用Node-API开发的模块,用于在ArkTS侧导入使用。Node-API