Связь между эмуляторами Android - PullRequest
3 голосов
/ 28 октября 2010

Я хотел знать, возможно ли соединение двух эмуляторов Android на двух разных компьютерах, подключенных к сети.

Например - запуск эмулятора A на компьютере M1 - запуск эмулятора B на компьютере M2

Могут ли А и В обмениваться сообщениями?

Если да, какой IP-адрес я использую?

Большое спасибо, Дебора

Ответы [ 2 ]

1 голос
/ 28 октября 2010

Эмулятор обычно имеет исходящий доступ к локальной сети или интернет-соединению компьютера разработчика, поэтому проблема находится на входящей стороне.

Вы можете использовать эмулятор или порт ADB для пересылки трафика в эмулятор, новозможно, только локально исходящий трафик на петлевом интерфейсе машины разработки, но не внешний трафик.Если это действительно так, то, вероятно, проще всего было бы написать или настроить перенаправитель портов, который прослушивает внешний интерфейс компьютера разработки и перенаправляет на порт, который перенаправляется в эмулятор.

1 голос
/ 28 октября 2010

Возможно, вы уже знаете это.Начиная с android-sdk-tools_r7, по крайней мере, должно быть возможно соединить два эмулятора друг с другом.Работает ли между физическими машинами, я не знаю.Может быть возможно настроить маскирование между двумя хостами для этой конкретной трансляции.

С android commit

Включить соединение эмуляторов

Этот патч добавляет опцию -shared-net-id к эмулятору, который присоединяется к эмулятору в общей сети.Если опция указана, эмулятор запускается с дополнительным сетевым интерфейсом, связанным с многоадресным сокетом.Этот многоадресный сокет эмулирует сетевой концентратор, соединяя эмуляторы.Если опция -shared-net-id не указана, ничего не меняется.

Чтобы соединить два эмулятора, используйте параметр командной строки -shared-net-id <number> при запуске эмулятора.Затем они будут напрямую обмениваться всем, что отправлено или прочитано с ip 10.1.2.<number> на эмуляторе.

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

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

Отказ от ответственности: я не пробовал первый подход, а второй я использовал только для того, чтобы убедиться, что эмулятор может обойти неприятный корпоративный брандмауэр и HTTP-прокси, чтобы мы могли протестировать браузер Android.Принцип должен быть здравым.

Обновление: Нет, я много играл с ним и не нашел хороших решений.Я не достаточно хорош в iptables, чтобы настроить действительный туннель таким образом, чтобы он работал на стороне сервера.

С уважением,
Микаэль

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...