文档

PyMemuc 模块

一个 memuc.exe 的包装器作为一个库来控制虚拟机

class PyMemuc(memuc_path: str | None = None, debug: bool = False)[源代码]

基类:object

与 memuc.exe 命令行工具交互以控制虚拟机的类。

参数:
  • memuc_path (str, optional) -- memuc.exe 的路径。 设置为无以进行自动检测。

  • debug (bool, optional) -- 启用调试模式,默认为 False

change_gps_vm(latitude: float, longitude: float, vm_index: int | None = None, vm_name: str | None = None) Literal[True]

更改虚拟机上的 GPS 位置,必须指定虚拟机索引或虚拟机名称

参数:
  • latitude (float) -- 纬度

  • longitude (float) -- 经度

  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机 GPS 更改成功,则为 True

返回类型:

Literal[True]

connect_internet_vm(vm_index: int | None = None, vm_name: str | None = None) Literal[True]

在虚拟机上连接互联网,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机互联网连接成功则为 True

返回类型:

Literal[True]

create_app_shortcut_vm(package_name: str, vm_index: int | None = None, vm_name: str | None = None) Tuple[int, str]

在虚拟机上创建应用程序快捷方式,必须指定虚拟机索引或虚拟机名称

参数:
  • package_name (str) -- 应用包名

  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:
  • PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

  • PyMemucTimeoutExpired -- 如果命令超时则出错

返回:

命令的返回码和输出。

返回类型:

tuple[int, str]

disconnect_internet_vm(vm_index: int | None = None, vm_name: str | None = None) Literal[True]

断开虚拟机上的互联网连接,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

命令的返回码和输出。

返回类型:

tuple[int, str]

execute_command_vm(command: str, vm_index: int | None = None, vm_name: str | None = None) Tuple[int, str]

在虚拟机上执行命令,必须指定虚拟机索引或虚拟机名称

参数:
  • command (str) -- 要执行的命令

  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

命令的返回码和输出。

返回类型:

tuple[int, str]

get_adb_connection(vm_index: int | None = None, vm_name: str | None = None, timeout: float | None = None) Tuple[str | None, int | None]

获取虚拟机的adb连接信息

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

  • timeout (float, optional) -- 命令的超时持续时间。 默认为 None。

抛出:
  • PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

  • PyMemucTimeoutExpired -- 如果命令超时则出错

  • PyMemucError -- an error if the command fails

返回:

adb连接的IP和端口,以元组形式返回

返回类型:

tuple[str | None, int | None]

get_app_info_list_vm(vm_index: int | None = None, vm_name: str | None = None, timeout: float = 10) list[str]

获取安装在虚拟机上的应用程序列表,必须指定虚拟机索引或名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

  • timeout (float, optional) -- 命令的超时持续时间。 默认为 10 秒。

抛出:
  • PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

  • PyMemucError -- 如果命令失败则出错

返回:

虚拟机上安装的应用程序包列表

返回类型:

list[str]

get_public_ip_vm(vm_index: int | None = None, vm_name: str | None = None) Tuple[int, str]

获取虚拟机的公共互联网协议地址,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

命令的返回码和输出。

返回类型:

tuple[int, str]

input_text_vm(text: str, vm_index: int | None = None, vm_name: str | None = None) Literal[True]

在虚拟机上发送输入文本,必须指定虚拟机索引或虚拟机名称

参数:
  • text (str) -- 要作为输入发送的文字

  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机文本输入成功则为 True

返回类型:

Literal[True]

install_apk_vm(apk_path: str, vm_index: int | None = None, vm_name: str | None = None, create_shortcut: bool = False) Literal[True]

在虚拟机上安装 APK,必须指定虚拟机索引或虚拟机名称

参数:
  • apk_path (str) -- APK 的目录路径

  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

  • create_shortcut (bool, optional) -- 是否创建快捷方式。 默认为假。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机 apk 安装成功,则为 True

返回类型:

Literal[True]

rotate_window_vm(vm_index: int | None = None, vm_name: str | None = None) Literal[True]

在虚拟机上旋转窗口,必须指定虚拟机索引或虚拟机名称

参数:

vm_index (int, optional) -- 虚拟机索引。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机窗口旋转成功,则为 True

返回类型:

