模拟器命令行合集(memuc命令)

  
memuc是v6.0.0版本推出的命令行工具,它封装了MEmuConsole、MEmu、MEmuManage的接口,支持多开管理、修改配置、android通信、adb命令等功能。

memuc支持多个模拟器的管理,所以某些命令需要传入模拟器序号或者模拟器名称参数,以下是模拟器序号和名称的说明
模拟器序号参数: -i 0 或者 –index 0 (序号从0开始,0代表第一个模拟器,1 代表第二个模拟器,依次类推)
模拟器名称参数: -n MEmu 或者 –name MEmu(MEmu 代表第一个模拟器,MEmu_1 代表第二个模拟器,依次类推,多开器上修改模拟器名称并不影响此参数)

memuc命令分为“模拟器管理”,“模拟器配置”,“模拟器控制”,“adb命令”四个大类:
模拟器管理:主要涉及模拟器的启动关闭,导入导出,创建删除,运行状态查询等,除克隆重命名等少数操作外,不需要指定模拟器
模拟器配置:主要涉及模拟器属性的修改,调用时需要指定模拟器
模拟器控制:主要涉及对安卓系统的控制,如安装app,启动/关闭app,断开网络等,调用时需要指定模拟器
adb命令:    主要是对安卓官方adb命令行工具的包装,解决连接特定模拟器的问题(使用桥接网络时避免输入随机ip),需要指定模拟器

以下是具体的命令介绍
一、模拟器管理
1. 描述:创建新的模拟器
    语法:memuc create
    示例:memuc create // 新建一个模拟器
    提示:memuc create 44 // 指定新建安卓版本
              memuc create 51
              memuc create 71
              memuc create 76 // 创建71 64位 (模拟器7.1.1版本及以后支持)
    成功:SUCCESS: create vm finished.
    失败:ERROR: download ova failed.
               ERROR: create vm failed.
2. 描述:删除指定模拟器
    语法:memuc remove <-i vmindex | -n vmname>
    示例:memuc remove -i 0 // 删除“MEmu”
    成功:SUCCESS: delete vm finished.
    失败:ERROR: delete vm failed.
3. 描述:克隆指定模拟器
    语法:memuc clone <-i vmindex | -n vmname> [-r nametag] [-t]
              [-t] 不等待任务结束直接返回,并获得任务id号
    示例:memuc clone -i 1 // 克隆“MEmu_1”
    克隆名字:memuc clone -i 1 -r 克隆后名字
    成功:SUCCESS: clone vm finished.
    失败:ERROR: clone vm failed.
4. 描述:导出指定模拟器
    语法:memuc export <-i vmindex | -n vmname> <ovafile> [-t]
              <ovafile> 导出成ova文件类型
              [-t] 不等待任务结束直接返回,并获得任务id号
    示例:memuc export -i 2  c:\1.ova // 导出“MEmu_2”,将它导出到c盘下,命名为1.ova
    成功:SUCCESS: export vm finished.
    失败:ERROR: export vm failed.
5. 描述:导入模拟器
    语法:memuc import <ovafile> [-t]
              <ovafile> ova文件类型
              <memufile> memu文件类型(模拟器7.1.3版本及以后支持)
              [-t] 不等待任务结束直接返回,并获得任务id号
    示例:memuc import c:\1.ova // 导入c盘下1.ova
    成功:SUCCESS: import vm finished.
    失败:ERROR: import vm failed.
6. 描述:启动指定模拟器
    语法:memuc start <-i vmindex | -n vmname> [-t]
              [-t] 不等待任务结束直接返回,并获得任务id号
              [-b] 后台启动模拟器
    示例:memuc start -n MEmu // 启动“MEmu”
    成功:SUCCESS: start vm finished.
    失败:ERROR: start vm failed.
               ERROR: not support 32bit system.(32位系统启动64位镜像时)
7. 描述:关闭指定模拟器
    语法:memuc stop <-i vmindex | -n vmname> [-t]
              [-t] 不等待任务结束直接返回,并获得任务id号
    示例:memuc stop -n MEmu_1 // 关闭“MEmu_1”
    成功:SUCCESS: stop vm finished.
    失败:ERROR: stop vm failed.
