Shell++ Docs

架构说明

Quick App、Lua 后端与多端接收器如何协作

Shell++ 不是一个单独的应用,而是一条由多个组件组成的设备工作链路。

组件关系

组件职责
Vela Quick App展示界面、接收用户操作、呈现状态与任务结果
Lua 后端调用设备能力、执行命令、处理文件与截图任务
Shell++ Android连接手环、同步截图、管理本地文件并提供远程终端
AstroBoxV2 插件在桌面与跨平台环境中连接设备、同步数据和执行命令

一次典型操作会经过以下路径:

用户操作
  → Vela Quick App
  → Lua 后端
  → 设备能力或系统命令
  → Lua 后端
  → Android / AstroBoxV2
  → 结果展示与保存

手环内部的文件 IPC

Quick App 与外部执行器通过 internal://files/ 下的文件交换任务和结果:

文件内容
cmd_request.json命令请求,包含 seqcmdtimestamp
cmd_result.json执行结果,包含 stdoutstderr 与对应请求信息
bridge_state.json当前连接与桥接状态
full_output.txt未经终端界面截断的完整输出

终端页面会轮询结果文件,并只接受 seq 与当前请求一致的结果。这可以避免较早任务的返回值 覆盖较新的命令结果。

设备之间的数据流

Android 端通过 Xiaomi Wearable 消息通道与手环通信,并提供截图分片、断点恢复、本地缓存和 同步进度管理。局域网场景还可以使用应用内的轻量 HTTP 服务接收 PNG 文件。

AstroBoxV2 插件通过设备与 Interconnect 能力完成握手、截图列表同步和命令执行。插件还可以 注册 Deeplink 动作,供本机自动化工具触发,但所有命令仍会复用原有设备通信和安全检查。

为什么拆成多个组件

Vela Quick App 适合提供清晰的手环交互界面,Lua 适合接触更底层的设备能力,Android 与 AstroBoxV2 则擅长存储、展示和继续处理设备产生的数据。将这些职责拆开,可以让每一端保持 清晰,也让不同平台共享同一套手环能力。

版本一致性

Quick App、Lua 后端和接收端会共同参与协议交互。升级其中一个组件后,如果出现连接失败、 字段缺失或任务无响应,请优先确认各组件是否来自相互兼容的版本。

On this page