Literal[True]

send_adb_command_vm(command: str | list[str], vm_index: int | None = None, vm_name: str | None = None, timeout: float | None = None) str

向虚拟机发送 ADB 命令,必须指定虚拟机索引或虚拟机名称

参数:
  • command (str | list[str]) -- ADB 命令

  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

  • timeout (float, optional) -- 命令的超时持续时间。 默认为 None。

抛出:
  • PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

  • PyMemucTimeoutExpired -- 如果命令超时则出错

返回:

命令的返回码和输出。

返回类型:

tuple[int, str]

set_accelerometer_vm(value: tuple[float, float, float], vm_index: int | None = None, vm_name: str | None = None) Tuple[int, str]

在虚拟机上设置加速度计值,必须指定虚拟机索引或虚拟机名称

参数:
  • value (tuple[float, float, float]) -- 加速度计值

  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

命令的返回码和输出。

返回类型:

tuple[int, str]

sort_out_all_vm() bool

整理所有虚拟机

返回:

命令的返回码和输出。

返回类型:

tuple[int, str]

start_app_vm(package_name: str, vm_index: int | None = None, vm_name: str | None = None, timeout: float | None = None) Literal[True]

在虚拟机上启动应用程序,必须指定虚拟机索引或虚拟机名称

参数:
  • package_name (str) -- Package name of the APK, e.g. com.android.chrome. This can be found using get_app_info_list_vm(), excluding the readable name and version suffix.

  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

  • timeout (float, optional) -- Timeout in seconds. Defaults to None.

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机应用程序启动成功,则为 True

返回类型:

Literal[True]

stop_app_vm(package_name: str, vm_index: int | None = None, vm_name: str | None = None) Literal[True]

在虚拟机上停止应用程序,必须指定虚拟机索引或虚拟机名称

参数:
  • package_name (str) -- APK的应用包名

  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机应用程序已成功停止,则为 True

返回类型:

Literal[True]

trigger_keystroke_vm(key: Literal['back', 'home', 'menu', 'volumeup', 'volumedown'], vm_index: int | None = None, vm_name: str | None = None) Literal[True]

在虚拟机上触发击键,必须指定虚拟机索引或虚拟机名称

参数:
  • key (Literal["back", "home", "menu", "volumeup", "volumedown"]) -- 要触发的关键事件

  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机按键触发成功,则为 True

返回类型:

Literal[True]

trigger_shake_vm(vm_index: int | None = None, vm_name: str | None = None) Literal[True]

在虚拟机上触发震动,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机摇动触发成功,则为 True

返回类型:

Literal[True]

uninstall_apk_vm(package_name: str, vm_index: int | None = None, vm_name: str | None = None) Literal[True]

在虚拟机上卸载 APK,必须指定虚拟机索引或虚拟机名称

参数:
  • package_name (str) -- APK的应用包名

  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机 APK 卸载成功则为 True

返回类型:

Literal[True]

zoom_in_vm(vm_index: int | None = None, vm_name: str | None = None) Literal[True]

放大虚拟机,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机放大成功,则为 True

返回类型:

Literal[True]

zoom_out_vm(vm_index: int | None = None, vm_name: str | None = None) Literal[True]

缩小虚拟机,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机缩小成功则为 True

返回类型:

Literal[True]

reboot_vm(vm_index: int | None = None, vm_name: str | None = None, non_blocking: bool = False) Literal[True]

重启虚拟机,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

  • non_blocking (bool, optional) -- 是否在后台运行命令。 默认为 False。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机成功重启则为 True

返回类型:

Literal[True]

start_vm(vm_index: int | None = None, vm_name: str | None = None, headless: bool = False, non_blocking: bool = False, timeout: float | None = None) Literal[True]

启动虚拟机,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

  • headless (bool, optional) -- Whether to start the VM in headless mode. Defaults to False.

  • non_blocking (bool, optional) -- 是否在后台运行命令。 默认为 False。

  • timeout (float, optional) -- 以秒为单位的超时。 如果非阻塞则不能使用。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机成功启动则为 True

返回类型:

Literal[True]

stop_all_vm(non_blocking: bool = False, timeout: float | None = None) Literal[True]

停止所有虚拟机

