logo
1
0
WeChat Login
sky<kongyang@petalmail.com>
refactor(cli): 重构CLI示例代码结构,将sample目录重命名为sample/cli

魔云腾交互式 CLI

基于魔云腾 Go SDK 的交互式命令行工具,提供类似 Shell 的操作体验。

功能特性

  • 🔍 设备发现 - 自动搜索局域网内的魔云腾设备
  • 📱 安卓云机管理 - 浏览设备内的安卓云机
  • 📦 应用管理 - 查看、启用/禁用应用
  • 📁 文件管理 - 通过 Shell 命令查看文件
  • 🖥️ 类 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 # 视图目录:文件管理

使用示例

1. 搜索设备

/ > search 正在搜索局域网设备... 找到 49 个设备 IP地址 设备ID 类型 ------------------------------------------------------- 192.168.1.100 a1b2c3d4e5f6 p1_v3 192.168.1.101 b2c3d4e5f6a7 q1_v3 ...

2. 进入设备

支持通过 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 >

3. 查看安卓云机

/192.168.1.100 > ls 云机ID 名称 状态 IP ---------------------------------------------------------------------- a1b2c3d4e5f6 android_001 running 172.17.0.2 ... 共 1 个安卓云机

4. 进入安卓云机

/192.168.1.100 > cd a1b2c3d4e5f6 已进入安卓云机: a1b2c3d4e5f6 (android_001) /192.168.1.100/a1b2c3d4e5f6 > ls 虚拟目录: file/ 文件管理(使用shell命令) pkg/ 包管理 提示: 使用 'cd file' 或 'cd pkg' 进入相应视图

5. 包管理

/192.168.1.100/a1b2c3d4e5f6 > cd pkg 已进入包管理视图 /192.168.1.100/a1b2c3d4e5f6/pkg > ls 包名 状态 ------------------------------------------------------- com.android.chrome 启用 com.gibb.easyclick 禁用 com.tencent.mm 启用 ... 共 156 个包

6. 文件管理

/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 ...

7. 返回上级

/192.168.1.100/a1b2c3d4e5f6/pkg > cd .. 已返回安卓云机目录 /192.168.1.100/a1b2c3d4e5f6 > cd .. 已返回设备目录 /192.168.1.100 > cd .. 已返回根目录 / >

8. 查看当前路径

/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 }

注意事项

  1. 设备发现 - search 命令需要设备在同一局域网内
  2. ID 匹配 - cd 命令支持 ID 前缀匹配,如 cd a1b2c3 可匹配 a1b2c3d4e5f6
  3. 路径显示 - 提示符始终显示 IP 地址,便于识别
  4. 虚拟目录 - filepkg 是虚拟目录,不是真实的文件系统路径

相关链接