基于魔云腾 Go SDK 的交互式命令行工具,提供类似 Shell 的操作体验。
cd, ls, pwd 等命令# 进入 sample 目录
cd sample
# 编译
go build .
# 运行(Windows)
./sample.exe
# 运行(Linux/macOS)
./sample
| 命令 | 说明 |
|---|---|
search | 搜索局域网设备 |
ls | 列出当前目录内容 |
cd <target> | 进入设备/云机/视图 |
cd .. | 返回上级目录 |
pwd | 显示当前路径 |
help / h | 显示帮助 |
exit / q | 退出程序 |
CLI 采用四层目录结构:
/ # 根目录:设备列表 /192.168.1.100 # 设备目录:安卓云机列表 /192.168.1.100/a1b2c3d4e5f6 # 云机目录:虚拟目录入口 /192.168.1.100/a1b2c3d4e5f6/pkg # 视图目录:包管理 /192.168.1.100/a1b2c3d4e5f6/file # 视图目录:文件管理
/ > search 正在搜索局域网设备... 找到 49 个设备 IP地址 设备ID 类型 ------------------------------------------------------- 192.168.1.100 a1b2c3d4e5f6 p1_v3 192.168.1.101 b2c3d4e5f6a7 q1_v3 ...
支持通过 IP 或 ID 进入设备:
/ > cd 192.168.1.100 已进入设备: 192.168.1.100 (a1b2c3d4e5f6) /192.168.1.100 >
或
/ > cd a1b2c3d4e5f6 已进入设备: 192.168.1.100 (a1b2c3d4e5f6) /192.168.1.100 >
/192.168.1.100 > ls 云机ID 名称 状态 IP ---------------------------------------------------------------------- a1b2c3d4e5f6 android_001 running 172.17.0.2 ... 共 1 个安卓云机
/192.168.1.100 > cd a1b2c3d4e5f6 已进入安卓云机: a1b2c3d4e5f6 (android_001) /192.168.1.100/a1b2c3d4e5f6 > ls 虚拟目录: file/ 文件管理(使用shell命令) pkg/ 包管理 提示: 使用 'cd file' 或 'cd pkg' 进入相应视图
/192.168.1.100/a1b2c3d4e5f6 > cd pkg 已进入包管理视图 /192.168.1.100/a1b2c3d4e5f6/pkg > ls 包名 状态 ------------------------------------------------------- com.android.chrome 启用 com.gibb.easyclick 禁用 com.tencent.mm 启用 ... 共 156 个包
/192.168.1.100/a1b2c3d4e5f6 > cd file 已进入文件管理视图 /192.168.1.100/a1b2c3d4e5f6/file > ls 文件列表 (/sdcard): total 32 drwxr-xr-x 6 root root 4096 Jan 15 10:00 . drwxr-xr-x 18 root root 4096 Jan 15 09:00 .. drwxr-xr-x 2 root root 4096 Jan 15 10:00 DCIM drwxr-xr-x 2 root root 4096 Jan 15 10:00 Documents ...
/192.168.1.100/a1b2c3d4e5f6/pkg > cd .. 已返回安卓云机目录 /192.168.1.100/a1b2c3d4e5f6 > cd .. 已返回设备目录 /192.168.1.100 > cd .. 已返回根目录 / >
/192.168.1.100/a1b2c3d4e5f6/pkg > pwd /192.168.1.100/a1b2c3d4e5f6/pkg
import (
"atomgit.com/mytsdk/adrctl-go/common" // 设备发现
"atomgit.com/mytsdk/adrctl-go/device" // 设备管理
"atomgit.com/mytsdk/adrctl-go/pkg" // 应用管理
)
type Shell struct {
currentDevice string // 当前设备IP
currentAndroid string // 当前安卓云机ID
currentView string // 当前视图:"" | "file" | "pkg"
devices []common.Device // 设备列表
androids []device.AndroidInfo // 安卓云机列表
ctx context.Context
}
search 命令需要设备在同一局域网内cd 命令支持 ID 前缀匹配,如 cd a1b2c3 可匹配 a1b2c3d4e5f6file 和 pkg 是虚拟目录,不是真实的文件系统路径