Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эмулятор Android предоставляет универсальные сетевые возможности, которые можно использовать для различных целей, включая подключение к эмулятору, работающему на Компьютере Mac, из виртуальной машины Windows. Это полезно при запуске Windows в Parallels на Компьютере Mac. В этом сценарии необходимо использовать эмулятор на Компьютере Mac, так как он не может работать в Parallels. Сведения об установке эмулятора Android на Mac см. в разделе "Установка".
Это важно
Адрес 127.0.0.1 на компьютере разработки соответствует интерфейсу обратного цикла эмулятора.
Существует два основных подхода для подключения к эмулятору Android на Mac из виртуальной машины Windows:
- Использование
nc
для переадресации пакетов. Дополнительные сведения см. в разделе "Использование nc" для переадресации пакетов. - Использование перенаправления портов
ssh
. Дополнительные сведения см. в разделе "Использование перенаправления портов ssh".
В обоих случаях мост отладки Android (ADB) используется для подключения к эмулятору. ADB — это средство командной строки, которое упаковано с пакетом средств платформы sdk для Android, которое позволяет взаимодействовать с устройством. Команда adb
упрощает различные действия устройства, включая подключение к устройствам. Дополнительные сведения см. в разделе "adb
Мост отладки Android" (adb) на developer.android.com.
Использование nc для переадресации пакетов
Чтобы подключиться к эмулятору Android, работающему на компьютере Mac с виртуальной машины Windows, с помощью перенаправления пакетов выполните следующие действия.
На компьютере Mac запустите эмулятор Android.
На компьютере Mac откройте терминал.
В терминале убейте
adb
сервер:adb kill-server
В терминале определите порты, используемые эмулятором:
lsof -iTCP -sTCP:LISTEN -P | grep 'emulator\|qemu' emulator6 94105 macuser 20u IPv4 0xa8dacfb1d4a1b51f 0t0 TCP localhost:5555 (LISTEN) emulator6 94105 macuser 21u IPv4 0xa8dacfb1d845a51f 0t0 TCP localhost:5554 (LISTEN)
Эмулятор использует пару последовательных TCP-портов — четный порт для подключений консоли и нечетный порт для
adb
подключений. В выходных данных выше указано, что эмулятор прослушиваетadb
на порту 5555 и подключения консоли на порту 5554.В терминале используется
nc
для перенаправления входящих TCP-пакетов, полученных вне порта 5555 (или любого другого порта) на нечетный порт в интерфейсе обратного цикла, а также для перенаправления исходящих пакетов обратно следующим образом:cd /tmp mkfifo backpipe nc -kl 5555 0<backpipe | nc 127.0.0.1 5555 > backpipe
В этом примере
127.0.0.1 5555
обозначает нечетный порт в интерфейсе обратного цикла.nc
Если команда продолжает работать в окне терминала, пакеты будут пересылаться должным образом. После завершения работы с эмулятором можно остановитьnc
пересылку пакетов, нажав клавиши CTRL+C в окне терминала.На виртуальной машине Windows откройте командную строку.
В командной строке подключитесь к эмулятору:
adb connect ip-address-of-the-mac:5555
Замените
ip-address-of-the-mac
в этом примере IP-адресом Mac и 5555 портом, используемым на предыдущем шаге.Замечание
Доступ к
adb
командной строке можно получить в Visual Studio с помощью пункта меню "Средства > Android > Командная строка Adb...".
После завершения подключения Visual Studio отобразит эмулятор в качестве целевого объекта отладки на локальных устройствах Android, который можно использовать для развертывания приложения в эмуляторе.
Использование перенаправления портов SSH
Если на вашем Mac включён удалённый вход, вы можете использовать ssh
перенаправление портов для подключения к эмулятору.
Это важно
ssh
Перенаправление портов требует установки клиента SSH на виртуальной машине Windows. Одним из вариантов является установка Git для Windows. Затем команда ssh
будет доступна в командной строке Git Bash .
Чтобы подключиться к эмулятору Android, работающему на Компьютере Mac с виртуальной машины Windows, с помощью ssh
перенаправления портов выполните следующие действия.
На компьютере Mac запустите эмулятор Android.
На компьютере Mac откройте терминал.
В терминале завершите процесс сервера:
adb kill-server
В терминале определите порты, используемые эмулятором:
lsof -iTCP -sTCP:LISTEN -P | grep 'emulator\|qemu' emulator6 94105 macuser 20u IPv4 0xa8dacfb1d4a1b51f 0t0 TCP localhost:5555 (LISTEN) emulator6 94105 macuser 21u IPv4 0xa8dacfb1d845a51f 0t0 TCP localhost:5554 (LISTEN)
Эмулятор использует пару последовательных TCP-портов — четный порт для подключений консоли и нечетный порт для
adb
подключений. В приведенном выше выводе эмулятор ожидаетadb
на порту 5555 и ожидает подключения консоли на порту 5554.На виртуальной машине Windows откройте командную строку.
В командной строке выполните
ssh
для настройки двустороннего перенаправления портов между локальным портом в Windows и нечетным портом эмулятора в интерфейсе обратного цикла Mac.ssh -L localhost:15555:127.0.0.1:5555 mac-username@ip-address-of-the-mac
В этом примере
localhost:15555
обозначает локальный порт в операционной системе Windows, а127.0.0.1 5555
обозначает нечетный порт на интерфейсе обратной петли.Замените
mac-username
вашим именем пользователя Mac, которое можно получить с помощью командыwhoami
, иip-address-of-the-mac
IP-адресом вашего Mac.В командной строке подключитесь к эмулятору с помощью локального порта:
adb connect localhost:15555
В этом примере
localhost:15555
обозначает локальный порт в WindowsЗамечание
Доступ к
adb
командной строке можно получить в Visual Studio с помощью пункта меню "Инструменты > Android > Adb Command Prompt...".
После завершения подключения Visual Studio отобразит эмулятор в качестве целевого объекта отладки на локальных устройствах Android, который можно использовать для развертывания приложения в эмуляторе.