Partager via


Se connecter à un émulateur Android sur un Mac depuis une machine virtuelle Windows

L’émulateur Android fournit des fonctionnalités de mise en réseau polyvalentes qui peuvent être utilisées à différentes fins, notamment la connexion à un émulateur s’exécutant sur un Mac depuis une machine virtuelle Windows. Cela est utile lors de l’exécution de Windows dans Parallels 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 depuis une machine virtuelle Windows :

  1. Utilisation de nc pour effectuer le transfert de paquets. Pour plus d’informations, consultez Utiliser nc pour effectuer le transfert de paquets.
  2. Utilisation du réacheminement de port ssh. Pour plus d’informations, consultez Utiliser le réacheminement de port SSH.

Dans les deux cas, Android Debug Bridge (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 commande adb 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, arrêtez le serveur adb :

    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 pair pour les connexions de console et un port impair pour les connexions adb. 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 nc pour transférer des paquets TCP entrants reçus en externe sur le port 5555 (ou tout autre port) vers le port 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 impair sur l’interface de bouclage.

    À condition que la commande nc continue à s’exécuter dans une fenêtre Terminal, 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 Terminal.

  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 dans 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 peut être obtenu dans Visual Studio via l’élément de menu Outils > Android > invite de commande adb Android...

Une fois la connexion terminée, Visual Studio affiche l’émulateur en tant que cible de débogage dans Appareils locaux Android, que vous pouvez utiliser pour déployer votre application sur l’émulateur.

Utiliser le réacheminement de port SSH

À condition que Session à distance soit activé sur votre Mac, vous pouvez utiliser le réacheminement de port ssh pour vous connecter à l’émulateur.

Important

Le réacheminement de port ssh nécessite l’installation d’un client SSH sur votre machine virtuelle Windows. Une option consiste à installer Git pour Windows. La commande ssh 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 le réacheminement de port ssh, procédez comme suit :

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

  2. Sur votre Mac, ouvrez Terminal.

  3. Dans Terminal, arrêtez le serveur adb :

    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 pair pour les connexions de console et un port impair pour les connexions adb. 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 pour configurer le 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 impair sur l’interface de bouclage.

    Remplacez mac-username par votre nom d’utilisateur Mac, qui peut être obtenu par la commande whoami, 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 peut être obtenu dans Visual Studio via l’élément de menu Outils > Android > invite de commande adb Android...

Une fois la connexion terminée, Visual Studio affiche l’émulateur en tant que cible de débogage dans Appareils locaux Android, que vous pouvez utiliser pour déployer votre application sur l’émulateur.