参数:
  • non_blocking (bool, optional) -- 是否在后台运行命令。 默认为 False。

  • timeout (float, optional) -- 以秒为单位的超时。 如果非阻塞则不能使用。 默认为 None。

抛出:

PyMemucError -- 停止虚拟机失败时出错

返回:

如果虚拟机已成功停止,则为 True

返回类型:

Literal[True]

stop_vm(vm_index: int | None = None, vm_name: str | None = None, non_blocking: bool = False, timeout: float | None = None) Literal[True]

停止虚拟机,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

  • non_blocking (bool, optional) -- 是否在后台运行命令。 默认为 False。

  • timeout (float, optional) -- 以秒为单位的超时。 如果非阻塞则不能使用。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机已成功停止,则为 True

返回类型:

Literal[True]

clone_vm(vm_index: int | None = None, vm_name: str | None = None, new_name: str | None = None, non_blocking: bool = False) Literal[True]

克隆虚拟机,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

  • new_name (str, optional) -- 克隆的虚拟机名称。 默认为 None。

  • non_blocking (bool, optional) -- 是否在后台运行命令。 默认为 False。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果成功克隆虚拟机,则为 True

返回类型:

Literal[True]

compress_vm(vm_index: int | None = None, vm_name: str | None = None, non_blocking: bool = False) Literal[True]

Compress a VM, must specify either a vm index or a vm name

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

  • non_blocking (bool, optional) -- 是否在后台运行命令。 默认为 False。

抛出:
  • PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

  • PyMemucError -- an error if the vm compress failed

返回:

True if the vm was compressed successfully

返回类型:

Literal[True]

create_vm(vm_version: Literal['76'] | Literal['96'] = '96') int

创建一个新的虚拟机

参数:

vm_version (str, optional) -- Android version. Defaults to "96".

抛出:

PyMemucError -- 如果虚拟机创建失败则报错

返回:

新虚拟机的索引,如果发生错误但没有引发异常则为 -1

返回类型:

int

delete_vm(vm_index: int | None = None, vm_name: str | None = None) Literal[True]

删除虚拟机,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机已成功删除,则为 True

返回类型:

Literal[True]

export_vm(vm_index: int | None = None, vm_name: str | None = None, file_name: str = 'vm.ova', non_blocking: bool = False)

导出虚拟机,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

  • file_name (str, optional) -- 文件名。 默认为 "vm.ova"。

  • non_blocking (bool, optional) -- 是否在后台运行命令。 默认为 False。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

命令的返回码和输出

返回类型:

tuple[int, str]

get_configuration_vm(config_key: Literal['name', 'cpus', 'cpucap', 'memory', 'is_full_screen', 'is_hide_toolbar', 'turbo_mode', 'graphics_render_mode', 'enable_su', 'enable_audio', 'fps', 'vkeyboard_mode', 'sync_time', 'phone_layout', 'start_window_mode', 'win_x', 'win_y', 'win_scaling_percent2', 'is_customed_resolution', 'resolution_width', 'resolution_height', 'vbox_dpi', 'linenum', 'imei', 'imsi', 'simserial', 'microvirt_vm_brand', 'microvirt_vm_model', 'microvirt_vm_manufacturer', 'selected_map', 'latitude', 'longitude', 'picturepath', 'musicpath', 'moviepath', 'downloadpath', 'macaddress', 'cache_mode', 'geometry', 'custom_resolution', 'disable_resize', 'ssid'], vm_index: int | None = None, vm_name: str | None = None) str

获取虚拟机配置,必须指定虚拟机索引或虚拟机名称

参数:
  • config_key (ConfigKeys) -- Configuration key

  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

配置值

返回类型:

str

import_vm(file_name: str = 'vm.ova', non_blocking: bool = False) Literal[True]

从文件导入虚拟机

参数:
  • file_name (str, optional) -- 文件名。 默认为 "vm.ova"。

  • non_blocking (bool, optional) -- 是否在后台运行命令。 默认为 False。

抛出:

PyMemucError -- 虚拟机导入失败时出现错误

返回:

如果虚拟机导入成功则为 True

返回类型:

Literal[True]

list_vm_info(vm_index: int | None = None, vm_name: str | None = None, running: bool = False, disk_info: bool = False) list[VMInfo]

