开源移植实战:把 Arduino IDE 移植到鸿蒙 PC —— 轻创客 适配全记录
·
欢迎加入开源鸿蒙 PC 社区:https://harmonypc.csdn.net/
欢迎在 PC 社区平台申请新建项目:https://atomgit.com/OpenHarmonyPCDeveloper适配开源地址:https://gitcode.com/OpenHarmonyPCDeveloper/ohos_ArduinoIDE### 一、为什么要适配 轻创客「轻创客」的定位是开源硬件 IDE。选择 Arduino IDE 做鸿蒙 PC 适配,看中的是它在同类桌面工具中的位置:上游社区活跃、功能覆盖完整、许可合规路径清晰。对 HarmonyOS PC 生态而言,这类桌面级工具正是应用矩阵里最稀缺的一块。Arduino IDE 是 Web 应用形态:界面运行在浏览器引擎里,本地能力(文件、窗口、外链)依赖宿主环境——这些假设在鸿蒙上都不成立。把它带过来,等于回答一组结构性的问题:如何在没有传统显示服务器、没有窗口管理器参与窗口治理的系统上渲染并接收输入;文件、剪贴板、输入法如何对接;以及 AGPL-3.0 许可义务如何合规履行。当前适配的发布形态:「轻创客」已上架华为应用市场;开源仓与本篇对应:https://gitcode.com/OpenHarmonyPCDeveloper/ohos_ArduinoIDE。收录上游版本 2.3.11。### 二、先划清边界:不是"编译通过",而是换掉平台依赖如果只以"消除编译报错"为目标,把源码编出动态库也得不到可用的应用。本项目的验收口径是真机上可安装、可启动、可完成核心工作闭环。上游实现与鸿蒙侧方案的对应关系如下:| 层次 | 上游实现 | 鸿蒙侧方案 || — | — | — || UI 运行时 | Electron / 浏览器 | 系统 ArkWeb 承载 Web 应用 || 本地 API | Node/Electron 主进程 | boot.js 桥:文件对话框/剪贴板/窗口控制映射到 ArkTS || 进程 | 多进程 | 单进程 kiosk 形态 |### 三、鸿蒙版的整体架构Web 应用类移植以系统 ArkWeb 为运行时:应用静态资源随包部署,壳层以 boot.js 桥把 “Web 侧需要的能力(文件选择、下载、外部链接、窗口控制)映射到 ArkTS 实现。应用 Web 代码零修改或仅去品牌小补丁;输入法由 ArkWeb 原生承载,无需桥接。仓库收录 2590 个上游源码文件(约 119.7 MiB)与移植层配套;全仓 4433 个文件。结构如下:(仓库结构,上游源码树整树收录在仓库根目录)├── (上游源码树 → 仓库根目录:arduino-ide)├── port-*/ # 平台配套:patches、scripts、src├── README-upstream.md # 上游原始 README 存档└── README.md # 中文仓库说明### 四、核心适配过程1. 资源随包:Web 构建产物入 rawfile,首启按版本戳幂等解压;2. boot.js 桥:window 注入桥对象,文件/分享/外链逐项映射;3. 去品牌化:启动页/帮助/外链按上架口径裁剪;4. 导航兜底:BACK 被页面吞时由壳层提供导航回退。工程推进中的关键节点(摘自工程台账):- 补遗调研已证伪 Theia+Node 死路- arduino-cli 归 TUI 工具箱线(Go-OHOS spike 前置)- 2026-10-27 回读:市场名去品牌改名「轻创客」(AppScope app_name+3 套 EntryAbility_label+隐私协议名三处已对齐),11 项受限 ACL 全部获批并出发布 Profile- 1.1.0/1100000 于 10-27 08:34 CST 送审人工审核(state=4、reviewState=1、无在架版本),随包 HNP 原生编译链已在 2in1 实证(IDE 442B/CLI 944B)- 上传/串口为平台能力缺口,文案已删该表述### 五、适配中的难点与对策#### 难点一:后端依赖需要服务端的 Web 应用在端侧不可验,上架口径需标注或提供演示后端。#### 难点二:触摸适配Web 应用假定鼠标悬停;触摸直通与兜底导航是必调项。### 六、编译、安装与启动环境前置:DevEco Studio(hvigorw 与 OHOS SDK)、meson + ninja、python3,交叉工具链路径见仓库 port-*/scripts/env.sh。仓库 port-*/scripts/ 内含交叉构建脚本链;改动上游树或后端补丁后,按 BUILD.md/脚本注释重跑对应构建,再打包:hvigorw assembleApp --no-daemon安装与启动:hdc install -r entry/build/default/outputs/default/*-signed.haphdc shell aa start -b com.airarduino.app -a EntryAbility### 七、功能边界与合规能力边界如实说明:已验证的是"可安装、可启动、核心工作流可用”;依赖独立进程或平台缺口的能力(如部分插件体系)不在当前形态内,后续以仓库记录为准逐项推进,不提前宣称完成。合规方面:Arduino IDE 采用 AGPL-3.0,本仓库对源码的全部修改在同协议下公开,预编译产物与源码同仓分发以满足对应源码义务;再分发产物时必须一并提供完整源码。上游项目名与商标归其所有方,本适配为独立衍生作品,不代表上游官方背书。签名私钥与含密钥配置一律不入库。### 八、总结这套适配的价值,不在于"能跑一个演示程序",而在于把 Arduino IDE 这样体量的 ArkWeb 壳 应用整体搬到鸿蒙 PC 的路径走通:平台依赖收敛到可替换的后端,窗口治理与输入法在壳层补齐,许可义务随仓库履行。最终产物是能在 HarmonyOS PC、平板乃至手机上安装使用的完整应用「轻创客」。欢迎在开源鸿蒙 PC 社区(https://harmonypc.csdn.net/)交流移植经验,仓库地址:https://gitcode.com/OpenHarmonyPCDeveloper/ohos_ArduinoIDE
更多推荐




所有评论(0)