8. 描述:关闭所有模拟器
    语法:memuc stopall
    示例:memuc stopall // 关闭所有模拟器
    返回:SUCCESS: stop all vms finished.
9. 描述:列出所有模拟器信息
    语法:memuc listvms [–running] [-s]
              [–running] 列出所有启动的模拟器信息
              [-i vmindex | -n vmname] 列出指定模拟器信息(模拟器7.3.3版本及以后支持)
    示例:memuc listvms // 列出模拟器 索引、标题、顶层窗口句柄、是否启动模拟器、进程PID 信息、模拟器磁盘占用(单位byte)
    示例:memuc listvms -s // 显示磁盘信息
    示例:memuc listvms –render // 获取渲染窗口句柄
    示例:memuc listvms -i 0 // 显示独立信息 (-i 加索引号)
10. 描述:查询指定模拟器是否处于运行状态
    语法:memuc isvmrunning <-i vmindex | -n vmname>
    示例:memuc isvmrunning -n MEmu_1 // 返回“MEmu_1”运行状态
    返回:Running
               Not Running
11. 描述:快速排列所有模拟器的窗口
    语法:memuc sortwin
    示例:memuc sortwin // 快速排列所有模拟器的窗口
    返回:SUCCESS: sort win finished.
12. 描述:重启模拟器
    语法:memuc reboot <-i vmindex | -n vmname> [-t]
              [-t] 不等待任务结束直接返回
    示例:memuc reboot -i 0 // 重启模拟器
    返回:SUCCESS: reboot finished.
13. 描述:重命名模拟器(6.0.7 新增)
    语法:memuc rename <-i vmindex | -n vmname> <title>
    示例:memuc -i 0 rename “逍遥安卓模拟器-测试1”
    返回:SUCCESS: rename vm finished.
14. 描述:通过任务id号查询状态(6.0.7 新增)
    语法:memuc taskstatus <taskid>
    示例:memuc taskstatus 7baf735f-c877-4836-aaf9-ccca67296a8f
    返回:“running”:正在执行;“success”:完成
    备注:此条命令 配合描述6  memuc start <-i vmindex | -n vmname> [-t]
              [-t] 不等待任务结束直接返回,并获得任务id号
15. 描述:一键换机功能(7.5.0 新增)
    语法:memuc randomize <-i vmindex | -n vmname>
    示例:memuc randomize -i 0
    返回:SUCCESS: change device attributes finished.

二、模拟器配置

