Connecter à un émulateur Android sur un Mac à partir d’une machine virtuelle Windows
L’émulateur Android fournit des fonctionnalités de mise en réseau polyvalentes qui peuvent être utilisées à des fins différentes, notamment la connexion à un émulateur s’exécutant sur un Mac à partir d’une machine virtuelle Windows. Cela est utile lors de l’exécution de Windows en parallèle sur un Mac. Dans ce scénario, il est nécessaire d’utiliser l’émulateur sur le Mac, car il ne peut pas s’exécuter dans Parallels. Pour plus d’informations sur l’installation de l’émulateur Android sur un Mac, consultez Installation.
Important
L’adresse 127.0.0.1 sur votre ordinateur de développement correspond à l’interface de bouclage de l’émulateur.
Il existe deux approches principales pour la connexion à un émulateur Android sur un Mac à partir d’une machine virtuelle Windows :
- Utilisation
nc
pour effectuer le transfert de paquets. Pour plus d’informations, consultez Utiliser nc pour effectuer le transfert de paquets. - Utilisation du
ssh
transfert de port. Pour plus d’informations, consultez Utiliser le transfert de port ssh.
Dans les deux cas, le pont de débogage Android (ADB) est utilisé pour se connecter à l’émulateur. ADB est un outil en ligne de commande fourni avec le package Android SDK Platform Tools, qui vous permet de communiquer avec un appareil. La adb
commande facilite diverses actions d’appareil, notamment la connexion aux appareils. Pour plus d’informations sur adb
, consultez Android Debug Bridge (adb) sur developer.android.com.
Utiliser nc pour effectuer le transfert de paquets
Pour vous connecter à l’émulateur Android s’exécutant sur un Mac à partir d’une machine virtuelle Windows, en utilisant le transfert de paquets, procédez comme suit :
Sur votre Mac, démarrez l’émulateur Android.
Sur votre Mac, ouvrez Terminal.
Dans Terminal, supprimez le
adb
serveur :adb kill-server
Dans Terminal, identifiez les ports utilisés par l’émulateur :
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)
L’émulateur utilise une paire de ports TCP séquentiels : un port numéroté pair pour les connexions console et un port numéroté impair pour
adb
les connexions. Dans la sortie ci-dessus, l’émulateur écouteadb
sur le port 5555 et écoute les connexions de console sur le port 5554.Dans Terminal, utilisez cette option
nc
pour transférer des paquets TCP entrants reçus en externe sur le port 5555 (ou tout autre port) vers le port numéroté impair sur l’interface de bouclage, et pour transférer les paquets sortants de l’autre façon :cd /tmp mkfifo backpipe nc -kl 5555 0<backpipe | nc 127.0.0.1 5555 > backpipe
Dans cet exemple,
127.0.0.1 5555
indique le port numéroté impair sur l’interface de bouclage.À condition que la
nc
commande continue à s’exécuter dans une fenêtre terminale, les paquets sont transférés comme prévu. Une fois que vous avez terminé d’utiliser l’émulateur, vous pouvez arrêternc
d’effectuer le transfert de paquets en appuyant sur Ctrl+C dans la fenêtre terminale.Dans votre machine virtuelle Windows, ouvrez l’invite de commandes.
Dans l’invite de commandes, connectez-vous à l’émulateur :
adb connect ip-address-of-the-mac:5555
Remplacez
ip-address-of-the-mac
cet exemple par l’adresse IP de votre Mac et 5555 par le port que vous avez utilisé à l’étape précédente.Remarque
L’accès en ligne de commande à
adb
obtenir dans Visual Studio via l’élément de menu Outils > Android > Android Adb Command Prompt...
Une fois la connexion terminée, Visual Studio affiche l’émulateur en tant que cible de débogage sous Appareils locaux Android, que vous pouvez utiliser pour déployer votre application sur l’émulateur.
Utiliser le transfert de port SSH
À condition que la connexion à distance soit activée sur votre Mac, vous pouvez utiliser ssh
le transfert de port pour vous connecter à l’émulateur.
Important
ssh
Le transfert de port nécessite l’installation d’un client SSH sur votre machine virtuelle Windows. Une option consiste à installer Git pour Windows. La ssh
commande sera ensuite disponible dans l’invite de commandes Git Bash .
Pour vous connecter à l’émulateur Android s’exécutant sur un Mac à partir d’une machine virtuelle Windows, en utilisant ssh
le transfert de port, procédez comme suit :
Sur votre Mac, démarrez l’émulateur Android.
Sur votre Mac, ouvrez Terminal.
Dans Terminal, supprimez le
adb
serveur :adb kill-server
Dans Terminal, identifiez les ports utilisés par l’émulateur :
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)
L’émulateur utilise une paire de ports TCP séquentiels : un port numéroté pair pour les connexions console et un port numéroté impair pour
adb
les connexions. Dans la sortie ci-dessus, l’émulateur écouteadb
sur le port 5555 et écoute les connexions de console sur le port 5554.Dans votre machine virtuelle Windows, ouvrez l’invite de commandes.
Dans l’invite de commandes, exécutez
ssh
la configuration du transfert de port bidirectionnel entre un port local sur Windows et le port de l’émulateur numéroté impair sur l’interface de bouclage du Mac :ssh -L localhost:15555:127.0.0.1:5555 mac-username@ip-address-of-the-mac
Dans cet exemple,
localhost:15555
indique le port local sur Windows et127.0.0.1 5555
indique le port numéroté impair sur l’interface de bouclage.Remplacez
mac-username
par votre nom d’utilisateur Mac, qui peut être obtenu par lawhoami
commande etip-address-of-the-mac
par l’adresse IP de votre Mac.Dans l’invite de commandes, connectez-vous à l’émulateur à l’aide du port local :
adb connect localhost:15555
Dans cet exemple,
localhost:15555
indique le port local sur WindowsRemarque
L’accès en ligne de commande à
adb
obtenir dans Visual Studio via l’élément de menu Outils > Android > Android Adb Command Prompt...Attention
Si vous utilisez le port 5555 pour le port local,
adb
pensez que l’émulateur s’exécute localement sur Windows. Cela ne provoque aucun problème dans Visual Studio, mais dans Visual Studio pour Mac cela entraîne la sortie de l’application immédiatement après le lancement.
Une fois la connexion terminée, Visual Studio affiche l’émulateur en tant que cible de débogage sous Appareils locaux Android, que vous pouvez utiliser pour déployer votre application sur l’émulateur.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour