Accélération matérielle pour les performances de l’émulateur (Hyper-V et HAXM)

Cet article explique comment utiliser les fonctionnalités d’accélération matérielle de votre ordinateur pour optimiser les performances de l’émulateur Android.

Visual Studio permet aux développeurs de tester et déboguer facilement leurs applications Xamarin.Android à l’aide de l’émulateur Android quand un appareil Android n’est pas disponible ou n’est pas pratique à utiliser. Toutefois, l’émulateur Android s’exécute trop lentement si l’accélération matérielle n’est pas disponible sur l’ordinateur qui l’exécute. Vous pouvez améliorer considérablement les performances de l’émulateur Android en utilisant des images spéciales d’appareils virtuels x86, conjointement avec les fonctionnalités de virtualisation de votre ordinateur.

Scénario HAXM WHPX Hypervisor.Framework
Vous avez un processeur Intel X X X
Vous avez un processeur AMD X
Vous voulez prendre en charge Hyper-V X
Vous voulez prendre en charge la virtualisation imbriquée Limité
Vous voulez utiliser des technologies comme Docker (avec WSL2) X X

Accélération des émulateurs Android sur Windows

Les technologies de virtualisation suivantes sont disponibles pour accélérer l’émulateur Android :

  1. Microsoft Hyper-V et WHPX (Plateforme d’hyperviseur Windows). Hyper-V est une fonctionnalité de virtualisation de Windows qui permet d’exécuter des systèmes informatiques virtualisés sur un ordinateur hôte physique.

  2. Intel Hardware Accelerated Execution Manager (HAXM). HAXM est un moteur de virtualisation pour les ordinateurs dotés d’UC Intel.

Pour une expérience optimale sur Windows, il est recommandé d’utiliser WHPX pour accélérer l’émulateur Android. Si WHPX n’est pas disponible sur votre ordinateur, vous pouvez utiliser HAXM. L’émulateur Android utilise automatiquement l’accélération matérielle si les critères suivants sont remplis :

  • L’accélération matérielle est disponible et activée sur votre ordinateur de développement.

  • L’émulateur exécute une image système créée pour un appareil virtuel x86.

Important

Vous ne pouvez pas exécuter un émulateur accéléré par une machine virtuelle à l’intérieur d’une autre machine virtuelle, telle qu’une machine virtuelle hébergée par VirtualBox, VMware ou Docker (sauf si vous utilisez WSL2). Vous devez exécuter l’émulateur Android directement sur votre matériel système.

Pour plus d’informations sur le lancement de l’émulateur Android, et sur le débogage à l’aide de ce dernier, consultez Débogage sur l’émulateur Android.

Accélération avec Hyper-V

Avant d’activer Hyper-V, lisez la section suivante pour vérifier que votre ordinateur prend en charge Hyper-V.

Vérification de la prise en charge d’Hyper-V

Hyper-V s’exécute sur la plateforme d’hyperviseur Windows. Pour permettre l’utilisation de l’émulateur Android avec Hyper-V, l’ordinateur doit répondre aux critères suivants afin de prendre en charge la plateforme d’hyperviseur Windows :

  • Votre matériel informatique doit répondre aux exigences suivantes :

    • UC Intel ou AMD Ryzen 64 bits avec SLAT (traduction d’adresse de second niveau)
    • Processeur prenant en charge les extensions de mode du moniteur de machine virtuelle (VT-c sur les processeurs Intel).
    • 4 Go de mémoire au minimum
  • Dans le BIOS de votre ordinateur, les éléments suivants doivent être activés :

    • Technologie de virtualisation (peut avoir une autre appellation selon le fabricant de la carte mère).
    • Prévention de l’exécution des données matérielle.
  • Vous devez appliquer à votre ordinateur la mise à jour d’avril 2018 de Windows 10 (build 1803) ou une version ultérieure. Vous pouvez vérifier que votre version de Windows est à jour en effectuant les étapes suivantes :

    1. Dans la zone de recherche Windows, entrez À propos de.

    2. Sélectionnez À propos de votre PC dans les résultats de recherche.

    3. Faites défiler vers le bas la boîte de dialogue À propos de jusqu’à la section Spécifications Windows.

    4. Vérifiez que vous disposez au moins de la version 1803 :

      Windows specifications

Pour vérifier que le matériel et les logiciels de votre ordinateur sont compatibles avec Hyper-V, ouvrez une invite de commandes et tapez la commande suivante :

systeminfo

Si toutes les exigences listées relatives à Hyper-V ont la valeur Oui, votre ordinateur peut prendre en charge Hyper-V. Par exemple :

Example systeminfo output

Activation de l’accélération avec Hyper-V

Si votre ordinateur répond aux critères ci-dessus, effectuez les étapes suivantes pour accélérer l’émulateur Android avec Hyper-V :

  1. Entrez fonctionnalités Windows dans la zone de recherche Windows, puis sélectionnez Activer ou désactiver les fonctionnalités Windows dans les résultats de la recherche. Dans la boîte de dialogue Fonctionnalités Windows, activez Hyper-V et la plateforme d’hyperviseur Windows :

    Enabling Hyper-V and Windows Hypervisor Platform

    Une fois que vous avez apporté ces changements, redémarrez l’ordinateur.

Important

Sur Windows 10 avec la mise à jour d’octobre 2018 (RS5) et ses versions ultérieures, il vous suffit d’activer Hyper-V, car il utilisera WHPX automatiquement.

  1. Installez Visual Studio 15.8 ou une version ultérieure (dans cette version de Visual Studio, l’IDE prend en charge l’exécution de l’émulateur Android avec Hyper-V).

  2. Installez le package de l’émulateur Android 27.2.7 ou ultérieur. Pour installer ce package, accédez au Gestionnaire du Kit de développement logiciel (SDK) Android > Android Tools > dans Visual Studio. Sélectionnez l’onglet Outils et vérifiez que la version de l’émulateur Android correspond au moins à la version 27.2.7. Vérifiez également que la version d’Android SDK Tools est 26.1.1 ou ultérieure :

    Android SDKs and Tools dialog

Quand vous créez un appareil virtuel (consultez Gestion des appareils virtuels avec Android Device Manager), veillez à sélectionner une image système x86. Si vous utilisez une image système ARM, l’appareil virtuel ne sera pas accéléré et fonctionnera lentement.

Hyper-V doit maintenant être activé et vous pouvez exécuter votre émulateur Android accéléré.

Accélération avec HAXM

Si votre ordinateur ne prend pas en charge Hyper-V, vous pouvez utiliser HAXM pour accélérer l’émulateur Android. Vous devez désactiver Device Guard pour pouvoir utiliser HAXM.

Vérification de la prise en charge d’HAXM

Pour déterminer si votre matériel prend en charge HAXM, suivez les étapes indiquées dans Mon processeur prend-il en charge la technologie de virtualisation Intel ?. Si votre matériel prend en charge HAXM, vous pouvez vérifier si HAXM est déjà installé en effectuant les étapes suivantes :

  1. Ouvrez une fenêtre d’invite de commandes, puis entrez la commande suivante :

    sc query intelhaxm
    
  2. Examinez la sortie pour voir si le processus HAXM est en cours d’exécution. Si tel est le cas, vous devez voir la sortie listant l’état de intelhaxm comme étant RUNNING. Par exemple :

    Output from sc query command when HAXM is available

    Si STATE n’a pas la valeur RUNNING, HAXM n’est pas installé.

Si votre ordinateur peut prendre en charge HAXM mais que ce dernier n’est pas installé, suivez les étapes de la prochaine section pour installer HAXM.

Installation d’HAXM

Les packages d’installation HAXM pour Windows sont disponibles à partir de la page des versions GitHub du Gestionnaire d’exécution accélérée du matériel Intel. Effectuez les étapes suivantes pour télécharger et installer HAXM :

  1. Depuis le site web Intel, téléchargez la dernière version du programme d’installation du moteur de virtualisation HAXM pour Windows. En téléchargeant le programme d’installation d’HAXM directement depuis le site web Intel, vous avez l’assurance d’utiliser la version la plus récente.

  2. Exécutez haxm-N.N.N-setup.exe (où N.N.N.est le numéro de version) pour démarrer le programme d’installation HAXM. Acceptez les valeurs par défaut dans les boîtes de dialogue du programme d’installation :

    Intel Hardware Accelerated Execution Manager Setup window

Quand vous créez un appareil virtuel (consultez Gestion des appareils virtuels avec Android Device Manager), veillez à sélectionner une image système x86. Si vous utilisez une image système ARM, l’appareil virtuel ne sera pas accéléré et fonctionnera lentement.

Dépannage

Pour obtenir de l’aide sur la résolution des problèmes d’accélération matérielle, consultez le guide Résolution des problèmes de l’émulateur Android.

