ZCodeHMOS:基于 HarmonyOS 的 Electron 桌面应用桥接项目

可将 ZCode Electron 桌面应用移植到 HarmonyOS 2in1 设备,实现跨平台运行。项目包含 ArkTS 桥接层、Electron 模块适配、构建插件及原生 SQLite NAPI 扩展,解决多方面运行限制。【此简介由AI生成】

Branch2Tags3
FilesLast commitLast update
11 days ago
2 days ago
2 days ago
1 day ago
3 days ago
10 hours ago
2 days ago
2 days ago
10 hours ago
4 months ago
2 days ago
11 days ago
2 days ago
2 days ago
1 day ago
4 months ago
1 day ago
4 months ago
4 months ago
10 hours ago

ZCode for HarmonyOS

将 ZCode(Electron 桌面应用)移植到 HarmonyOS 2in1 设备的桥接项目。

EntryAbility → XComponent → libadapter.so → libelectron.so
                                                   ↓
                                         entry.mjs → host → agent

目录

web_engine/       ArkTS 桥接层(含 USB 桥接服务 UsbBridgeServer / UsbBridgeAdapter)
electron/         Electron 模块(权限、Ability)
hvigor/plugin/    构建插件 + 运行时模板(含 usbctl.mjs 客户端)
native/           NAPI addon:SQLite、node-pty、libusb shim;另含 usb-compat(兼容层)、
                  arduino(.ino 编译脚本)、usb-libusb-shim(libusb 转发)
vendor/           ZCode 运行时资源(gitignored)
docs/             文档(外设访问见 docs/peripherals.md;华为/样例参考资料见 docs/reference/)

外设访问

USB 设备与串口(Arduino 等)如何在本域内可用——伪造 sysfs、fd 分发、桥接兜底、虚拟串口, 以及维护这层时不能踩的坑,见 docs/peripherals.md。

一句话版:entry.mjs 自动注入 LD_PRELOAD/LD_LIBRARY_PATH,原生 USB 工具(adb、 fastboot、pk2cmd、avrdude)源码不用改即可直接跑;串口通过虚拟 tty 提供,系统串口服务不覆盖 CH34x 时也能用。实测可用清单、硬约束与调试方式都在该文档里。

更新 ZCode

下载新版 linux-arm64 AppImage 解压到 vendor/ZCode-x.x.x-linux-arm64/,构建插件自动选最高版本。

已知限制

  • fs/promises.glob → polyfill
  • node:sqlite → 自定义 NAPI addon(静态编译 SQLite 3.49.1)
  • child_process.spawn → spawn-wrapper 重定向(seccomp)
  • process.title 写 → setter 拦截(uv_set_process_title SIGSEGV)
  • Renderer 进程无 JIT(缺权限)

Introduction

可将 ZCode Electron 桌面应用移植到 HarmonyOS 2in1 设备,实现跨平台运行。项目包含 ArkTS 桥接层、Electron 模块适配、构建插件及原生 SQLite NAPI 扩展,解决多方面运行限制。【此简介由AI生成】

Customize your domain