Ark Compiler , también conocido como ArkCompiler , es una plataforma unificada de compilación y ejecución de Huawei que admite la compilación y ejecución conjuntas en diversos lenguajes de programación y plataformas de chips, así como en los sistemas operativos de código abierto OpenHarmony y Oniro , junto con el sistema propietario HarmonyOS con sistema de núcleo único HarmonyOS NEXT incluido en la aplicación nativa en programación basada en eventos en un entorno de desarrollo unificado y anteriormente construido para EMUI basado en Android para teléfonos inteligentes y tabletas Huawei con aplicaciones apk habilitadas para HMS en AppGallery que mejoran el rendimiento de la aplicación. [ 2 ] Admite una variedad de lenguajes de programación dinámicos y estáticos, incluidos Java, C++, [ 3 ] JavaScript , TypeScript y ArkTS . Es la base de compilación y ejecución que permite que OpenHarmony, Oniro OS junto con HarmonyOS NEXT se ejecuten en múltiples tipos de dispositivos, como dispositivos inteligentes, teléfonos móviles, PC, tabletas, televisores, automóviles y wearables. ArkCompiler consta de dos partes: la cadena de herramientas del compilador y el entorno de ejecución. [ 4 ]
Huawei inicialmente liberó el código fuente de Ark Compiler para la plataforma Android en GitHub el 9 de septiembre de 2019, mientras se alejaban del sistema operativo debido a las sanciones estadounidenses . [ 5 ] Luego, la compañía liberó el código fuente de Ark Compiler con OpenArkCompiler como parte del proyecto de código abierto de Huawei Ark Compiler (HACOSP) a principios de febrero de 2022 [ 6 ] y ArkJS_runtime, en septiembre de 2021, dos años después de su inicio en agosto de 2019. [ 7 ]
Descripción general
ArkCompiler cuenta con una plataforma de compilación y ejecución multilingüe, modular y configurable, integrada para OpenHarmony y HarmonyOS con HarmonyOS NEXT . Incluye componentes clave como el compilador, la cadena de herramientas y el entorno de ejecución. Permite la compilación y ejecución de lenguajes de programación de alto nivel en la plataforma multichip. ArkCompiler JS Runtime ofrece la capacidad de compilar y ejecutar JavaScript (JS) en el sistema operativo OpenHarmony.
ArkCompiler JS Runtime consta de dos partes: la cadena de herramientas del compilador JS y el entorno de ejecución JS. La cadena de herramientas del compilador JS compila el código fuente JS en bytecodes de ArkCompiler. El entorno de ejecución JS ejecuta los bytecodes de ArkCompiler generados. [ 8 ]
Núcleo de tiempo de ejecución de ArkCompiler
El módulo común de tiempo de ejecución de lenguaje en el sistema operativo OpenHarmony, llamado ArkCompiler Runtime Core, también creado como Ark Runtime sobre HarmonyOS Runtime, se basa en el marco dual actual, junto con el marco único basado en OpenHarmony, HarmonyOS NEXT, que consta de bibliotecas básicas de tiempo de ejecución independientes del lenguaje, incluyendo ArkCompiler File, Tooling, Base e ISA. ArkCompiler File proporciona los bytecodes y la información necesaria para su ejecución. Tooling admite el depurador de tiempo de ejecución. Base se encarga de implementar las utilidades relacionadas con la plataforma. La función ISA proporciona una arquitectura de conjunto de instrucciones común e independiente del lenguaje que permite ejecutar aplicaciones HarmonyOS independientemente de los diferentes conjuntos de instrucciones y chipsets en el hardware, con una gran compatibilidad con diversos conjuntos de hardware e interoperabilidad entre los ecosistemas de software y hardware de HarmonyOS, Oniro y OpenHarmony. [ 11 ]
Entorno de ejecución de ArkCompiler JS
ArkCompiler JS Runtime es el entorno de ejecución de JavaScript predeterminado en OpenHarmony. Admite bibliotecas ECMAScript y bibliotecas de contenedores eficientes. También proporciona un conjunto de API nativas para la interacción entre C++ y JavaScript , así como diversos recolectores de basura de alto rendimiento. [ 12 ]
ArkCompiler eTS Runtime
ArkCompiler eTS Runtime es un entorno de ejecución utilizado en aplicaciones ArkTS derivadas de la antigua API 8 eTS (extendedTypeScript) de HarmonyOS 3.0/OpenHarmony 3.1 en OpenHarmony, así como en aplicaciones HarmonyOS que aprovechan el sistema operativo central HarmonyOS NEXT personalizado basado en OpenHarmony . Contiene un asignador y un recolector de basura (GC) para objetos ArkTS/JS, una biblioteca estándar que cumple con la especificación ECMAScript, un intérprete para ejecutar el ARK Bytecode (abc) generado por los componentes front-end de ARK, una caché en línea para aceleración, un compilador de tipado estático, una interfaz de función C++/C para el desarrollo de aplicaciones de API nativa (NAPI) en tiempo de ejecución y otros módulos en compilación anticipada a través de DevEco Studio desde la versión 3.1.1 tanto en HarmonyOS 3.1 SDK como en OpenHarmony 3.2 SDK API 9. [ 13 ]
ets_frontend
ets_frontend es una herramienta de interfaz en el subsistema de tiempo de ejecución de ARK que combina el componente ace-ets2bundle, el cual permite convertir archivos del lenguaje de programación ETS en archivos de código de bytes de ARK. Se corresponden con el desarrollo de aplicaciones ArkTS en OpenHarmony y el desarrollo de HarmonyOS bajo el sistema HarmonyOS NEXT. [ 14 ]
Cadena de herramientas de ArkCompiler
El conjunto de herramientas ArkCompiler proporciona a los desarrolladores herramientas de depuración para el desarrollo de aplicaciones ArkTS , como el depurador, el analizador de CPU y el analizador de memoria. Las capacidades de depuración y optimización que ofrece el conjunto de herramientas Ark se utilizan a través del IDE DevEco Studio , que se basa en el entorno de ejecución de ArkCompiler para proporcionar información relacionada con el tiempo de ejecución a los desarrolladores. [ 15 ]
Referencias
- ↑ "OpenHarmony 3.0 se adaptó con éxito al chip Loongson 1C300B" . Actualización de Huawei . 15 de diciembre de 2021. Consultado el 15 de diciembre de 2021 .
- ↑ Siddiqui, Aamir (22 de junio de 2019). "Explicación del compilador Ark: cómo el compilador de aplicaciones de Huawei puede mejorar el rendimiento de las aplicaciones de Android" . XDA Developers . Consultado el 12 de febrero de 2024 .
- ↑龚宇洁 (2019). "方舟编译器初探" .科技与创新(23): 47– 48. doi : 10.15913/j.cnki.kjycx.2019.23.018 . Consultado el 3 de mayo de 2025 .
- ↑ "ArkCompiler Runtime" . OpenAtom Gitee . Consultado el 12 de febrero de 2024 .
- ↑ Amit (9 de septiembre de 2019). "El compilador Huawei Ark se publica oficialmente como código abierto en GitHub para su autoalojamiento" . Actualización de Huawei . Consultado el 12 de febrero de 2024 .
- ↑ Sarkar, Amy (9 de febrero de 2022). "Lanzamiento de OpenArkCompiler 1.0, proyecto de código abierto Huawei Ark Compiler (HACOSP)" . Sala de prensa de HC . Consultado el 12 de febrero de 2024 .
- ↑ Mishra, Yash (7 de septiembre de 2021). "El entorno de ejecución de Ark Compiler JS se convirtió en código abierto en Huawei HarmonyOS" . Sala de prensa de HC . Consultado el 12 de febrero de 2024 .
- ↑ "Descripción general" . OpenAtom Gitee . Consultado el 12 de febrero de 2024 .
- ↑ "OpenHarmony 3.0 se adaptó con éxito al chip Loongson 1C300B" . Actualización de Huawei . 15 de diciembre de 2021. Consultado el 15 de diciembre de 2021 .
- ↑ "OpenHarmony 3.0 se adaptó con éxito al chip Loongson 1C300B" . Actualización de Huawei . 15 de diciembre de 2021. Consultado el 15 de diciembre de 2021 .
- ↑ "Runtime Core" . OpenAtom Gitee . Consultado el 12 de febrero de 2024 .
- ↑ "ArkCompiler JS Runtime" . OpenAtom Gitee . Consultado el 12 de febrero de 2024 .
- ↑ "ArkCompiler JS Runtime - ets Runtime" . OpenAtom Gitee . Consultado el 12 de febrero de 2024 .
- ↑ "ets_frontend" . OpenAtom Gitee . Consultado el 12 de febrero de 2024 .
- ↑ "Componentes de la cadena de herramientas de Ark" . OpenAtom Gitee . Consultado el 12 de febrero de 2024 .
- Software de 2019
- Software 2024
- Compiladores
- Sistemas de tiempo de ejecución
- Productos Huawei
- Compiladores libres y de código abierto
- Software que utiliza la licencia Apache.