列出虚拟机信息,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

  • running (bool, optional) -- 是否仅列出正在运行的虚拟机。 默认为 False

  • disk_info (bool, optional) -- 是否列出磁盘信息。 默认为 False。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

虚拟机信息列表

返回类型:

list[VMInfo]

randomize_vm(vm_index: int | None = None, vm_name: str | None = None) Literal[True]

Randomize a VM, must specify either a vm index or a vm name

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

True if the vm was randomized successfully

返回类型:

Literal[True]

rename_vm(vm_index: int | None = None, vm_name: str | None = None, new_name: str | None = None) Literal[True]

重命名虚拟机,必须指定虚拟机索引或虚拟机名称

参数:
  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

  • new_name (str, optional) -- 新虚拟机名称。 默认为 None。

抛出:
  • PyMemucIndexError -- 如果未指定虚拟机索引或名称,则会出错

  • PyMemucError -- 虚拟机重命名失败时出现错误

返回:

如果虚拟机已成功重命名,则为 True

返回类型:

Literal[True]

set_configuration_vm(config_key: Literal['name', 'cpus', 'cpucap', 'memory', 'is_full_screen', 'is_hide_toolbar', 'turbo_mode', 'graphics_render_mode', 'enable_su', 'enable_audio', 'fps', 'vkeyboard_mode', 'sync_time', 'phone_layout', 'start_window_mode', 'win_x', 'win_y', 'win_scaling_percent2', 'is_customed_resolution', 'resolution_width', 'resolution_height', 'vbox_dpi', 'linenum', 'imei', 'imsi', 'simserial', 'microvirt_vm_brand', 'microvirt_vm_model', 'microvirt_vm_manufacturer', 'selected_map', 'latitude', 'longitude', 'picturepath', 'musicpath', 'moviepath', 'downloadpath', 'macaddress', 'cache_mode', 'geometry', 'custom_resolution', 'disable_resize', 'ssid'], config_value: str, vm_index: int | None = None, vm_name: str | None = None) Literal[True]

设置虚拟机配置,必须指定虚拟机索引或虚拟机名称

参数:
  • config_key (ConfigKeys) -- Configuration key

  • config_value (str) -- 配置值

  • vm_index (int, optional) -- 虚拟机索引。 默认为 None。

  • vm_name (str, optional) -- 虚拟机名称。 默认为 None。

抛出:

PyMemucIndexError -- 如果既未指定虚拟机索引也未指定虚拟机名称,则会出现错误

返回:

如果虚拟机配置设置成功则为 True

返回类型:

Literal[True]

vm_is_running(vm_index: int = 0) bool

检查虚拟机是否正在运行

参数:

vm_index (int, optional) -- 虚拟机索引。 默认为 0。

返回:

如果虚拟机正在运行则为 True,否则为 False

返回类型:

bool

check_task_status(task_id: str) Tuple[int, str]

检查任务状态

参数:

task_id (str) -- 异步任务标识号

返回:

命令的返回码和输出。

返回类型:

tuple[int, str]

memuc_run(args: list[str], non_blocking: bool = False, timeout: float | None = None) Tuple[int, str]

使用 memuc.exe 运行命令。 memuc 可以支持非阻塞命令,返回一个任务 id。 如果预期 memuc 挂起,则可以指定超时,但这不适用于非阻塞命令。

参数:
  • args (list[str]) -- 传递给 memuc.exe 的参数列表

  • non_blocking (bool, optional) -- 是否在后台运行命令。 默认为 False。

  • timeout (float, optional) -- 以秒为单位的超时。 默认为 None 表示没有超时。

返回:

命令的返回码和输出

返回类型:

tuple[int, str]

抛出:
  • PyMemucError -- 如果命令失败则出错

  • PyMemucTimeoutExpired -- 如果命令超时则出错

__init__(memuc_path: str | None = None, debug: bool = False) None[源代码]

初始化类,如果支持 Windows 注册表,则自动查找 memuc.exe,否则必须指定路径

The ConfigKeys alias

ConfigKeys

