Разрабатываю автоматизацию андроид приложений на 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 , не то чтобы секрет, но секрет)





  • @thepappo
    давайте будем честны, это не ваши нароботки, а опернсоурс библиотека и по лицензии этой самой библиотеки ваше сообщение о своих наработках является нарушением, этой самой лицензии. Уважайте чужой труд. Удачи вам!



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

    @thepappo
    давайте будем честны, это не ваши нароботки, а опернсоурс библиотека и по лецинзии этой самой библиотеки ваше сообщение о своих наработках является нарушением этой самой лецензии. Уважайте чужой труд. Удачи вам!

    @kotikov Я вот не пойму кому какое дело? Человек предлогает услугу, кому интересно то обратится. Он что обязан пошаговую инструкцию писать что и как?

    Библиотек готовых много только вот из них еще надо собрать готовое решение и не всегда они отвечают требованиям и приходится делать форки или писать вообще с нуля нечто подобное.

    Взять тот же БАС, многие заказчики о нем знают, но всеравно заказывают, что бы им сделали готовый скрипт.



  • @UserTrue
    Я вот не пойму кому какое дело? Человек предлогает услугу, кому интересно то обратится. Он что обязан пошаговую инструкцию писать что и как?

    Пошаговую инструкцию писать не обязан, но соблюдать лицензию обязан. Опять же даже если бы он сказал что это секрет, я бы нечего не написал бы.



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

    @UserTrue
    Я вот не пойму кому какое дело? Человек предлогает услугу, кому интересно то обратится. Он что обязан пошаговую инструкцию писать что и как?

    Пошаговую инструкцию писать не обязан, но соблюдать лицензию обязан. Опять же даже если бы он сказал что это секрет, я бы нечего не написал бы.

    А с чего вы взяли, что он врет? Я например писал подобную мини библиотеку на nodejs тоже для этой же цели.

    Ну, а про лицензии на этом ресурсе вообще смешно слышать. Если вы автор библиотеки, которую использует автор и он нарушает ее лицензию и вы можете это подтвердить, то пишите администрации.



  • @UserTrue

    А с чего вы взяли, что он врет?

    Я не говорил что он врет, скорее недоговорил, а что именно испольузется у кого есть опыт в этом деле, легко понять. И смотрите ссылку я на библиотеку не дал, опять же из уважение к ТС.

    Если вы автор библиотеки

    Скорее коммитер, да и если бы автором был не сделал бы такое.



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

    Я не говорил что он врет, скорее недоговорил, а что именно испольузется у кого есть опыт в этом деле, легко понять. И смотрите ссылку я на библиотеку не дал,

    На nodejs тоже есть библиотеки, тем не менее я написал свою...



  • @UserTrue
    На nodejs тоже есть библиотеки, тем не менее я написал свою...

    Да есть, очень плохого качества, как бы мне этого не хотелось, большинство библиотек на nodejs очень плохого качества и дизайна.



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

    большинство библиотек на nodejs очень плохого качества и дизайна.

    Потому что она больше про бэкенд и сборку фронтенда.



  • @kotikov ну поделитесь же ссылкой на библиотеку в личку))


Log in to reply