模拟器配置命令在旧版本(v6.0.0~v6.0.6之间)存在一些使用上的问题,比如必须在模拟器运行时使用,某些属性(如自定义分辨率)设置不方便等。所以我们在v6.0.7版本对相应的命令进行了升级,提供了新的ex扩展命令,主要改进如下:
a. 移除了必须在模拟器关闭时使用的限制,现在在运行时和关闭时均可使用,对于某些即时生效的设置,可以直接应用设置,对于原本需要重启的设置项则仍需要重启生效。
b. 添加了部分新的设置项。
新的ex扩展命令在使用上和原有命令保持一致但是提供了更好的使用体验。
在v6.0.7版本之后,推荐各位使用ex扩展命令,旧的命令依然提供支持但标记为已废弃(这意味着这些命令可能在后续版本被修改或移除)。
1. 描述:获得模拟器配置信息(扩展命令)(模拟器6.0.7版本及以后支持)
    语法:memuc getconfigex <-i vmindex | -n vmname> <key>
              <key> 配置名称
    示例:memuc getconfigex -i 1 memory // 获得“MEmu_1”的内存大小
    以下为常用配置信息
              [cpus] // CPU核数
              [memory] // 内存大小(单位:MB)
              [cpucap] // 降低CPU (范围:1-100)
              [picturepath] // 图片共享路径
              [musicpath] // 音频共享路径
              [moviepath] // 视频共享路径
              [downloadpath] // 下载共享路径
              [is_full_screen] // 是否全屏启动,1为全屏,0为非全屏
              [is_hide_toolbar] // 是否隐藏侧边栏,1为隐藏,0为显示
              [graphics_render_mode] // 渲染模式,1为Dx渲染,0为OpenGL渲染
              [enable_su] // root模式,1为root,0为非root
              [enable_audio] // 模拟器是否有声音,1为有声音,0为静音
              [fps] // 模拟器帧数上限
              [vkeyboard_mode] // 是否使用软键盘,1为使用,0为不使用
              [sync_time] // 模拟器与windows同步时间,1为同步,0为不同步
              [phone_layout] // back键,home键,menu键,recentapp键 的位置,0在底边,1在右侧,2在工具栏中
              [start_window_mode] // 模拟器窗口位置 0为默认位置,1为上一次窗口位置,2为自定义位置
              [win_x] // 模拟器窗口距离屏幕左上角的X轴偏移位置,只有[start_window_mode]不为0才生效
              [win_y] // 模拟器窗口距离屏幕左上角的Y轴偏移位置,只有[start_window_mode]不为0才生效
              [win_scaling_percent2] // 模拟器窗口缩放比例,默认值为100,只有[start_window_mode]不为0才生效
              [is_customed_resolution] // 是否使用自定义分辨率,1为使用自定义设置,0为不使用
              [resolution_width] // 当前模拟器宽度,只有[is_customed_resolution]为1才生效
              [resolution_height] // 当前模拟器高度,只有[is_customed_resolution]为1才生效
              [vbox_dpi] // 当前模拟器dpi,只有[is_customed_resolution]为1才生效
              [linenum] // 手机号
              [imei] // 国际移动设备识别码的缩写
              [simserial] // sim卡号
              [macaddress] // 设备mac地址
              [microvirt_vm_brand] // 手机品牌
              [microvirt_vm_manufacturer] // 手机厂商
              [microvirt_vm_model] // 手机型号
              [selected_map] // GPS定位,1为Google地图,0为百度地图
              [longitude] // 经度
              [latitude] // 纬度
            (以下 6.0.7 新增)
              [cache_mode] // 是缓存模式,1为加速(性能好,但意外断电时镜像有损坏风险),0为稳定(镜像文件不易损坏,性能稍差)
              [geometry] // 模拟器左顶坐标和尺寸
              [custom_resolution] // 安卓分辨率和dpi
              [disable_resize] // 固定窗口大小,1为固定,0为可拉伸
            (以下 6.2.0 新增)
              [imsi] // 国际移动用户识别码
              [ssid] // WIFI名

2. 描述:设置模拟器配置信息(扩展命令)(模拟器6.0.7版本及以后支持)
    语法:memuc setconfigex <-i vmindex | -n vmname> <key> <value>
              <key> 配置名称
              <value> 要设置的值
    示例:memuc setconfigex -i 0 cpus 4 // 将“MEmu”CPU核数设置成4个
    以下为常用配置信息
              [cpus number] // CPU核数
              [memory memorysize] // 内存大小(单位:MB)
              [cpucap 1-100] // 降低CPU (范围:1-100)
              [picturepath path] // 图片共享路径
              [musicpath path] // 音频共享路径
              [moviepath path] // 视频共享路径
              [downloadpath path] // 下载共享路径
              [is_full_screen 0|1]
              [is_hide_toolbar 0|1]
              [graphics_render_mode 0|1]
              [enable_su 0|1]
              [enable_audio 0|1]
              [fps 10|20|30|40|50|60] // 帧数上限
              [vkeyboard_mode 0|1]
              [sync_time 0|1]
              [phone_layout 0|1|2]
              [start_window_mode 0|1]
              [win_x x] // 正整数
              [win_y y] // 正整数
              [win_scaling_percent2 0-100] // 默认值为100
              [is_customed_resolution 0|1]
              [resolution_width width] // 正整数
              [resolution_height height] // 正整数
              [vbox_dpi dpi] // 正整数
              [linenum +8617651413549]
              [imei 860504493831119]
              [simserial 11223344556677889900]
              [macaddress AABBCCDDEEFF]
              [microvirt_vm_brand HUAWEI] // 手机品牌
              [microvirt_vm_manufacturer HUAWEI] // 手机厂商
              [microvirt_vm_model FRD-L19] // 手机型号
              [selected_map 0|1]
              [longitude  30.978785] // 小数
              [latitude 121.824455] // 小数
            (以下 6.0.7 新增)
              [cache_mode 0|1] // 性能模式
              [geometry x y width height] // 模拟器左顶坐标和尺寸
              [custom_resolution  width height dpi] // 安卓分辨率和dpi
              [disable_resize] // 固定窗口大小
            (以下 6.2.0 新增)
              [imsi 460003555174545 | auto] // 设置国际移动用户识别码 (auto代表自动生成)
            [ssid uylnhxb557 | auto] // 设置WIFI名 (auto代表自动生成

