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
ソースの最終更新活動
2026年6月24日 06:58
検出された SKILL.md の言語
英語
スター
34
フォーク
7

インストール方法

デフォルトでは、最初にソースを確認する 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で見る