logo
1
0
WeChat Login
wallbreaker<wallbreaker8@users.noreply.gitcode.com>
refactor: migrate module path from atomgit.com to cnb.cool

魔云腾交互式 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 (
    "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
}

注意事项

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

相关链接