3. 描述:获得模拟器配置信息(模拟器6.0.7版本及以后废弃)
    语法:memuc getconfig <-i vmindex | -n vmname> <key>
              <key> 配置名称
    示例:memuc getconfig -i 1 memory // 获得“MEmu_1”的内存大小
    以下为常用配置信息
              [cpus] // CPU核数
              [memory] // 内存大小(单位:MB)
              [cpucap] // 降低CPU (范围:1-100)
              [picturepath] // 图片共享路径
              [musicpath] // 音频共享路径
              [moviepath] // 视频共享路径
              [downloadpath] // 下载共享路径
              [is_full_screen] // 是否全屏启动,1为全屏,0为非全屏
              [is_hide_toolbar] // 是否隐藏侧边栏,1为隐藏,0为显示
              [graphics_render_mode] // 渲染模式,1为Dx渲染,0为OpenGL渲染
              [enable_su] // root模式,1为root,0为非root
              [enable_audio] // 模拟器是否有声音,1为有声音,0为静音
              [fps] // 模拟器帧数上限
              [vkeyboard_mode] // 是否使用软键盘,1为使用,0为不使用
              [sync_time] // 模拟器与windows同步时间,1为同步,0为不同步
              [phone_layout] // back键,home键,menu键,recentapp键 的位置,0在底边,1在右侧,2在工具栏中
              [start_window_mode] // 模拟器窗口位置 0为默认位置,1为上一次窗口位置,2为自定义位置
              [win_x] // 模拟器窗口距离屏幕左上角的X轴偏移位置,只有[start_window_mode]不为0才生效
              [win_y] // 模拟器窗口距离屏幕左上角的Y轴偏移位置,只有[start_window_mode]不为0才生效
              [win_scaling_percent2] // 模拟器窗口缩放比例,默认值为100,只有[start_window_mode]不为0才生效
              [is_customed_resolution] // 是否使用自定义分辨率,1为使用自定义设置,0为不使用
              [resolution_width] // 当前模拟器宽度,只有[is_customed_resolution]为1才生效
              [resolution_height] // 当前模拟器高度,只有[is_customed_resolution]为1才生效
              [vbox_dpi] // 当前模拟器dpi,只有[is_customed_resolution]为1才生效
              [linenum] // 手机号
              [imei] // 国际移动设备识别码的缩写
              [microvirt_vm_brand] // 手机品牌
              [microvirt_vm_manufacturer] // 手机厂商
              [microvirt_vm_model] // 手机型号
              [selected_map] // GPS定位,1为Google地图,0为百度地图
              [longitude] // 经度
              [latitude] // 纬度