Accélération des émulateurs Android sur macOS

Les technologies de virtualisation suivantes sont disponibles pour accélérer l’émulateur Android :

  1. Framework Hypervisor d’Apple. Hypervisor est une fonctionnalité de macOS 10.10 et version ultérieure, qui permet d’exécuter des machines virtuelles sur un Mac.

  2. Intel Hardware Accelerated Execution Manager (HAXM). HAXM est un moteur de virtualisation pour les ordinateurs dotés d’UC Intel.

Il est recommandé d’utiliser le framework Hypervisor pour accélérer l’émulateur Android. Si le framework Hypervisor n’est pas disponible sur votre Mac, vous pouvez utiliser HAXM. L’émulateur Android utilise automatiquement l’accélération matérielle si les critères suivants sont remplis :

  • L’accélération matérielle est disponible et activée sur l’ordinateur de développement.

  • L’émulateur exécute une image système créée pour un appareil virtuel x86.

Important

Vous ne pouvez pas exécuter un émulateur accéléré par une machine virtuelle à l’intérieur d’une autre machine virtuelle, telle qu’une machine virtuelle hébergée par VirtualBox, VMware ou Docker. Vous devez exécuter l’émulateur Android directement sur votre matériel système.

Pour plus d’informations sur le lancement de l’émulateur Android, et sur le débogage à l’aide de ce dernier, consultez Débogage sur l’émulateur Android.

Accélération avec le framework Hypervisor

Pour permettre l’utilisation de l’émulateur Android avec le framework Hypervisor, votre Mac doit répondre aux critères suivants :

  • Votre Mac doit exécuter macOS 10.10 ou une version ultérieure.

  • L’UC de votre Mac doit pouvoir prendre en charge le framework Hypervisor.

Si votre Mac répond à ces critères, l’émulateur Android utilise automatiquement le framework Hypervisor pour l’accélération. Si vous ne savez pas si le framework Hypervisor est pris en charge sur votre Mac, consultez le guide Résolution des problèmes pour vérifier que votre Mac prend en charge Hypervisor.

Si le framework Hypervisor n’est pas pris en charge par votre Mac, vous pouvez utiliser HAXM pour accélérer l’émulateur Android (décrit ci-après).

Accélération avec HAXM

Si votre Mac ne prend pas en charge le framework Hypervisor (ou si vous utilisez une version de macOS antérieure à la version 10.10), vous pouvez vous servir du Gestionnaire d’exécution avec accélération matérielle d’Intel (HAXM) pour accélérer l’émulateur Android.

Avant d’utiliser l’émulateur Android avec HAXM pour la première fois, pensez à vérifier qu’HAXM est installé et disponible pour l’émulateur Android.

Vérification de la prise en charge d’HAXM

Vous pouvez vérifier si HAXM est déjà installé en effectuant les étapes suivantes :

  1. Ouvrez une fenêtre Terminal, puis entrez la commande suivante :

    ~/Library/Developer/Xamarin/android-sdk-macosx/tools/emulator -accel-check
    

    Cette commande suppose que le kit Android SDK est installé à l’emplacement par défaut : ~/Library/Developer/Xamarin/android-sdk-macosx. Sinon, modifiez le chemin ci-dessus pour indiquer l’emplacement du kit Android SDK sur votre Mac.

  2. Si HAXM est installé, la commande ci-dessus retourne un message similaire au résultat suivant :

    HAXM version 7.2.0 (3) is installed and usable.
    

    Si HAXM n’est pas installé, un message similaire à la sortie suivante est retourné :

    HAXM is not installed on this machine (/dev/HAX is missing).
    

Si HAXM n’est pas installé, effectuez les étapes de la section suivante pour l’installer.

Installation d’HAXM

Les paquets d’installation HAXM pour macOS sont disponibles sur la page Gestionnaire d’exécution avec accélération matérielle d’Intel. Effectuez les étapes suivantes pour télécharger et installer HAXM :

  1. Depuis le site web Intel, téléchargez la dernière version du programme d’installation du moteur de virtualisation HAXM pour macOS.

  2. Exécutez le programme d’installation de HAXM. Acceptez les valeurs par défaut dans les boîtes de dialogue du programme d’installation :

    Intel Hardware Accelerated Execution Manager Setup window

Dépannage

Pour obtenir de l’aide sur la résolution des problèmes d’accélération matérielle, consultez le guide Résolution des problèmes de l’émulateur Android.