Partager via


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 :

  1. Utilisation nc pour effectuer le transfert de paquets. Pour plus d’informations, consultez Utiliser nc pour effectuer le transfert de paquets.
  2. 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 :

  1. Sur votre Mac, démarrez l’émulateur Android.

  2. Sur votre Mac, ouvrez Terminal.

  3. Dans Terminal, supprimez le adb serveur :

    adb kill-server
    
  4. 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 écoute adb sur le port 5555 et écoute les connexions de console sur le port 5554.

  5. 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êter nc d’effectuer le transfert de paquets en appuyant sur Ctrl+C dans la fenêtre terminale.

  6. Dans votre machine virtuelle Windows, ouvrez l’invite de commandes.

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

  1. Sur votre Mac, démarrez l’émulateur Android.

  2. Sur votre Mac, ouvrez Terminal.

  3. Dans Terminal, supprimez le adb serveur :

    adb kill-server
    
  4. 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 écoute adb sur le port 5555 et écoute les connexions de console sur le port 5554.

  5. Dans votre machine virtuelle Windows, ouvrez l’invite de commandes.

  6. 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 et 127.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 la whoami commande et ip-address-of-the-mac par l’adresse IP de votre Mac.

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

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

    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.