Nawiązywanie połączenia z emulatorem systemu Android na komputerze Mac z poziomu maszyny wirtualnej z systemem Windows
Emulator systemu Android zapewnia uniwersalne możliwości sieciowe, które mogą być używane w różnych celach, w tym nawiązywanie połączenia z emulatorem uruchomionym na komputerze Mac z poziomu maszyny wirtualnej z systemem Windows. Jest to przydatne w przypadku uruchamiania systemu Windows równolegle na komputerze Mac. W tym scenariuszu wymagane jest użycie emulatora na komputerze Mac, ponieważ nie może działać równolegle. Aby uzyskać informacje na temat instalowania emulatora systemu Android na komputerze Mac, zobacz Instalacja.
Ważne
Adres 127.0.0.1 na maszynie deweloperskiej odpowiada interfejsowi sprzężenia zwrotnego emulatora.
Istnieją dwa główne podejścia do nawiązywania połączenia z emulatorem systemu Android na komputerze Mac z poziomu maszyny wirtualnej z systemem Windows:
- Użyj polecenia
nc
, aby wykonać przekazywanie pakietów. Aby uzyskać więcej informacji, zobacz Używanie nc do wykonywania przekazywania pakietów. - Używanie
ssh
przekierowania portów. Aby uzyskać więcej informacji, zobacz Use ssh port forwarding (Używanie przekazywania portów ssh).
W obu przypadkach mostek debugowania systemu Android (ADB) jest używany do nawiązywania połączenia z emulatorem. ADB to narzędzie wiersza polecenia, które jest połączone z pakietem Narzędzi platformy zestawu SDK systemu Android, które umożliwia komunikowanie się z urządzeniem. Polecenie adb
ułatwia różne akcje urządzeń, w tym nawiązywanie połączenia z urządzeniami. Aby uzyskać więcej informacji na temat adb
programu , zobacz Android Debug Bridge (adb) on developer.android.com (Most debugowania systemu Android — adb).
Używanie nc do wykonywania przekazywania pakietów
Aby nawiązać połączenie z emulatorem systemu Android uruchomionym na komputerze Mac z maszyny wirtualnej z systemem Windows przy użyciu przekazywania pakietów, wykonaj następujące kroki:
Na komputerze Mac uruchom emulator systemu Android.
Na komputerze Mac otwórz terminal.
W terminalu
adb
zabij serwer:adb kill-server
W terminalu zidentyfikuj porty używane przez emulator:
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)
Emulator używa pary sekwencyjnych portów TCP — portu parzystych numerowanych dla połączeń konsoli i portu nieparzystych numerowanych dla
adb
połączeń. W danych wyjściowych powyżej emulator nasłuchujeadb
na porcie 5555 i nasłuchuje połączeń konsoli na porcie 5554.W terminalu użyj polecenia
nc
, aby przekazywać przychodzące pakiety TCP odbierane zewnętrznie na porcie 5555 (lub innym porcie) do portu nieparzystnego w interfejsie sprzężenia zwrotnego i przekazać pakiety wychodzące z powrotem w inny sposób:cd /tmp mkfifo backpipe nc -kl 5555 0<backpipe | nc 127.0.0.1 5555 > backpipe
W tym przykładzie
127.0.0.1 5555
oznacza port z nieparzystnym numerem w interfejsie sprzężenia zwrotnego.nc
Jeśli polecenie będzie nadal działać w oknie terminalu, pakiety będą przekazywane zgodnie z oczekiwaniami. Po zakończeniu korzystania z emulatora możesz przestaćnc
wykonywać przekazywanie pakietów, naciskając CTRL+C w oknie terminalu.Na maszynie wirtualnej z systemem Windows otwórz wiersz polecenia.
W wierszu polecenia połącz się z emulatorem:
adb connect ip-address-of-the-mac:5555
Zastąp
ip-address-of-the-mac
w tym przykładzie adresem IP komputera Mac i 5555 portem użytym w poprzednim kroku.Uwaga
Dostęp
adb
do wiersza polecenia można uzyskać w programie Visual Studio za pomocą elementu menu Narzędzia dla > systemu Android > Android Adb wiersza polecenia ... .
Po zakończeniu połączenia program Visual Studio wyświetli emulator jako element docelowy debugowania w obszarze Urządzenia lokalne systemu Android, którego można użyć do wdrożenia aplikacji w emulatorze.
Używanie przekierowania portów SSH
Jeśli na komputerze Mac włączono zdalne logowanie, możesz użyć ssh
przekazywania portów, aby nawiązać połączenie z emulatorem.
Ważne
ssh
Przekazywanie portów wymaga zainstalowania klienta SSH na maszynie wirtualnej z systemem Windows. Jedną z opcji jest zainstalowanie narzędzia Git dla systemu Windows. Polecenie ssh
będzie następnie dostępne w wierszu polecenia powłoki Git Bash .
Aby nawiązać połączenie z emulatorem systemu Android uruchomionym na komputerze Mac z maszyny wirtualnej z systemem Windows przy użyciu ssh
przekazywania portów, wykonaj następujące czynności:
Na komputerze Mac uruchom emulator systemu Android.
Na komputerze Mac otwórz terminal.
W terminalu
adb
zabij serwer:adb kill-server
W terminalu zidentyfikuj porty używane przez emulator:
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)
Emulator używa pary sekwencyjnych portów TCP — portu parzystych numerowanych dla połączeń konsoli i portu nieparzystych numerowanych dla
adb
połączeń. W danych wyjściowych powyżej emulator nasłuchujeadb
na porcie 5555 i nasłuchuje połączeń konsoli na porcie 5554.Na maszynie wirtualnej z systemem Windows otwórz wiersz polecenia.
W wierszu polecenia uruchom polecenie
ssh
, aby skonfigurować dwukierunkowe przekierowywanie portów między portem lokalnym w systemie Windows i port emulatora z nieparzystnym numerem w interfejsie sprzężenia zwrotnego komputera Mac:ssh -L localhost:15555:127.0.0.1:5555 mac-username@ip-address-of-the-mac
W tym przykładzie
localhost:15555
oznacza port lokalny w systemie Windows i127.0.0.1 5555
określa port z nieparzystnym numerem w interfejsie sprzężenia zwrotnego.Zastąp
mac-username
ciąg nazwą użytkownika komputera Mac, którą można uzyskać zawhoami
pomocą polecenia iip-address-of-the-mac
adresem IP komputera Mac.W wierszu polecenia połącz się z emulatorem przy użyciu portu lokalnego:
adb connect localhost:15555
W tym przykładzie
localhost:15555
oznacza port lokalny w systemie WindowsUwaga
Dostęp
adb
do wiersza polecenia można uzyskać w programie Visual Studio za pomocą elementu menu Narzędzia dla > systemu Android > Android Adb wiersza polecenia ... .
Po zakończeniu połączenia program Visual Studio wyświetli emulator jako element docelowy debugowania w obszarze Urządzenia lokalne systemu Android, którego można użyć do wdrożenia aplikacji w emulatorze.