鸿蒙编程语言白皮书
文档版本发布日期
文档版本
发布日期
2025-06-20
2
版权所有?华为终端有限公司2025。保留一切权利。
本材料所载内容受著作权法的保护,著作权由华为公司或其许可人拥有,但注明引用其他方的内容除外。未经华为公司或其许可人事先书面许可,任何人不得将本材料中的任何内容以任何方式进行复制、经销、翻印、播放、以超级链路连接或传送、存储于信息检索系统或者其他任何商业目的的使用。
商标声明
华为,以上为华为公司的商标(非详尽清单),未经华为公司书面事先明示许可,任何第三方不得以任何形式使用。
注意
华为会不定期对本文档的内容进行更新。
本文档仅作为使用指导,文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
华为终端有限公司
地址:广东省东莞市松山湖园区新城路2号
网址:
3
CONTENT
O1鸿蒙编程语言整体框架
1)ArkTS概述 6
2)仓颉概述 7
3)C/C++概述 8
4)语言互操作介绍 9
O2鸿蒙编程语言适用场景
1)高效开发 18
2)高性能 25
3)安全 43
4)跨平台 47
5)技术资产保护 48
4
O3鸿蒙编程语言演进策略
1)语言演进整体策略 54
2)智能化演进策略 56
3)未来一年语言演进策略 58
5
1第一章:鸿蒙编程语言整体框架
鸿蒙是多语言生态,ArkTS、仓颉和C/C++充分互补。ArkTS是动态类型编程语言,主打易学易用、生态丰富、极简开发、持续创新四大特征;仓颉是静态类型编程语言,主打高性能、强安全、跨平台、智能化等特性。为满足不同业务场景诉求及不同开发者编程习惯,两者长期协同发展和长期演进,并保持生态兼容。ArkTS和仓颉均通过垃圾回收机制自动管理内存,C/C++支持Native开发,需开发者手动管理内存,三种语言相互配合,共同支撑鸿蒙应用生态构建。
图1-1:鸿蒙APP架构示意图
6
1.1ArkTS概述
ArkTS是鸿蒙应用开发高级语言。
ArkTS基于TypeScript(简称TS),保持了TS的基本语法和风格,同时通过引入静态类型校验模式和类型推断增强规则,强化开发期静态检查和分析能力,提升代码健壮性,并实现更好的程序执行稳定性和性能。ArkTS同时也支持与TS/JavaScript(简称JS)高效互操作,可以完全复用TS/JS生态,已广泛应用于鸿蒙应用生态。
在标准TS的基础上,ArkTS结合鸿蒙应用开发的诉求进行了创新和能力扩展,主要新增四大特性如下:
l并发编程模型:ArkTS新增提供TaskPool和Worker两种并发编程API供开发者使用。同时,ArkTS进一步提出了Sendable对象模型的机制来支持对象在并发任务间的引用传递,极大提升ArkTS对象在并发实例间的通信性能。
l声明式语法:ArkTS结合ArkUI提供声明式UI描述、状态管理、渲染控制等强大的UI开发能力,拥有简洁且富有表达力的语法,通过简洁的语法和实时预览功能,大大提高了UI开发的效率,使得代码更易于编写和阅读。
l强大的标准库:ArkTS拥有一个功能丰富的标准库,涵盖了从数据结构、算法到输入输出等方方面面,例如:高精度浮点运算、二进制Buffer、XML生成解析转换和多种容器库等丰富的操作方法,帮助开发者简化开发工作,提升开发效率。
l模块化管理:ArkTS支持应用模块化开发、编译、打包和运行,例如:应用模块化按需加载能力,方便大型复杂应用的多模块业务场景,高性能启动运行,提高了代码的模块化管理和重用性。
7
方舟编译运行时(ArkCompiler)支持ArkTS、TS、JS的编译运行,目前它主要分为ArkTS编译工具链和ArkTS运行时两部分。其中ArkTS编译工具链负责在开发侧将高级语言编译为方舟字节码文件(*.abc),而ArkTS运行时则负责在设备侧运行字节码文件执行程序逻辑。
ArkTS会结合鸿蒙应用开发的需求持续创新,平滑演进。进一步丰富并发编程、完善类型系统、现代化语法等显著改进和新特性,使开发者能够更快速地构建稳定且性能优越的应用。
1.2仓颉概述
仓颉是鸿蒙应用开发高级语言。
仓颉作为一款面向鸿蒙应用开发的现代编程语言,是一款静态类型、静态编译的编程语言,通过现代语言特性的集成、全方位的编译优化