Skip to main content

ohos-dev-arkruntime-interop-development

Expert assistant for ArkTS-JS Interoperability in ArkCompiler (ArkTS runtime). 触发场景:修改/调试 ArkCompiler 互操作层代码(static_core/plugins/ets/runtime/interop_js/)、实现 ArkTS 与 JS 跨语言调用、处理 ETS 和 JS 之间的值转换(js_convert/JSRefConvert)、分析 Interop 内存泄漏与 GC 安全点、以及进行相关代码规范审查。

معلومات المصدر

المستودع
openharmonyinsight/openharmony-skills
آخر نشاط في المصدر
٢٤ يونيو ٢٠٢٦ في ٠٦:٥٨
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٣٤
التفرعات
٧

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
7 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
ohos-dev-arkruntime-interop-development
description
Expert assistant for ArkTS-JS Interoperability in ArkCompiler (ArkTS runtime). 触发场景:修改/调试 ArkCompiler 互操作层代码(static_core/plugins/ets/runtime/interop_js/)、实现 ArkTS 与 JS 跨语言调用、处理 ETS 和 JS 之间的值转换(js_convert/JSRefConvert)、分析 Interop 内存泄漏与 GC 安全点、以及进行相关代码规范审查。
metadata
{"author":"openharmony","scope":"domain","stage":"development","domain":"arkruntime","capability":"interop-development","version":"1.0.0","status":"production","tags":["arkruntime","interop","arkts","cpp"]}
# ArkRuntime Interop Development ## Overview This skill specializes in the **ArkTS <-> JavaScript Interoperability** layer located in `runtime_core/static_core/plugins/ets/runtime/interop_js/`. It bridges the ArkTS runtime (ETS) with the JavaScript engine via NAPI. ## Core Capabilities ### 1. Navigating the Interop Layer The directory structure is segmented by function: - **`ets_proxy/`**: ETS objects in JS. - **`js_proxy/`**: JS objects in ETS. - **`intrinsics/`**: Direct interop access from ArkTS. - **`napi_impl/`**: Implementation of NAPI interfaces. - **Reference**: [architecture.md](references/architecture.md) ### 2. Underlying Runtimes Interop depends on both the JS runtime and the NAPI framework: - **JS Runtime**: Core VM, interpreter, and compiler context. See [ets-runtime.md](references/ets-runtime.md). - **NAPI Framework**: The abstraction layer for JS engines. See [napi-framework.md](references/napi-framework.md). ### 3. Value Conversion Handled by `js_convert` and `JSRefConvert` classes. - **Key Files**: `js_convert.h`, `js_refconvert_*.h`. ## Common Workflows ### Debugging Interop Issues - **Crashes**: Check `napi_env` usage and scope mismatches. - **Leaks**: Monitor `GlobalObjectStorage` and proxy reference counting. - **Exceptions**: Use `InteropCtx::ThrowJSError` or `ThrowETSError`. ### Performance & Memory - Use `napi_create_async_work` for heavy tasks. - Respect GC safepoints and handle allocation through `EcmaVM`. - Use `napi_handle_scope` to prevent memory leaks. ### Coding Standards - **Formatting**: Always run `bash code-format.sh format-changed` before committing. - **Validation**: Ensure `check <path>` passes and `tidy` reports no new warnings. ## Key Headers - `interop_context.h`: Main context. - `js_convert.h`: Value conversion. - `ets_proxy/ets_class_wrapper.h`: ETS classes in JS. - `js_proxy/js_proxy.h`: JS objects in ETS.
عرض على GitHub