Literal['name', 'cpus', 'cpucap', 'memory', 'is_full_screen', 'is_hide_toolbar', 'turbo_mode', 'graphics_render_mode', 'enable_su', 'enable_audio', 'fps', 'vkeyboard_mode', 'sync_time', 'phone_layout', 'start_window_mode', 'win_x', 'win_y', 'win_scaling_percent2', 'is_customed_resolution', 'resolution_width', 'resolution_height', 'vbox_dpi', 'linenum', 'imei', 'imsi', 'simserial', 'microvirt_vm_brand', 'microvirt_vm_model', 'microvirt_vm_manufacturer', 'selected_map', 'latitude', 'longitude', 'picturepath', 'musicpath', 'moviepath', 'downloadpath', 'macaddress', 'cache_mode', 'geometry', 'custom_resolution', 'disable_resize', 'ssid'] 的别名

虚拟机配置键

配置键

配置描述

name

虚拟机的名称。

cpus

分配给虚拟机的 CPU 数量。

cpucap

分配给虚拟机的最大 CPU 使用率。 (0-100)

memory

分配给虚拟机的内存量。 (单位:兆字节)

is_full_screen

虚拟机是否应该以全屏模式启动。 (10

is_hide_toolbar

虚拟机的工具栏是否应该隐藏。 (10

turbo_mode

虚拟机是否应该以涡轮模式启动。 (10

graphics_render_mode

要使用的图形渲染模式。 (1:DirectX,0:OpenGL)

enable_su

虚拟机是否应该以超级用户权限启动。 (10

enable_audio

虚拟机是否应以音频支持启动。 (10

fps

虚拟机的每秒帧数。 (0-100)

vkeyboard_mode

虚拟机的虚拟键盘模式。 (01

sync_time

虚拟机是否应以时间同步启动。 (10

phone_layout

虚拟机的电话布局。 (2:工具栏,1:右侧,0:底部)

start_window_mode

虚拟机的启动窗口模式。 (2:自定义,1:上次,0:默认)

win_x

虚拟机窗口水平轴偏离左上角。(start_window_mode != 0)(单位:像素)

win_y

虚拟机窗口垂直轴偏离左上角。 (start_window_mode != 0)(单位:像素)

win_scaling_percent2

虚拟机的窗口缩放百分比。 (单元: %)

is_custom_resolution

虚拟机是否应以自定义分辨率启动。 (10

resolution_width

虚拟机的自定义分辨率宽度。(is_custom_resolution == 1) (单位:像素)

resolution_height

虚拟机的自定义分辨率高度。(is_custom_resolution == 1) (单位:像素)

vbox_dpi

虚拟机的虚拟机 DPI。(is_custom_resolution == 1) (单位:DPI)

linenum

虚拟机的电话号码

imei

虚拟机的 IMEI

imsi

虚拟机的 IMSI

simserial

虚拟机的 SIM 序列号。

microvirt_vm_brand

虚拟机的品牌。

microvirt_vm_model

虚拟机的型号。

microvirt_vm_manufacturer

虚拟机的制造商。

selected_map

虚拟机选择的 GPS 提供商。 (0:谷歌,1:百度)

latitude

虚拟机的 GPS 纬度。 (单位:学位)

longitude

虚拟机的 GPS 经度。 (单位:学位)

picturepath

虚拟机共享图片路径的目录路径。

musicpath

虚拟机共享音乐路径的目录路径。

moviepath

虚拟机共享电影路径的目录路径。

downloadpath

虚拟机共享下载路径的目录路径。

macaddress

设备 MAC 地址

cache_mode

缓存模式,1 表示加速(性能良好,但存在意外断电时图像损坏的风险),0 表示稳定(图像文件不容易损坏,性能略有下降)(1, 0)

geometry

模拟器的左上坐标和尺寸(x y 宽度 高度)

custom_resolution

Android 分辨率和 DPI(宽度 高度 DPI)

disable_resize

固定窗口大小,1 表示固定,0 表示可伸缩

ssid

WIFI名称(uylnhxb557|auto)(auto 代表自动生成)

VMInfo 类型

class VMInfo[源代码]

基类:TypedDict

用于虚拟机信息的 TypedDict

index: int

虚拟机索引

title: str

虚拟机名称

top_level: str

虚拟机顶层窗口

running: bool

虚拟机是否正在运行

pid: int

虚拟机进程号

disk_usage: int

虚拟机磁盘使用量(以字节为单位)