Разрабатываю автоматизацию андроид приложений на 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 , не то чтобы секрет, но секрет)
-
@Antonio said in Разрабатываю автоматизацию андроид приложений на Python + GUI + Memu + БД:
@thepappo , не то чтобы секрет, но секрет)
гос тайна
-
@thepappo
давайте будем честны, это не ваши нароботки, а опернсоурс библиотека и по лицензии этой самой библиотеки ваше сообщение о своих наработках является нарушением, этой самой лицензии. Уважайте чужой труд. Удачи вам!
-
@kotikov said in Разрабатываю автоматизацию андроид приложений на Python + GUI + Memu + БД:
@thepappo
давайте будем честны, это не ваши нароботки, а опернсоурс библиотека и по лецинзии этой самой библиотеки ваше сообщение о своих наработках является нарушением этой самой лецензии. Уважайте чужой труд. Удачи вам!@kotikov Я вот не пойму кому какое дело? Человек предлогает услугу, кому интересно то обратится. Он что обязан пошаговую инструкцию писать что и как?
Библиотек готовых много только вот из них еще надо собрать готовое решение и не всегда они отвечают требованиям и приходится делать форки или писать вообще с нуля нечто подобное.
Взять тот же БАС, многие заказчики о нем знают, но всеравно заказывают, что бы им сделали готовый скрипт.
-
@UserTrue
Я вот не пойму кому какое дело? Человек предлогает услугу, кому интересно то обратится. Он что обязан пошаговую инструкцию писать что и как?Пошаговую инструкцию писать не обязан, но соблюдать лицензию обязан. Опять же даже если бы он сказал что это секрет, я бы нечего не написал бы.
-
@kotikov said in Разрабатываю автоматизацию андроид приложений на Python + GUI + Memu + БД:
@UserTrue
Я вот не пойму кому какое дело? Человек предлогает услугу, кому интересно то обратится. Он что обязан пошаговую инструкцию писать что и как?Пошаговую инструкцию писать не обязан, но соблюдать лицензию обязан. Опять же даже если бы он сказал что это секрет, я бы нечего не написал бы.
А с чего вы взяли, что он врет? Я например писал подобную мини библиотеку на nodejs тоже для этой же цели.
Ну, а про лицензии на этом ресурсе вообще смешно слышать. Если вы автор библиотеки, которую использует автор и он нарушает ее лицензию и вы можете это подтвердить, то пишите администрации.
-
А с чего вы взяли, что он врет?
Я не говорил что он врет, скорее недоговорил, а что именно испольузется у кого есть опыт в этом деле, легко понять. И смотрите ссылку я на библиотеку не дал, опять же из уважение к ТС.
Если вы автор библиотеки
Скорее коммитер, да и если бы автором был не сделал бы такое.
-
@kotikov said in Разрабатываю автоматизацию андроид приложений на Python + GUI + Memu + БД:
Я не говорил что он врет, скорее недоговорил, а что именно испольузется у кого есть опыт в этом деле, легко понять. И смотрите ссылку я на библиотеку не дал,
На nodejs тоже есть библиотеки, тем не менее я написал свою...
-
@UserTrue
На nodejs тоже есть библиотеки, тем не менее я написал свою...Да есть, очень плохого качества, как бы мне этого не хотелось, большинство библиотек на nodejs очень плохого качества и дизайна.
-
@kotikov said in Разрабатываю автоматизацию андроид приложений на Python + GUI + Memu + БД:
большинство библиотек на nodejs очень плохого качества и дизайна.
Потому что она больше про бэкенд и сборку фронтенда.
-
@kotikov ну поделитесь же ссылкой на библиотеку в личку))