Sdílet prostřednictvím


Připojení emulátoru Androidu na Macu z virtuálního počítače s Windows

Emulátor Androidu poskytuje všestranné síťové funkce, které se dají použít pro různé účely, včetně připojení k emulátoru běžícímu na Macu z virtuálního počítače s Windows. To je užitečné při spouštění Windows paralelně na Macu. V tomto scénáři je nutné používat emulátor na Macu, protože nejde spustit v parallels. Informace o instalaci emulátoru Androidu na Macu najdete v tématu Instalace.

Důležité

Adresa 127.0.0.1 na vývojovém počítači odpovídá rozhraní zpětné smyčky emulátoru.

Existují dva hlavní přístupy pro připojení k emulátoru Androidu na Macu z virtuálního počítače s Windows:

  1. Používá nc se k předávání paketů. Další informace naleznete v tématu Použití nc k provádění předávání paketů.
  2. Pomocí ssh přesměrování portů. Další informace najdete v tématu Použití přesměrování portů ssh.

V obou případech se k připojení k emulátoru používá most ADB (Android Debug Bridge). ADB je nástroj příkazového řádku, který je součástí balíčku Android SDK Platform Tools, který umožňuje komunikovat se zařízením. Příkaz adb usnadňuje celou řadu akcí zařízení, včetně připojení k zařízením. Další informace o adbnástroji Android Debug Bridge (adb) najdete v developer.android.com.

Použití nc k přeposílání paketů

Pokud se chcete připojit k emulátoru Androidu spuštěného na Macu z virtuálního počítače s Windows, pomocí předávání paketů použijte následující kroky:

  1. Na macu spusťte emulátor Androidu.

  2. Na počítači Mac otevřete Terminál.

  3. V terminálu ukončete adb server:

    adb kill-server
    
  4. V terminálu identifikujte porty používané emulátorem:

    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)
    

    Emulátor používá dvojici sekvenčních portů TCP – sudého portu pro připojení konzoly a lichý port pro adb připojení. Ve výstupu nad emulátorem adb naslouchá na portu 5555 a naslouchá připojení konzoly na portu 5554.

  5. V terminálu se používá nc k přesměrování příchozích paketů TCP přijatých externě na portu 5555 (nebo jiném portu) na lichý port v rozhraní zpětné smyčky a k přesměrování odchozích paketů zpět jiným způsobem:

    cd /tmp
    mkfifo backpipe
    nc -kl 5555 0<backpipe | nc 127.0.0.1 5555 > backpipe
    

    V tomto příkladu 127.0.0.1 5555 označuje lichý port v rozhraní zpětné smyčky.

    Za předpokladu nc , že příkaz běží v okně terminálu, se pakety předávají podle očekávání. Jakmile dokončíte používání emulátoru, můžete ukončit nc přeposílání paketů stisknutím kombinace kláves CTRL+C v okně terminálu.

  6. Na virtuálním počítači s Windows otevřete příkazový řádek.

  7. V příkazovém řádku se připojte k emulátoru:

    adb connect ip-address-of-the-mac:5555
    

    V tomto příkladu nahraďte ip-address-of-the-mac IP adresou vašeho Macu a 5555 portem, který jste použili v předchozím kroku.

    Poznámka:

    Přístup k příkazovému řádku lze adb získat v sadě Visual Studio prostřednictvím položky nabídky Nástroje > Android > Adb Adb... nabídky.

Po dokončení připojení se v sadě Visual Studio zobrazí emulátor jako cíl ladění v místních zařízeních s Androidem, který můžete použít k nasazení aplikace do emulátoru.

Použití přesměrování portů ssh

Pokud je na počítači Mac povolené vzdálené přihlášení, můžete k připojení k emulátoru použít ssh přesměrování portů.

Důležité

ssh přesměrování portů vyžaduje, abyste na virtuálním počítači s Windows nainstalovali klienta SSH. Jednou z možností je instalace Gitu pro Windows. Příkaz ssh pak bude k dispozici na příkazovém řádku Git Bash .

Pokud se chcete připojit k emulátoru Androidu spuštěného na macu z virtuálního počítače s Windows, použijte přesměrování ssh portů pomocí následujícího postupu:

  1. Na macu spusťte emulátor Androidu.

  2. Na počítači Mac otevřete Terminál.

  3. V terminálu ukončete adb server:

    adb kill-server
    
  4. V terminálu identifikujte porty používané emulátorem:

    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)
    

    Emulátor používá dvojici sekvenčních portů TCP – sudého portu pro připojení konzoly a lichý port pro adb připojení. Ve výstupu nad emulátorem adb naslouchá na portu 5555 a naslouchá připojení konzoly na portu 5554.

  5. Na virtuálním počítači s Windows otevřete příkazový řádek.

  6. V příkazovém řádku spusťte ssh nastavení obousměrného přesměrování portů mezi místním portem ve Windows a lichým číslem emulátoru v rozhraní zpětné smyčky Mac:

    ssh -L localhost:15555:127.0.0.1:5555 mac-username@ip-address-of-the-mac
    

    V tomto příkladu localhost:15555 označuje místní port ve Windows a 127.0.0.1 5555 označuje lichý port v rozhraní zpětné smyčky.

    Nahraďte mac-username uživatelské jméno mac, které můžete získat pomocí whoami příkazu, a ip-address-of-the-mac IP adresou vašeho Macu.

  7. V příkazovém řádku se připojte k emulátoru pomocí místního portu:

    adb connect localhost:15555
    

    V tomto příkladu localhost:15555 označuje místní port ve Windows.

    Poznámka:

    Přístup k příkazovému řádku lze adb získat v sadě Visual Studio prostřednictvím položky nabídky Nástroje > Android > Adb Adb... nabídky.

    Upozornění

    Pokud pro místní port použijete port 5555, bude si myslet, adb že emulátor běží místně ve Windows. To nezpůsobuje žádné problémy v sadě Visual Studio, ale v Visual Studio pro Mac způsobí, že se aplikace okamžitě po spuštění ukončí.

Po dokončení připojení se v sadě Visual Studio zobrazí emulátor jako cíl ladění v místních zařízeních s Androidem, který můžete použít k nasazení aplikace do emulátoru.