Android Manager - модуль для управления android эмуляторами

Делитесь модулями
  • @thepappo said in AndroidManager - модуль для управления android эмуляторами:

    Вместо activityName - ваше активити. Возможно, вместо активити название приложения вводите. Попробуйте руками в cmd выполнить.
    Активити можно получить через модуль действием "Получить активити". Перед этим открыв приложение.

    Да вы правы, я вызывал список приложений и вводил данные оттуда.
    Сейчас сделал как вы сказали, запустил приложение и проверил текущее активити и на самом деле оно более длинное. Приложение запустилось, буду тестировать дальше.

    Так же почему - то когда подключился через adb connect, то у меня перестало работать действие получить активити, выдавало ошибку. Сделал снова как раньше, добавил в переменные среды папку с Nox и все заработало.

  • @thepappo Закрытие приложения работает, а очистить кеш почему - то выдает ошибку:

    Процесс завершился с кодом: 1. Ошибка: Android Debug Bridge version 1.0.36 Revision 0e9850346394-android -a - directs adb to listen on all interfaces for a connection -d - directs command to the only connected USB device
    

    Свайп:

    Error: Error occured while sending post command to server on device connect ECONNREFUSED 127.0.0.1:9008
    
  • @spacerange это опять же ошибки adb. Вообще через adb нокса подключаться не очень правильно. Там старая версия. Его лучше переименовать в _adb.exe. А использовать adb из Android Studio SDK. Я позже потестирую на ноксе. Сейчас занят апдейтом модуля по части многопотока и некоторых других фишек.

  • @thepappo said in AndroidManager - модуль для управления android эмуляторами:

    @spacerange это опять же ошибки adb. Вообще через adb нокса подключаться не очень правильно. Там старая версия. Его лучше переименовать в _adb.exe. А использовать adb из Android Studio SDK. Я позже потестирую на ноксе. Сейчас занят апдейтом модуля по части многопотока и некоторых других фишек.

    В свое время делал многопоток на голом adb + nox, правда писал на nodejs но можно было тоже самое написать в БАС. Я к тому что мне кажется на adb меньше гемора чем с этим фреймворком, который в модуле, он мне еще тогда не понравился.

  • А вообще советую для всех у кого ошибки adb или связанные с селекторами, проделать следующие процедуры:

    1. Скачать и установить Node JS.
    2. Установить пакет appium-doctor
    npm install appium-doctor -g
    
    1. И прочекать для андроида:
    appium-doctor --android
    

    Вот эти пункты должны быть ОК:
    Screenshot_1.png

  • @UserTrue основная проблема - это получение xml дампа. Он нужен, чтобы искать элементы по xpath. Если на голом adb, то его можно дергать через:

    adb shell uiautomator dump
    

    Проблема в том, что тут используется первая версия юиавтоматора и действие занимает 2,5-3 секунды, что овер долго. Плюс, уже сам гугл давно отказался от поддержки первой версии.

    Во второй версии юиавтоматора уже как раз надо запускать appium сервер и ставить драйвер uiautomator2. На сервер уже посылаются запросы через REST API, и сервер отправляет команды на эмуль. Это работает на порядок быстрее, чем первая версия юиавтоматора. Тот же дамп делает практически мгновенно.

    Короче. Я написал уже все. Надо только собрать модуль, что самое сложное. Ты, думаю, меня понимаешь ))

  • @thepappo said in AndroidManager - модуль для управления android эмуляторами:

    @spacerange это опять же ошибки adb. Вообще через adb нокса подключаться не очень правильно. Там старая версия. Его лучше переименовать в _adb.exe. А использовать adb из Android Studio SDK. Я позже потестирую на ноксе. Сейчас занят апдейтом модуля по части многопотока и некоторых других фишек.

    Да это из за adb, я где - то видел рекомендацию заменить adb.exe из папки Android Studio SDK в папку Nox.
    Попробовал и свайп заработал, но очистка кеша уже теперь выдает другую ошибку, что - то типа неизвестная команда. Но да ладно, буду думать как использовать только Android Studio SDK, что - то никак не хочет к нему подключаться нормально.

  • @thepappo said in AndroidManager - модуль для управления android эмуляторами:

    adb shell uiautomator dump

    Да я через него и делал, это было года 3 назад )) Мне тогда не понравился вся эта затея и больше этим не занимался, хотя справедливости ради сделал рабочий многопоток для одной прилы. Тогда еще было много проблем с самими эмуляторами сейчас тот же nox работает гораздо лучше.

  • @UserTrue многопоток будет работать, конечно. Ну то есть асинхрон. Но скорость будет дно. Я сам на этой библиотеке пишу. Но в ноду ее не присрешь, поэтому было решено присрать аппиум, который по сути для этих задач максимально кошерен и для него есть норм врапперы на ноде.

  • Выяснил опытным путем что именно без Gow получить текущее активити не работает.
    То есть он обязателен для использования модуля. Очистить кеш так и выдает ошибку:

    SubprocessError: Процесс завершился с кодом: 1. Ошибка: adb.exe: unknown command adb 
    

    Удалил пути и оставил только Android Studio SDK, что по сути дало тоже самое когда я заменял adb.exe в папке Nox. Только теперь нужно вручную подключаться через команду adb connect. В appium-doctor у меня почему - то не было JAVA HOME, прописал вручную, ничего не дало.

    Очистить кеш выполнил командой:

    adb shell pm clear <package_name>
    
  • Еще при использовании UI Automator Viewer, заметил что он не может снять дамп пока BAS подключен к эмулятору, приходится переподключаться в консоли, снимать дамп и потом снова подключаться в BAS.

    А так, в целом модуль мне нравится, основное вроде как работает, да некоторые детали нужно допилить и еще есть определенные сложности с первоначальной настройкой (хотя может и мне так повезло).

  • Может кто сталкивался с проблемой вообще нет отклика на adb, в основной консоли cmd, установил android SDK, вроде всё настроил но как такового отклика нет, только если через консоль nox'a
    76a4aea1-4638-460c-8590-5f567f9435aa-image.png

  • @spacerange said in AndroidManager - модуль для управления android эмуляторами:

    В appium-doctor у меня почему - то не было JAVA HOME, прописал вручную, ничего не дало.

    Там не все версии Java вроде работают. У меня такая openjdk-8u282-b08. В папке с установленной джавой должна быть папка bin. Вот так выглядит:

    Screenshot_1.png

    @spacerange said in AndroidManager - модуль для управления android эмуляторами:

    Еще при использовании UI Automator Viewer, заметил что он не может снять дамп пока BAS подключен к эмулятору, приходится переподключаться в консоли, снимать дамп и потом снова подключаться в BAS.

    Да, есть такая проблема. По ходу вьювер и либа используют один и тот же порт для подключения. На новой версии такого не будет.

  • @BoToH4Nk переменные окружения ANDROID_HOME и JAVA_HOME установлены? Если да, перезапустите ПК. Винда их только после перезагрузки видит.


  • Версия 2.0

    Основное изменение данной версии - это переход на Appium, который использует драйвер uiautomator2 для отправки команд на эмуляторы. Appium используется для всех действий, связанных с взаимодействием с элементами по xpath, а также для действий "Подключиться к устройству" (создается сессия указанного устройства по серийному номеру на сервере), "Отключиться от устройства", "Сделать скриншот", "Открыть панель уведомлений" и "Получить XML дамп".

    За счет использования аппиума теперь работает многопоток.


    Другие изменения:

    1. Node js обновлен до версии 18.10.0.
    2. Удалены действия:
      "Информация об устройстве" - в аппиуме нет метода для этого действия, при этом не понятно, какие настройки устройства нужно собирать.
    3. Добавлены действия:
      "Запустить сервер";
      "Остановить сервер";
      "Установлено ли приложение";
      "Запущено ли приложение";
      "Открыть панель уведомлений".
    4. Изменены настройки действий:
      "Подключиться к устройству" - все поля, кроме "Серийный номер" были удалены. Добавлен переключатель "Настроить устройство";
      "Сделать скриншот" - удалены поля "Качество изображения" и "Метод сохранения на устройстве" (appium не позволяет выбирать качество и сам выбирает папку для сохранения на устройстве).
    5. Для следующих действий параметр "Число шагов" изменен на "Продолжительность, мс":
      "Долгий клик по xpath";
      "Долгий клик по координатам";
      "Свайпнуть по экрану".
    6. Исправлена ошибка в действии "Скролл к элементу". Если в направлении скролла было выбрано "влево" или "вправо", то скролл осуществлялся вниз.
    7. Для действий, требующих ожидания, теперь передаются таймауты в Node js из настроек.

    Добавил инструкцию по установке и началу работы в шапку темы.
    Добавил обновленный шаблон для версии 2.0 в качестве примера.

  • @thepappo Спасибо огромное!

  • кто может написать с этим модулем простейший регер для андроид приложения? нужно всего лишь открыть приложение,ввести номер телефона.нажать кнопку реги.выскакивает капча простая цифровая.рещаем ее через сервис. пощел таймер ожидания смс верификации. все.ничего сохранять не нужно.завершать регу Не нужно. кто поможет??! с меня большое пиво!

  • @alex911 я могу написать, но не за пиво ). Цены и описание тут.

  • @thepappo 40к. шутишь?!)) ну явно не под мои цели

  • @alex911 said in Android Manager - модуль для управления android эмуляторами:

    кто может написать с этим модулем простейший регер для андроид приложения? нужно всего лишь открыть приложение,ввести номер телефона.нажать кнопку реги.выскакивает капча простая цифровая.рещаем ее через сервис. пощел таймер ожидания смс верификации. все.ничего сохранять не нужно.завершать регу Не нужно. кто поможет??! с меня большое пиво!

    Тема для заказов находится вот здесь: https://community.bablosoft.com/category/30/заказать-скрипт