基于魔云腾 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 (
"cnb.cool/openmyt/myt-sdk-golang/common" // 设备发现
"cnb.cool/openmyt/myt-sdk-golang/device" // 设备管理
"cnb.cool/openmyt/myt-sdk-golang/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 是虚拟目录,不是真实的文件系统路径