ArkCompiler has a built-in componentized and configurable multi-language compilation and runtime platform of OpenHarmony and HarmonyOS with HarmonyOS NEXT. It contains the core components such as the compiler, toolchain, and runtime. It supports compilation and running of high-level programming languages on the multi-chip platform. ArkCompiler JS Runtime provides the capability of compiling and running the JavaScript (JS) language on the OpenHarmony operating system side.
ArkCompiler JS Runtime consists of two parts such as the JS compiler toolchain and JS runtime. The JS compiler toolchain compiles JS source code into ArkCompiler bytecodes. The JS runtime executes the generated ArkCompiler bytecodes.7
The common module of language runtime in OpenHarmony operating system called ArkCompiler Runtime Core also created as Ark Runtime on top of HarmonyOS Runtime base on current dual-framework, alongside single framework OpenHarmony-based HarmonyOS NEXT which consists of language-independent basic runtime libraries, including ArkCompiler File, Tooling, Base and ISA. The ArkCompiler File provides bytecodes and information required for executing the bytecodes. Tooling supports the runtime debugger. The Base is responsible for implementing platform related utilities. ISA function provides common instruction set architecture that is language-independent that allows to run HarmonyOS applications regardless of different instruction set and chipsets in hardware with great compatibility of diverse set of hardware and interoperability between HarmonyOS, Oniro and OpenHarmony software and hardware ecosystems.8
ArkCompiler JS Runtime is the default JS runtime on OpenHarmony. It supports ECMAScript libraries and efficient container libraries. It also provides a set of native APIs for C++ and JS interaction and a variety of garbage collectors that features high performance.9
ArkCompiler eTS Runtime is a runtime used in ArkTS applications derived from former HarmonyOS 3.0/OpenHarmony 3.1 API 8 eTS (extendedTypeScript) on OpenHarmony as well as HarmonyOS apps taking advantage of custom OpenHarmony-based HarmonyOS NEXT core operating system. It contains an allocator and garbage collector (GC) for ArkTS/JS objects, a standard library that conforms to the ECMAScript specification, an interpreter for running the ARK Bytecode (abc) generated by ARK front-end components, an inline cache for acceleration, a statically typed compiler, a C++/C function interface for Native API (NAPI) application development at runtime, and other modules in Ahead-of-time compilation via DevEco Studio since version 3.1.1 on both HarmonyOS 3.1 SDK and OpenHarmony 3.2 SDK API 9.10
The ets_frontend is a front-end tool in the ARK Runtime Subsystem which combines the ace-ets2bundle component that supports converting ETS programming language files into ARK bytecode files. They correspond with ArkTS app development in OpenHarmony and HarmonyOS development under HarmonyOS NEXT system.11
The ArkCompiler Toolchain provides developers with debugging tools for ArkTS application development, such as the Debugger, CPUProfiler, and HeapProfiler. The debugging and tuning capabilities provided by the Ark Toolchain is used through DevEco Studio IDE that relies on the ArkCompiler Runtime to provide runtime-related information to developers.12
Siddiqui, Aamir (June 22, 2019). "Ark Compiler Explained: How Huawei's App Compiler May Improve Android App Performance". XDA Developers. Retrieved February 12, 2024. https://www.xda-developers.com/huawei-ark-compiler-android-app-performance/ ↩
龚宇洁 (2019). "方舟编译器初探". 科技与创新 (23): 47–48. doi:10.15913/j.cnki.kjycx.2019.23.018. Retrieved May 3, 2025. https://doi.org/10.15913/j.cnki.kjycx.2019.23.018 ↩
"ArkCompiler Runtime". OpenAtom Gitee. Retrieved February 12, 2024. https://gitee.com/openharmony/docs/blob/master/en/readme/ARK-Runtime-Subsystem.md ↩
Amit (September 9, 2019). "Huawei Ark compiler officially open source from GitHub for self-hosting". Huawei Update. Retrieved February 12, 2024. https://www.huaweiupdate.com/huawei-ark-compiler-officially-open-source-from-github-for-self-hosting/ ↩
Sarkar, Amy (February 9, 2022). "OpenArkCompiler 1.0 launched, Huawei Ark Compiler open source project (HACOSP)". HC Newsroom. Retrieved February 12, 2024. https://www.huaweicentral.com/openarkcompiler-1-0-launched-huawei-ark-compiler-open-source-project-hacosp/ ↩
Mishra, Yash (September 7, 2021). "Ark Compiler JS runtime became open source in Huawei HarmonyOS". HC Newsroom. Retrieved February 12, 2024. https://www.huaweicentral.com/ark-compiler-js-runtime-became-open-source-in-huawei-harmonyos/ ↩
"Overview". OpenAtom Gitee. Retrieved February 12, 2024. https://gitee.com/openharmony/arkcompiler_ets_runtime/blob/master/docs/overview.md ↩
"Runtime Core". OpenAtom Gitee. Retrieved February 12, 2024. https://gitee.com/openharmony/arkcompiler_runtime_core ↩
"ArkCompiler JS Runtime". OpenAtom Gitee. Retrieved February 12, 2024. https://gitee.com/openharmony/arkcompiler_ets_runtime#https://gitee.com/openharmony/docs/blob/master/en/readme/ARK-Runtime-Subsystem.md ↩
"ArkCompiler JS Runtime - ets Runtime". OpenAtom Gitee. Retrieved February 12, 2024. https://gitee.com/openharmony/arkcompiler_ets_runtime ↩
"ets_frontend". OpenAtom Gitee. Retrieved February 12, 2024. https://gitee.com/openharmony/arkcompiler_ets_frontend ↩
"Ark toolchain components". OpenAtom Gitee. Retrieved February 12, 2024. https://gitee.com/openharmony/arkcompiler_toolchain ↩