当前 README.md 支持以下语言:
- 简体中文 [zh-Hans] # 当前
- 繁體中文 (香港) [zh-Hant-HK]
- 繁體中文 (台灣) [zh-Hant-TW]
- English [en]
- Français [fr]
- Español [es]
- 日本語 [ja]
- 한국어 [ko]
- Русский [ru]
- العربية [ar]
AutoJs6 Node.js Runtime 插件为 AutoJs6 提供内嵌 Node.js 24.21.0 原生运行时, 用于执行 Node.js 脚本和插件化运行时任务.
- 提供
nodejs插件服务, 插件 ID 为nodejs, 引擎为nodejs. - 通过
org.autojs.plugin.nodejs.RUNTIME为宿主提供同步脚本执行和运行时预热. - 支持覆盖排队与执行全过程的脚本超时, 超时返回
ERR_AUTOJS6_SCRIPT_TIMEOUT; 未指定超时时仍可无限运行 - 默认启用
dgram(UDP) 与http2, 并对trace_events返回明确的禁用错误 - 支持 Debug 构建显式开启本地
inspector调试, 仅监听 localhost 并通过adb forward连接 - 支持 CommonJS/ESM 源码, 模块源码, 工作目录, 沙盒根目录, 环境变量, stdout/stderr 结果回传.
- ESM 入口与 dynamic
import()使用 V8 native linker, 支持循环依赖、可变导出与 re-export live binding; CommonJSrequire(esm)保留同步互操作边界. - 提供由插件自身 Android 权限约束的桌面式文件系统访问;
/proc、/sys、/dev始终由运行时拒绝. - 执行宿主提供的 TypeScript 编译产物, 并可通过 provider v3 请求按需编译运行中创建的项目
.ts/.mts/.cts; 运行时类型剥离 fallback 与兼容开关已删除, direct raw dispatch 始终 fail-closed. - 提供宿主能力代理与 live bridge, 可注入
autojs6:host-app-info,autojs6:device-info,autojs6:engine-info,autojs6:lifecycle-config,autojs6:bridge-permissions等运行时模块. - 附带
sample/nodejs示例项目与docs/HOST-API.md宿主 API 能力清单. - 插件信息, 使用说明, README 与 CHANGELOG 均支持西班牙语/法语/俄语/阿拉伯语/日语/韩语/英语/简体中文/香港繁体/台湾繁体.
"nodejs";
console.log(process.version);
console.log("AutoJs6 Node.js runtime");将插件安装并在 AutoJs6 插件中心启用后, 以 "nodejs"; 指令启动 Node.js 脚本. 更多示例位于 sample/nodejs.
- 怎么装 — 从 Releases 下载对应 ABI 的 APK (不确定就选
universal) 并安装; 或本地构建.\gradlew.bat :app:assembleDebug后安装app/build/outputs/apk/debug/下的产物. 然后在 AutoJs6 的插件中心启用本插件. Android 11+ 如需访问共享存储, 还要在系统设置中为本插件授予“所有文件访问”; 未授予时出现EACCES属预期行为. - 怎么跑 — 在 AutoJs6 编辑器中新建脚本, 首行写
"nodejs";, 其余按桌面 Node.js 写法编写 (支持 CommonJS/ESM/npm 纯 JS 包/网络内建模块), 点击运行即可. 运行中即时输出, 可随时手动停止. raw.ts/.mts/.cts当前必须先由宿主编译为 JavaScript; 插件不内置tsc. - 出错了看哪里 — 脚本报错时控制台显示 JS 栈与一行错误码 (如
ERR_AUTOJS6_NODE_SCRIPT_CANCELLED); 更多细节用adb logcat -s AutoJs6NodeBridge NodeJsRuntimePlugin查看插件进程日志. 宿主 API 可用性以docs/HOST-API.md为准.
- 运行时槽位:
node24_21. - 插件 ID:
nodejs, 引擎:nodejs. - 运行时服务动作:
org.autojs.plugin.nodejs.RUNTIME. - 原生运行库:
libnode.so和libautojs6-node.so. - ABI:
arm64-v8a,armeabi-v7a,x86_64, 以及universal. - 文件系统: Android 权限允许范围内可访问设备路径;
/proc、/sys、/dev为硬边界. - TypeScript: 接受宿主产物并可通过 provider v3 按需编译运行中创建的项目文件; direct raw TypeScript 返回
ERR_AUTOJS6_TYPESCRIPT_COMPILER_REQUIRED. - ESM linker:
vm.SourceTextModule/vm.SyntheticModule, 原生 live binding 与循环依赖. - 能力: 同步脚本执行, bundle transport, 原生内嵌运行时, 宿主能力代理, host capability live bridge.
新增Node.js 桥订阅通过既有回调推送传感器, WebSocket, UI, 悬浮窗与输入事件, 提供 on/once/off 监听, 有界事件队列及 drainEvents 兼容新增Node.js 运行时支持可选 idleExitMs 空闲退出与后续脚本重新连接, 提供 idleForMs 诊断, 默认保持常驻新增全局 fetch, Request, Response, Headers, FormData 与 WebSocket 默认使用 Node 原生 Web API; autojs6:fetch 与 autojs6:websocket 显式模块继续提供宿主网络栈新增新增带文件边界检查的原生 node:sqlite, 支持 CRUD, 事务与备份; 提供原生 node:test 报告器和可运行测试样例, 离线 npm corpus 扩展 zod, cheerio, date-fns, mqtt 与 ws新增process.stdin / readline 接收控制台输入, autojs6:host 接收执行级 JSON 消息, v3 postMessage 事务兼容旧宿主新增Node.js 截屏会话接入 Android 授权和既有前台服务, 支持图片句柄, PNG/JPEG/WebP 保存及停止或脚本退出时清理新增Node.js 图片句柄支持裁剪, 缩放, 灰度, 阈值, 找图及找色, 复用宿主图像后端, 返回独立图片并在执行结束时清理新增Node.js image.toBytes 通过文件描述符将 PNG 或 RGBA 像素传入原生 Buffer, 支持 JNI 与文件桥接, 在使用后, 超时或执行结束时回收附件新增Node device 接口提供实时构建, 屏幕, 电池和内存信息, 亮度控制及定时保持亮屏; media 支持设置音频流音量, 遵循 Android 权限新增autojs6:events 通过推送回调观察 Android 通知, 外部 Toast, 无障碍按键及屏幕和电池广播, 使用显式权限并自动清理订阅; Node 原生 events 保持兼容新增Node app 支持 Android 服务启动, 广播发送和已安装应用查询; dialogs 支持文本输入, 单选, 多选及随脚本清理的进度窗口, keys 提供无障碍系统操作新增Node recorder 支持带麦克风权限, 前台通知, 时长上限与脚本清理的 AAC 录音; ui.overlay 支持声明式属性更新, 拖动与事件推送新增Node 脚本可在两个独立运行时进程中并发执行, 共用 FIFO 队列并按执行任务路由取消和输入修复修复长驻脚本的桥会话持续累积请求与响应记录的问题, 清理已完成请求, 仅保留最近 32 条响应并限制诊断体积修复原生异步任务完成前提前生成成功结果, 导致异步错误与后续退出码丢失的问题; 终态改为跟随 Node 事件循环最终退出修复OpenSSL STORE 密钥 URL 绕过文件系统限制的问题 (请通过 node:fs 读取密钥字节)优化实时桥默认使用 JNI/Binder 直通并经 Node 事件循环返回响应, 降低调用延迟, 保留可选文件回退与待处理调用上限优化Node.js stream, crypto, timers, util, node:test 等内建模块恢复原生导出, 保留文件系统边界与宿主目录策略优化原生 worker 默认按 CPU 并行度运行 (最多 8 个), 继承执行的网络与文件开关, 支持请求级资源上限且池任务默认不设超时; CPU 与 WASM 样例改为真实多线程执行优化维持原生 WASI 禁用以保留文件系统边界, 移除两个 disabled WASI 样例; 普通 WebAssembly 与 WASM worker 继续可用优化屏幕 OCR 样例申请 Android 截屏授权并识别真实图片句柄; OCR 或条码插件不可用时返回可读 unavailable 错误, 识别失败仍按错误处理优化Node 脚本支持协商式异步启动, 长驻执行释放 Binder 线程, 终态回调完成后回传工作区, 兼容旧同步宿主依赖升级 Node.js 24.5.0 → 24.21.0, 三个 ABI 均使用自建 Android 源码产物
新增mediainfofacade 新增capabilities(), 且其可调用入口与read()支持显式选择插件快照 v1/v2; 省略 schema 时继续返回原有宿主 Node v1 快照新增新增 module-source provider v3, 通过绑定精确字节数与 SHA-256 的有界 PFD 按需编译运行中创建的.ts/.mts/.cts, 使用独立 30 s 编译预算, 稳定拒绝路径逃逸, 符号链接和歧义, 并保留宿主 TypeScript 诊断与 Source Map 栈映射新增在 Android 应用权限范围内启用桌面式文件系统访问, 同时继续拒绝/proc、/sys、/dev新增支持accessibility.swipe与accessibility.gesture, 并由独立能力accessibility.gesture门禁新增支持覆盖排队与执行全过程的脚本超时, 超时返回ERR_AUTOJS6_SCRIPT_TIMEOUT; 未指定超时时仍可无限运行新增默认启用dgram(UDP) 与http2, 并对trace_events返回明确的禁用错误新增支持 Debug 构建显式开启本地inspector调试, 仅监听 localhost 并通过adb forward连接新增新增受宿主插件权限保护的无界面激活入口, 补齐插件中心说明并禁用应用数据备份修复raw TypeScript 在宿主未提供编译产物时改为 fail-closed, 补齐快照动态 import 映射并归一化生成/导入栈帧修复以 V8 native linker 替换快照式 partial ESM adapter, 修复循环 re-export 中可变导出不会实时更新的问题修复修复 AutoJs6 兼容 facade 的 ESM 导入与不存在的 TypeScript 后缀探测, 同时保持已安装 npm 包优先优化删除基于 regex 的 legacy TypeScript 类型剥离 fallback 及其请求开关, raw.ts/.mts/.cts现始终要求宿主编译产物优化对齐宿主/插件 v2 合约, 能力清单与 plugin-only 运行时职责边界优化将 Node.js 样例, TypeScript 类型声明, 项目向导, 运行时默认值及宿主对齐校验统一归属插件仓库, 移除宿主侧 Gradle 开关与重复开发资产优化实测 npm 生态扩展到 15 包, 新增 axios、express 及 ESM-only 包 nanoid、p-limit、yocto-queue优化以executionMode请求字段作为生命周期模式的权威来源, 将无实际作用的runtimeAdapter标记为废弃优化移除十个仅打印固定状态的历史样例, 并在类型声明中标明截图、图像分析和录音尚未提供宿主 provider
新增支持 stdout/stderr 实时流式输出与基于node::Stop的协作式取消新增以最多 3 个等待者的有界串行队列取代 BUSY 直接拒绝, 并支持常驻长运行脚本生命周期新增默认启用 Node 原生网络内建模块、worker_threads与child_process, 并实测 10 个常用纯 JavaScript npm 包优化支持无需工作区归档的 direct-run 与 v1..v2 模块源码 provider 宽容协商, 错误输出收敛为简明错误码与 JavaScript 栈
.\gradlew.bat :app:assembleDebugRelease 构建:
.\gradlew.bat :app:assembleRelease构建参数来自 version.properties, 当前最低 SDK 为 24, 目标 SDK 为 36.
.readme/lang_*.json
.changelog/lang_*.json
.python/generate_markdown.py
app/src/main/res/values-*/strings.xml
app/src/main/res/raw-*/plugin_instruction.md
app/src/main/assets/doc/CHANGELOG-*.md
strings.xml 提供插件描述本地化; plugin_instruction.md 提供宿主侧展示的插件使用说明. README 与 CHANGELOG 由 .python/generate_markdown.py 根据 JSON 源文件生成.
- AutoJs6 文档: https://docs.autojs6.com
- Node.js 官方项目: https://github.com/nodejs/node
- Node.js 运行时构建计划: tools/nodejs/runtime-build/README.md
