В данной заметке описано как правильно выбрать и запускать виртуальные машины (ВМ) при работе с ZennoDroid.
При случайном выборе (когда в действии Выбрать не указано имя или индекс) ZennoDroid всегда выбирает рандомную, не занятую в этот момент ВМ.
Если вы хотите вручную выбрать машину, то вы должны самостоятельно контролировать, чтобы разные потоки не выбирали одновременно одну и ту же машину.
Рассмотрим на примере:
есть ВМ с именем Memu_1
и два проекта, Проект1
и Проект2
, которые работают с этой ВМ. Проект1
стартует раньше и “забирает” ВМ Memu_1
себе. Затем запускается Проект2
и “видит”, что ВМ занята. Он подождёт 60 секунд и, если ВМ не освобождена, то завершится с ошибкой. Если же в течение этих 60 секунд Проект1
освободит ВМ, то второй проект “подберёт” ВМ и будет с ней работать.
то же самое произойдёт, если в проекте жёстко указано работать с конкретной ВМ и проект запускается в несколько потоков - поток, который стартовал раньше, займёт ВМ, а второй поток выбросит ошибку.
Прежде всего нужно выбрать ВМ, с которой будет работать текущий поток. Сделать это можно с помощью действия Выбрать в экшене Действия с виртуальной машиной.
В ProjectMaker выбирать ВМ не обязательно (но можно), т.к. программа работает с ВМ, которая выставлена по умолчанию (её можно изменить в настройках).
В ProjectMaker выбирать ВМ не обязательно (но можно), т.к. программа работает с ВМ, которая выставлена по умолчанию (её можно изменить в настройках).
Самым простым вариантом будет случайный выбор ВМ.
Для этого в настройках действия Выбрать необходимо оставить пустым поле “Полное название или индекс”. А в полях для имени и индекса нужно указать переменные, куда сохранятся соответствующие данные.
При таком подходе ZennoDroid ищет среди всех доступных виртуальных машин, которые в данный момент не заняты.
Виртуальная машина, которая в настройках выбрана по умолчанию всегда считается занятой и ZennoDroid, при случайном выборе, будет её пропускать. |
После того, как ВМ была выбрана, её нужно запустить. Для этого используется действие Запустить\Перезапустить из экшена Действия с виртуальной машиной.