Node-API Parte 10: Carga dinámica de módulos ArkTS en HarmonyOS con Node-API

Guía para cargar ArkTS en HarmonyOS desde C++ con Node-API y napi_load_module_with_info. Casos de uso, configuración y manejo de errores para arquitecturas modulares.

2 sept 2025 • 3 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Leer el artículo original Node-API Part-10 Loading ArkTS Modules Dynamically in HarmonyOS Using Node-API

?? Node-API Parte 10 Carga dinámica de módulos ArkTS en HarmonyOS con Node-API

?? Introducción

A medida que HarmonyOS madura, el desarrollo híbrido que combina el rendimiento de C++ con la flexibilidad de ArkTS Ark TypeScript está ganando protagonismo. Una pieza clave de esta interoperabilidad es Node-API, que permite a los módulos nativos cargar e invocar módulos ArkTS en tiempo de ejecución. En este artículo explicamos cómo utilizar napi_load_module_with_info para importar y ejecutar lógica definida en ArkTS desde C++, desbloqueando dinamismo y un diseño modular avanzado.

?? Por qué cargar módulos ArkTS desde código nativo

• Rendimiento y flexibilidad delega cálculos intensivos a C++ y conserva la lógica de negocio o configuración en TypeScript. • Arquitecturas de plugins incorpora nuevas funciones sin recompilar binarios nativos. • Comunicación entre capas permite que módulos del sistema escritos en C++ interactúen con lógica ArkTS, separando responsabilidades de forma limpia.

?? Qué es napi_load_module_with_info

napi_load_module_with_info carga de forma dinámica un módulo ArkTS dentro del contexto nativo. Soporta múltiples orígenes de módulo • Archivos locales .ets del proyecto • Bibliotecas HAR • Paquetes gestionados por ohpm o remotos • APIs del sistema como arrobasohos.hilog • Bibliotecas nativas .so que exponen símbolos accesibles desde JavaScript

Parámetros esenciales • path ruta o nombre del módulo, por ejemplo entry/src/main/ets/Test o arrobasohos/hypium • module_info combinación bundleName y moduleName habitual en app.json5 y module.json5

Acceso tras la carga • napi_get_named_property para obtener funciones exportadas • napi_get_property para constantes u objetos • napi_call_function para invocar la lógica ArkTS desde C++

?? Casos de uso reales

• Cargar módulos locales reutiliza helpers, configuración y lógica de negocio escritos en .ets. • Usar paquetes de terceros integra paquetes como arrobasohos/hypium en flujos nativos. • Acceder a APIs del sistema consume dinámicamente módulos integrados como arrobasohos.hilog para registro y utilidades. • Trabajar con bibliotecas nativas trata .so como módulos y llama funciones C o C++ a través de bindings tipo JavaScript.

?? Guía paso a paso conceptual

1 Invoca napi_load_module_with_info con la ruta del módulo y module_info de tu aplicación. 2 Con napi_get_named_property recupera la función exportada que necesitas. 3 Llama a dicha función con napi_call_function. 4 Para leer valores exportados usa napi_get_property con la clave adecuada. 5 Gestiona el resultado y errores de estado de Node-API en cada paso.

?? Preparación y configuración

• Declaración de módulos añade los paquetes requeridos en runtimeOnly.packages o runtimeOnly.sources de build-profile.json5. • Rutas y metadatos asegúrate de que module_info y las rutas se alineen con app.json5, module.json5 y oh-package.json5. • Dependencias declara explícitamente las dependencias de terceros en el módulo consumidor incluso si llegan de forma transitiva por ohpm.

?? Errores frecuentes y cómo detectarlos

• napi_generic_failure rutas inválidas o metadatos del proyecto mal configurados. • napi_pending_exception problemas en tiempo de ejecución ficheros ausentes, punto de entrada incorrecto o imports rotos. • cppcrash fallo de bajo nivel poco común registra y reporta con trazas detalladas. Implementa un manejo robusto de errores y alternativas cuando dependas de cargas dinámicas.

? Conclusión

Cargar dinámicamente módulos ArkTS con napi_load_module_with_info supone un salto en el desarrollo con HarmonyOS. Te permite crear aplicaciones modulares, escalables y limpias combinando la velocidad de C++ con la expresividad de TypeScript. Resulta ideal para arquitecturas de plugins, optimización de rendimiento y para orquestar lógica ArkTS desde hilos nativos de forma eficiente y elegante.

?? Sobre Q2BSTUDIO

En Q2BSTUDIO somos una empresa de desarrollo de software enfocada en aplicaciones a medida y software a medida, especialistas en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y power bi, ia para empresas y diseño de agentes IA. Si necesitas llevar esta estrategia híbrida a producción, nuestro equipo puede ayudarte desde la arquitectura hasta la entrega y observabilidad. Descubre cómo diseñamos soluciones multiplataforma con enfoque en calidad y seguridad en nuestro servicio de aplicaciones a medida y software a medida y potencia tus productos con inteligencia artificial aplicada.

?? Recursos

Documentación oficial de Huawei sobre napi_load_module_with_info

Créditos Autor original Bunyamin Eymen Alagoz

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat