Разрабатываю автоматизацию андроид приложений на Python + GUI + Memu + БД



  • Всем привет. Уже 2 года плотно работаю с автоматизацией андроид приложений на эмуляторах и реальных телефонах. За это время набил много шишек и в итоге накопился ряд собственных наработок, некоторые из которых ни у кого не встречал. Предлагаю свои услуги по автоматизации андроид приложений на эмуляторах.

    На чем пишу софт:
    • Python;
    • Эмулятор — рекомендую Memu как самый стабильный, но можно автоматизировать на BlueStacks или Nox, или на реальных телефонах (сложнее и дороже);
    • База данных — MySQL или Redis;
    • GUI – графический интерфейс, где можно менять настройки, выгружать/загружать акки, прокси, запускать разные режимы работы и любой другой функционал. Выглядит как обычный программный интерфейс на Windows.

    Какие наработки применяются для разработки:
    Многопоток. Количество потоков = количеству запущенных эмуляторов. Все работает одновременно без простоев.
    Прокси. Устанавливается свой прокси на каждый эмулятор один раз. Дальше прокси меняются через API прокси провайдера. Обычно используют мобильные или резидентские прокси.
    Взаимодействие с эмулятором. В отличие от устаревших библиотек, где клики и прочее реализовано нажатием по координатам элемента (X, Y), в той, которую использую я, элементы ищутся по уникальным идентификаторам (id, class, index и т.д.) или xpath. Это гарантирует стабильную работу софта независимо от разрешения экрана на эмуляторе или версии андроид. В отличие от других библиотек, в используемой мной очень высокая скорость эмуляции.
    Смена фингерпринтов. Для массовой работы на одних и тех же устройствах андроид, как и в браузере, нужно менять фингерпринты. Всего их более 50, и каждый из них генерируется на основе данных реальных телефонов и устанавливается на эмулятор.
    Изменение настроек Memu. Перед запуском можно менять настройки Memu через его API – imei, imsi, номер телефона, производитель, модель телефона, название сети блютуз, вай-фай и т.д. Как и с фингерпринтами все генерируется из реальных данных по базам сотовых операторов и андроид устройств.
    Перезапуск эмуляторов (только для Memu). Поскольку после продолжительной работы любые эмуляторы падают, в моем софте реализован перезапуск эмуляторов. В случае если поток отработал с ошибкой, то проверяется статус эмулятора. Если эмулятор не работает, то скрипт автоматом перезапускает его и чекает, возможна ли с него работа. Если все ок — то продолжает работу, если нет, эмулятор отключается, остальные работающие потоки продолжают работать.
    Сохранение/загрузка профилей. Часто требуется заходить в аккаунты на эмуляторах повторно. Для этого после регистрации/первого входа профиль приложения загружается с эмулятора на ПК, а в базу пишутся данные аккаунта + сгенерированные фингерпринты. При повторном использовании аккаунта на эмуляторе удаляются старые файлы, чистится кеш приложения и загружается сохраненный ранее профиль. Это аналог сессии при работе в браузере. Позволяет каждый раз не авторизовываться заново в приложении и использовать те же данные профиля и фингерпринты устройства, как будто приложение с данными пользователя все время стояло на одном телефоне, как это и бывает в реальной жизни.
    Изменение Permissions. Некоторые приложения проверяют данные, которые им знать не следует. Например, запрашивают доступ к телефону или местоположению. Информацию о телефоне, к примеру, можно поменять только каждый раз перезапуская эмулятор, что очень долго и не очень стабильно. Это решается отключением соответствующих разрешений в самом приложении. Я это делаю бесплатно в рамках услуги по автоматизации приложения.
    Удаление рекламы в приложении. Во многих приложениях встроена реклама, которая появляется в ненужный момент и может нарушить логику автоматизации. В рамках услуги по автоматизации я бесплатно вырезаю эту рекламу из приложения, там где это необходимо.

    Примеры того что автоматизировал:

    Комбайн Viber (телефоны и эмуляторы)

    Комбайн IMO (телефоны и эмуляторы)

    Регер Whatsapp (эмуляторы)

    Регер Юmoney (графический интерфейс, эмуляторы)


    Скрины:

    Регер и рассылка TextPlus (графический интерфейс, эмуляторы)


    Скрины:

    Примерный бюджет и сроки на автоматизацию через эмуляторы:

    Бюджет от 40к руб. В базовую стоимость входит:
    1. скрипт автоматизации с базовым функционалом и графическим интерфейсом под эмуляторы MEmu. Например, регистрация с минимальным заполнением данных (логин, пароль, телефон/почта, имя), с подтверждением SMS через один сервис или подтверждение по почте через IMAP (через один почтовый сервис);
    2. многопоток;
    3. смена прокси;
    4. смена фингерпринтов;
    5. сохранение аккаунтов;
    6. запись данных в БД;
    7. графический интерфейс для запуска скрипта, установки прокси, загрузки данных в базу и выгрузки данных из базы;
    8. инструкция по самостоятельной установке окружения;
    если по какой-то причине сами устанавливать софт не хотите, то установка мной на удаленный Windows Server оплачивается отдельно — 3к руб.;
    9. поддержка скрипта в рамках исправления возможных багов — 1 неделя.

    Любой дополнительный функционал может быть реализован, рассчитывается и обсуждается индивидуально с заказчиком.

    Сроки — от 5 дней.

    Софт предоставляется в открытом виде и мной нигде не будет продан и распространен.

    Возможна ли автоматизация на запросах?

    Да, но очень редко. В современных приложениях обычно запросы шифруются, либо используются свои протоколы, отличные от стандартных HTTP запросов. Я НЕ занимаюсь реверс-инжинирингом. Могу проснифать приложение, если там обычные запросы в незашифрованном виде, то можно автоматизировать.

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

    Если у вас приватная тема по спаму, и вы уверены, что ее можно автоматизировать на запросах, то возможна реализация вашей идеи с хорошей скидкой.

    Что я гарантирую:
    1. Работу скрипта по автоматизации в рамках ТЗ.
    2. Фиксы возможных багов в рамках оговоренного в ТЗ функционала в течение 1 недели после получения вами скрипта.

    Что я НЕ гарантирую:

    Все, что от меня не зависит, в том числе:
    • бесперебойную работу эмуляторов, т. к. все они после длительного использования зависают и уходят в черный экран. Мой софт перезагружает зависшие эмуляторы, но со временем они стопаются окончательно и перезагрузка уже не помогает. Поэтому все равно нужно следить за работой софта;
    • баны аккаунтов;
    • что интерфейс приложения не поменяется — переделка возможна по отдельному согласованию за отдельную плату в рамках отдельного проекта, даже если все поменяется на следующий день после принятия вами проекта.

    Что нужно для заказа:
    1. ТЗ в текстовом формате или видео, где вы показываете алгоритм работы.
    2. Предоплата 20%. После того как будет сделано, показываю через тимвивер, и переводите остальное.

    Телеграм для связи: shokoladny_zayac



  • @thepappo said in Разрабатываю автоматизацию андроид приложений на Python + GUI + Memu + БД:

    Взаимодействие с эмулятором. В отличие от устаревших библиотек

    Привет. Какая библиотека для взаимодействие с эмулятором, если не секрет?



  • @pijonz привет. Не то чтобы секрет, но свои наработки палить не хочется )



  • @thepappo , не то чтобы секрет, но секрет)


Log in to reply
 

  • 12
  • 14
  • 3
  • 2
  • 2
  • 4
  • 3
  • 7