4. 描述:设置模拟器配置信息(模拟器6.0.7版本及以后废弃)
    语法:memuc setconfig <-i vmindex | -n vmname> <key> <value>
              <key> 配置名称
              <value> 要设置的值
    示例:memuc setconfig -i 0 cpus 4 // 将“MEmu”CPU核数设置成4个
    以下为常用配置信息
              [cpus] // CPU核数
              [memory] // 内存大小(单位:MB)
              [cpucap] // 降低CPU (范围:1-100)
              [picturepath] // 图片共享路径
              [musicpath] // 音频共享路径
              [moviepath] // 视频共享路径
              [downloadpath] // 下载共享路径
              [is_full_screen] // 0 或 1
              [is_hide_toolbar] // 0 或 1
              [graphics_render_mode] // 0 或 1
              [enable_su] // 0 或 1
              [enable_audio] // 0 或 1
              [fps] // 1~60 帧数上限
              [vkeyboard_mode] // 0 或 1
              [sync_time] // 0 或 1
              [phone_layout] // 0、1、2
              [start_window_mode] // 0、1、2
              [win_x] // 正整数
              [win_y] // 正整数
              [win_scaling_percent2] // 默认值为100 可设置小数 如 66.66
              [is_customed_resolution] // 0 或 1
              [resolution_width] // 正整数
              [resolution_height] // 正整数
              [vbox_dpi] // 正整数
              [linenum] // +8617651413549
              [imei] // 860504493831119
              [microvirt_vm_brand] // 手机品牌 如 HUAWEI
              [microvirt_vm_manufacturer] // 手机厂商 如 HUAWEI
              [microvirt_vm_model] // 手机型号 FRD-L19
              [selected_map] // 0 或 1
              [longitude] // 小数 如 30.978785
              [latitude] // 小数 如 121.824455

三、模拟器控制(模拟器运行时使用)
1. 描述:给指定模拟器安装应用
    语法:memuc installapp <-i vmindex | -n vmname> <apkfile | -p packagename> [-s]
              <apkfile> apk文件路径
              < -p packagename> 根据游戏包名从逍遥市场下载游戏
              [-s] 安装完后在桌面创建快捷方式,仅使用<apkfile>模式有效 (模拟器7.1.3版本及以后支持)
    示例:memuc installapp -n MEmu_1 c:\test.apk  // 给“MEmu_1”安装应用
    成功:SUCCESS: install app finished.
    失败:ERROR: install app failed.
               ERROR: not found <包名> in market.// -p才有

2. 描述:卸载模拟器应用
    语法:memuc uninstallapp <-i vmindex | -n vmname> <packagename>
              <packagename> 应用包名
    示例:memuc uninstallapp -i 1 com.microvirt.test // 卸载某个应用
    成功:SUCCESS: uninstall app finished.
    失败:ERROR: uninstall <包名> failed.

3. 描述:启动模拟器应用
    语法:memuc startapp <-i vmindex | -n vmname> <packageactivity>
              <packageactivity> 应用启动参数
    示例:memuc startapp -i 1 com.android.settings/.Settings // 启动“MEmu_1”的“设置”应用
    成功:SUCCESS: start app finished.
    失败:ERROR: <包名> is not launched.

4. 描述:关闭模拟器应用
    语法:memuc stopapp <-i vmindex | -n vmname> <packagename>
              <packagename> 应用包名
    示例:memuc stopapp -i 1 com.android.settings // 关闭“MEmu_1”的“设置”应用
    成功:SUCCESS: stop app finished.
    失败:ERROR: stop <包名> failed.ERROR.

5. 描述:触发android键
    语法:memuc sendkey <-i vmindex | -n vmname> <键值>
              <键值> 目前支持键值 <back | home | menu | volumeup | volumedown>
    示例:memuc sendkey -i 0 home // 回到桌面
    提示:注意,并不是所有的app都响应menu菜单键,如果发送后没有效果,请确认当前app支持菜单键(例如内置浏览器支持)
    成功:SUCCESS: back finished.
               SUCCESS: home finished.
               SUCCESS: menu finished.
               SUCCESS: volume+ finished.
               SUCCESS: volume- finished.
    失败:ERROR: <模拟器名> is not launched.

6. 描述:摇一摇
    语法:memuc shake <-i vmindex | -n vmname>
    示例:memuc shake -i 0 // 摇一摇
    成功:SUCCESS: shake finished.
    失败:ERROR: <模拟器名> is not launched.

