Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud se chcete připojit k emulátoru Androidu spuštěného na Počítači Mac z virtuálního počítače s Windows, postupujte následovně:
Poznámka:
Doporučujeme použít emulátor Androidu, který neobsahuje Obchod Google Play.
Spusťte emulátor na Macu.
adbUkončete server na Macu:adb kill-serverMějte na paměti, že emulátor naslouchá na 2 portech TCP v síťovém rozhraní zpětné smyčky:
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)Lichý číslovaný port je port použitý pro připojení k
adb. Viz také https://developer.android.com/tools/devices/emulator.html#emulatornetworking.Možnost 1: Slouží
nck přesměrování příchozích paketů TCP přijatých externě na portu 5555 (nebo jiném portu, který se vám líbí) na lichý port v rozhraní zpětné smyčky (v tomto příkladu 127.0.0.1 5555 ) a k přesměrování odchozích paketů zpět tímto způsobem:cd /tmp mkfifo backpipe nc -kl 5555 0<backpipe | nc 127.0.0.1 5555 > backpipencDokud příkazy zůstanou spuštěné v okně terminálu, pakety se předávají podle očekávání. Po dokončení používání emulátoru můžete v okně terminálu zadat control-C a ukončitncpříkazy.(Možnost 1 je obvykle jednodušší než možnost 2, zejména pokud Je zapnutá brána firewall zabezpečení a ochrany osobních údajů > v předvolbách > systému.)
Možnost 2: Slouží
pfctlk přesměrování paketů TCP z portu5555(nebo jakéhokoli jiného portu, který se vám líbí) v rozhraní sdílené sítě na lichý port v rozhraní zpětné smyčky (127.0.0.1:5555v tomto příkladu):sed '/rdr-anchor/a rdr pass on vmnet8 inet proto tcp from any to any port 5555 -> 127.0.0.1 port 5555' /etc/pf.conf | sudo pfctl -ef -Tento příkaz nastaví přesměrování portů pomocí
pf packet filtersystémové služby. Konce řádků jsou důležité. Při vkládání nezapomeňte je zachovat beze změny. Pokud používáte Parallels, budete také muset upravit název rozhraní z virtuální sítě8 .vmnet8je název speciálního zařízení NAT pro režim sdílených sítí v nástroji VMWare Fusion. Vhodné síťové rozhraní paralelně je pravděpodobně vnic0.Připojení do emulátoru z počítače s Windows:
C:\> adb connect ip-address-of-the-mac:5555Nahraďte "ip-address-of-the-mac" IP adresou Počítače Mac, například uvedenou uživatelem
ifconfig vmnet8 | grep 'inet '. V případě potřeby nahraďte5555jiným portem, který se vám líbí z kroku 4. (Poznámka: Jedním ze způsobů, jak získat přístupadbpomocí příkazového řádku příkazového řádku Tools > Android > Android Adb v sadě Visual Studio.)
Alternativní technika s využitím ssh
Pokud jste na Macu povolili vzdálené přihlášení , můžete k připojení k emulátoru použít ssh přesměrování portů.
Nainstalujte klienta SSH ve Windows. Jednou z možností je instalace Gitu pro Windows. Příkaz
sshpak bude k dispozici na příkazovém řádku Git Bash .Podle kroků 1 až 3 výše spusťte emulátor, ukončete server na Macu a identifikujte
adbporty emulátoru.Spuštěním
sshve Windows nastavte obousměrné přesměrování portů mezi místním portem ve Windows (localhost:15555v tomto příkladu) a lichým číslovaným portem emulátoru v rozhraní zpětné smyčky Macu (127.0.0.1:5555v tomto příkladu):C:\> ssh -L localhost:15555:127.0.0.1:5555 mac-username@ip-address-of-the-macNahraďte
mac-usernamesvým uživatelským jménem pro Mac, jak je uvedeno vwhoamiseznamu . Nahraďteip-address-of-the-macIP adresou počítače Mac.Připojení do emulátoru pomocí místního portu ve Windows:
C:\> adb connect localhost:15555(Poznámka: Jedním ze snadných způsobů, jak získat přístup k příkazovému
adbřádku pomocí příkazového řádku Tools > Android > Android Adb v sadě Visual Studio.)
Malé upozornění: Pokud používáte port 5555 pro místní port, bude si myslet, adb že emulátor běží místně ve Windows. To nezpůsobuje žádné potíže v sadě Visual Studio, ale v Visual Studio pro Mac způsobí, že se aplikace okamžitě po spuštění ukončí.
Alternativní technika použití ještě není podporována.adb -H
Teoreticky by dalším přístupem bylo použití adbintegrované funkce pro připojení k adb serveru běžícímu na vzdáleném počítači (viz například https://stackoverflow.com/a/18551325).
Rozšíření IDE Xamarin.Android ale v současné době neposkytují způsob konfigurace této možnosti.
Kontaktní informace
Tento dokument popisuje aktuální chování od března 2016. Technika popsaná v tomto dokumentu není součástí stabilní testovací sady pro Xamarin, takže by se mohla v budoucnu přerušit.
Pokud si všimnete, že technika již nefunguje nebo pokud si všimnete jiných chyb v dokumentu, můžete přidat do diskuze na následujícím fóru vlákno: http://forums.xamarin.com/discussion/33702/android-emulator-from-host-device-inside-windows-vm. Děkujeme!