先看官方的介绍
ArkCompiler
是华为自研的统一编程平台,包含编译器、工具链、运行时等关键部件,支持高级语言在多种芯片平台的编译与运行,并支撑应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。
AOT 编译模式
ArkCompiler 利用 ArkTS 的静态类型信息,进行类型推导并生成对象描述和内联缓存,加速运行时对字节码的解释执行;AOT(Ahead-of-Time)Compiler 利用静态类型信息结合 Profiling 信息直接将字节码编译生成优化机器码,让应用启动即可运行高性能代码,提升应用启动和运行性能。
LiteActor 轻量化并发
ArkCompiler 运行时在 HarmonyOS 上提供了 Taskpool 和 Worker 支持并发编程。在运行时实例内存隔离的基础上,通过共享运行实例中的不可变或者不易变的对象、内建代码块、方法字节码等技术手段,优化了并发运行实例 的启动性能和内存开销。
好的!咱们用最「小白」的方式,聊聊鸿蒙的 方舟编译器 (ArkCompiler) 是干什么的,以及它神奇的「编译过程」
简单比喻:编译器就像个「超级翻译官 + 优化大师」
想象一下:
你(程序员) 用人类容易理解的语言(比如 Java, Kotlin, JavaScript)写了一堆 指令 (源代码)。这就像你用 中文 写了一本「如何做一道美味红烧肉」的菜谱。
你的手机/手表/电视 (CPU) 只懂一种超级简单的、由
0
和1
组成的 机器语言。这就像你的厨房炉灶只认得 摩斯密码 写的操作指令!问题来了:你的中文菜谱,炉灶(CPU)根本看不懂啊!怎么办?
这时候就需要「编译器」出场了!
传统编译器 (比如安卓的): 像个 现场翻译官。
你每次要做红烧肉(启动 App),翻译官(编译器的一部分,叫 JIT 编译器)就站在炉灶旁边。
你念一句中文菜谱(运行一行代码),翻译官就立刻翻译成一句摩斯密码(机器码)告诉炉灶。
缺点: 边念边翻译,速度慢! 炉灶经常要停下来等翻译,做菜(运行 App)就卡卡的。翻译官(虚拟机)自己也要占地方、吃饭(消耗内存和CPU)。
鸿蒙的方舟编译器 (ArkCompiler): 像个 提前准备的超级优化大师。
在你把菜谱(App)交给厨房(安装到手机)之前,优化大师(ArkCompiler)就 提前 把你的 整本中文菜谱, 一口气 翻译、优化、整理成 炉灶最熟悉、最高效的摩斯密码操作手册 (机器码)。
等你要做菜(打开 App)时,炉灶(CPU)直接拿起这本优化好的摩斯密码手册 就开始干活!
好处:
快! 没有现场翻译的等待,启动飞快,操作流畅。
省! 不需要那个一直站在旁边的翻译官(虚拟机)了,省内存省电。
顺! 优化大师整理的手册步骤清晰合理,炉灶干活更顺畅,不容易卡顿
方舟编译器的「编译过程」简化版(小白视角)
你写代码 (源代码): 就像用中文(Java/JS等)写菜谱。
[程序员阶段]
交给方舟编译器 (编译开始): 你把菜谱交给优化大师 ArkCompiler。
[App 开发完成,准备发布]
拆解 & 理解 (解析): 大师先仔细阅读你的中文菜谱,理解每一句话的意思和步骤之间的关系。
[编译器前端:词法分析、语法分析、语义分析]
优化 & 改写 (优化 + 生成中间表示): 大师边看边想:
“这一步可以跟下一步合并,省时间!”
“这个材料可以提前准备好,不用临时切!”
他把你的菜谱用一种 内部通用语言 重新整理、优化了一遍,记录在优化笔记上。这一步做了大量的性能提升魔法!
[编译器中端:各种优化发生在中间表示上]
翻译成摩斯密码 (生成机器码): 大师根据他那本超级优化的笔记,从头到尾 翻译成炉灶(手机 CPU)能直接看懂的 摩斯密码手册 (机器码)。
[编译器后端:目标代码生成]
打包成 App (安装包): 这本优化好的摩斯密码手册(机器码),和其他必要的图片、声音等资源,一起打包成
.hap
文件(鸿蒙 App 安装包)。[生成最终安装文件]
你安装 App: 把打包好的
.hap
文件装到你的鸿蒙设备(手机/手表等)上。此时,编译好的机器码就已经在里面了!你点开 App (运行): 设备 CPU 直接读取 安装时就准备好的、优化好的 摩斯密码手册 (机器码),立刻开始干活!没有现场翻译!没有中间商赚差价! 所以感觉就是:嗖~ 一下就打开了!滑起来丝般顺滑
方舟编译器带来的「爽点」总结
App 打开像闪电: 因为 CPU 直接运行最终指令,不用边运行边翻译。
操作如德芙般丝滑: 优化做得好,CPU 干活顺畅,垃圾清理(内存回收)也更快更安静,卡顿大大减少。
手机更省电耐用: 省掉了虚拟机这个“中间商”的消耗,CPU 不用额外干活去翻译,自然更省电,长期用也不容易变卡。
一个系统,多种设备都流畅: 不管是手机、手表还是电视,方舟编译器都能为它们各自的 CPU 提前准备好最合适的“摩斯密码手册”,保证体验一致流畅。
一句话记住方舟编译器
它就是一个「提前把 App 代码变成手机 CPU 最爱吃的‘营养膏’(机器码)的神器」,让 App 在鸿蒙设备上跑得又快又顺又省电!
这样解释是不是清楚多啦?它干的活虽然很深奥,但目标很简单:让你的鸿蒙设备用起来 爽! 😄