Udostępnij za pośrednictwem


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:

  1. Użyj polecenia nc , aby wykonać przekazywanie pakietów. Aby uzyskać więcej informacji, zobacz Używanie nc do wykonywania przekazywania pakietów.
  2. 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 adbprogramu , 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:

  1. Na komputerze Mac uruchom emulator systemu Android.

  2. Na komputerze Mac otwórz terminal.

  3. W terminaluadb zabij serwer:

    adb kill-server
    
  4. 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łuchuje adb na porcie 5555 i nasłuchuje połączeń konsoli na porcie 5554.

  5. 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.

  6. Na maszynie wirtualnej z systemem Windows otwórz wiersz polecenia.

  7. 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:

  1. Na komputerze Mac uruchom emulator systemu Android.

  2. Na komputerze Mac otwórz terminal.

  3. W terminaluadb zabij serwer:

    adb kill-server
    
  4. 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łuchuje adb na porcie 5555 i nasłuchuje połączeń konsoli na porcie 5554.

  5. Na maszynie wirtualnej z systemem Windows otwórz wiersz polecenia.

  6. 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 i 127.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ć za whoami pomocą polecenia i ip-address-of-the-mac adresem IP komputera Mac.

  7. 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 Windows

    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.