Выбор конкретных эмуляторов

Czerdo

Client
Регистрация
24.06.2020
Сообщения
77
Благодарностей
12
Баллы
8
Добрый день. Помогите решить задачу. Заранее спасибо.

Приведу условный пример: Есть 2 проекта. Под VK и под OK. Под каждый создано более 1 эмулятора.

96217


Как указать в конструкторе имена, чтобы в проекте VK брались эмуляторы с "VK" в названии, а в OK с именами содержащими "OK"? На данный момент берутся рандомные ВМ. Возможно, есть встроенный функционал для решения вопроса.

96218
 

Bkmz

Client
Регистрация
25.12.2013
Сообщения
100
Благодарностей
13
Баллы
18
ну если тебе надо брать рандом вк то пиши VK и ставь рандомное число если по порядку сделай что бы числа перебирал и так же с ОК, полное название VK{-Variable.random-} или ОК{-Variable.random-}
 
  • Спасибо
Реакции: Czerdo

Czerdo

Client
Регистрация
24.06.2020
Сообщения
77
Благодарностей
12
Баллы
8
ну если тебе надо брать рандом вк то пиши VK и ставь рандомное число если по порядку сделай что бы числа перебирал и так же с ОК, полное название VK{-Variable.random-} или ОК{-Variable.random-}
Отличный вариант. А то я со списками, текстовыми документами и перечислениями через разные символы пробовал.

Но тут получается будет долгий перебор. Если работа в 4 потока, например. Он будет брать рандомный номер, а эмулятор будет занят, то ожидание 60 секунд и новая попытка подбора свободного эмулятора.

Стандартный функционал просто не берет занятые ВМ. Вот как брать свободные и именно с нужным названием под нужный проект эмуляторы?
 

Bkmz

Client
Регистрация
25.12.2013
Сообщения
100
Благодарностей
13
Баллы
18
Отличный вариант. А то я со списками, текстовыми документами и перечислениями через разные символы пробовал.

Но тут получается будет долгий перебор. Если работа в 4 потока, например. Он будет брать рандомный номер, а эмулятор будет занят, то ожидание 60 секунд и новая попытка подбора свободного эмулятора.

Стандартный функционал просто не берет занятые ВМ. Вот как брать свободные и именно с нужным названием под нужный проект эмуляторы?
ммм не подскажу, записывать которое взял и сверять как вариант
 

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
556
Благодарностей
460
Баллы
63
Вот как брать свободные и именно с нужным названием под нужный проект эмуляторы?
В качестве временного решения (рандомно выбираем виртуалку до тех пор, пока название не будет начинаться с нужного префикса, штатный рандом никогда не выберет занятую виртуалку):
C#:
//Префикс машины (OK или VK) задается во входных настройках
var prefix = project.Variables["prefix"].Value;
var droid = instance.DroidInstance;
for (int i = 0; i < 100; i++){
    //Выбираем рандомную
    droid.Action.SelectRandom();   
    if (droid.Info.Title.StartsWith(prefix))
    {   
        // Название начинается с нужного префикса
        project.Variables["name"].Value = droid.Info.Name;
        project.Variables["index"].Value = droid.Info.Index.ToString();
        //Инфа об устройстве, можно убрать
        project.SendInfoToLog($"Выбран {droid.Info.Title} с {i} попытки", true);
        return true;
    }
}
throw new Exception("Не найдены свободные устройства");
Сделал шаблон с примером. В качестве входного параметра указывается начало имени виртуальной машины.


I6Rd0KpaNy.png

Не самое удачное решение, конечно, если много устройств. Доработаем.
 

Вложения

Czerdo

Client
Регистрация
24.06.2020
Сообщения
77
Благодарностей
12
Баллы
8

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
556
Благодарностей
460
Баллы
63
Как указать в конструкторе имена, чтобы в проекте VK брались эмуляторы с "VK" в названии, а в OK с именами содержащими "OK"? На данный момент берутся рандомные ВМ. Возможно, есть встроенный функционал для решения вопроса.
Данный функционал добавлен в тестовом билде 2.3.2.0.
Тестовый билд ZennoDroid Pro RU / Pro EN 2.3.2 от 07.11.2022
99367
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)