Připojení k 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:
- 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ů. - 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 adb
ná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:
Na macu spusťte emulátor Androidu.
Na počítači Mac otevřete Terminál.
V terminálu ukončete
adb
server:adb kill-server
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átoremadb
naslouchá na portu 5555 a naslouchá připojení konzoly na portu 5554.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čitnc
přeposílání paketů stisknutím kombinace kláves CTRL+C v okně terminálu.Na virtuálním počítači s Windows otevřete příkazový řádek.
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:
Na macu spusťte emulátor Androidu.
Na počítači Mac otevřete Terminál.
V terminálu ukončete
adb
server:adb kill-server
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átoremadb
naslouchá na portu 5555 a naslouchá připojení konzoly na portu 5554.Na virtuálním počítači s Windows otevřete příkazový řádek.
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 a127.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, aip-address-of-the-mac
IP adresou vašeho Macu.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.
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.