7. 描述:连接android网络
    语法:memuc connect <-i vmindex | -n vmname>
    示例:memuc connect -i 0 // 连接android网络
    成功:SUCCESS: connect wifi finished.
    失败:ERROR: <模拟器名> is not launched.

8. 描述:断开android网络
    语法:memuc disconnect <-i vmindex | -n vmname>
    示例:memuc disconnect -i 0 // 断开android网络
    成功:SUCCESS: disconnect wifi finished.
    失败:ERROR: <模拟器名> is not launched.

9. 描述:输入文本内容
    语法:memuc input <-i vmindex | -n vmname> <text>
              <text> 文本内容
    示例:memuc input -i 0 “逍遥安卓666” // 输入内容
    成功:SUCCESS: input text finished.
    失败:ERROR: <模拟器名> is not launched.

10. 描述:旋转模拟器
    语法:memuc rotate <-i vmindex | -n vmname>
    示例:memuc rotate -i 0 // 旋转第一个模拟器
    成功:SUCCESS: rotate finished.
    失败:ERROR: <模拟器名> is not launched.

11. 描述:执行安卓命令
      语法:memuc <-i vmindex | -n vmname> execcmd <guestcmd>
                <guestcmd> android命令
      示例:memuc -i 0 execcmd “getprop persist.sys.language” // 获得安卓系统语言
      备注:memuc后面先写模拟器序号,再写 execcmd 命令字,命令参数使用“”包起来。
      返回:根据命令内容返回

12. 描述:更改GPS经纬度 (模拟器6.0.2版本及以后支持)
      语法:memuc setgps <-i vmindex | -n vmname> <longitude> <latitude>
                <longitude> 经度
                <latitude>    纬度
      示例:memuc setgps -i 0  30.978785 121.824455 // 设置当前经度30.978785,纬度121.824455
      成功:SUCCESS: set gps info finished.
      失败:ERROR: set gps info failed.

13. 描述:获取外网IP地址
     语法:memuc -i 0 execcmd “busybox wget -O- whatismyip.akamai.com”  
     备注:模拟器版本6.0.8以上版本 命令会后续精简完善

14. 描述:放大 (模拟器6.2.6版本及以后支持)
      语法:memuc zoomin <-i vmindex | -n vmname>
      示例:memuc zoomin -i 0 //将模拟器MEmu内容放大
      返回:SUCCESS: zoom in finished.

15. 描述:缩小 (模拟器6.2.6版本及以后支持)
      语法:memuc zoomout <-i vmindex | -n vmname>
      示例:memuc zoomout -i 0 //将模拟器MEmu内容缩小
      返回:SUCCESS: zoom out finished。

16. 描述:获得模拟器中第三方app列表 (模拟器7.1.3版本及以后支持)
      语法:memuc getappinfolist <-i vmindex | -n vmname>
      示例:memuc getappinfolist -i 0 //枚举模拟器MEmu的第三方app列表  

17. 描述:设置重力加速度值 (模拟器7.1.3版本及以后支持)
      语法:memuc accelerometer <-i vmindex | -n vmname> <-x xvalue> <-y yvalue> <-z zvalue>
                 <xvalue> x方向重力值
                 <yvalue> y方向重力值
                 <zvalue> z方向重力值
      示例:memuc accelerometer  -i 0 <-x 0.0> <-y 8.9> <-z 4.5> //设置重力加速度值为 0, 8.9, 4.5
      返回:SUCCESS: change orientation finished.
      失败:ERROR: set gps info failed.

18. 描述:创建安卓应用桌面快捷方式 (模拟器7.2.5版本及以后支持)
      语法:memuc createshortcut <-i vmindex | -n vmname> <packagename>
                 <packagename> 应用包名
      示例:memuc createshortcut -i 0  com.android.settings //创建“设置”应用的桌面快捷方式  

四、adb命令
1. 描述:支持adb命令
    语法:memuc <-i vmindex | -n vmname> adb <adbcmd>
              <adbcmd> adb命令
    示例:memuc -i 0 adb “remount” // 支持adb命令
    备注:memuc后面先写模拟器序号,再写 adb 命令字。

發佈留言