Android Emulator — qu'est-ce que c'est et comment fonctionne l'émulation

Auteur : IT Sectr Publié le : 2026-02-09 Temps de lecture : 8 min

Android Emulator est un composant d'Android Studio qui exécute une copie virtuelle complète d'un appareil Android sur l'ordinateur du développeur. L'émulateur utilise QEMU pour traduire les instructions ARM vers l'architecture x86_64 de l'hôte. Documentation Google décrit le cycle complet de configuration des appareils virtuels AVD et de l'accélération matérielle.

Points clés

  • Android Emulator — émulation complète basée sur QEMU avec prise en charge de la traduction ARM, GPU, capteurs et NFC
  • AVD Manager — outil de création et de configuration d'appareils virtuels avec sélection du niveau d'API, de l'architecture et des caractéristiques matérielles
  • HAxM et Hyper-V — accélération matérielle pour augmenter les performances de l'émulateur de 3 à 5 fois
  • Vérification dans le code — Build.FINGERPRINT et Build.PRODUCT permettent de détecter l'exécution dans l'émulateur en Kotlin
  • Émulation de capteurs — accéléromètre, gyroscope, NFC, GPS et caméra sont pris en charge dans l'émulateur

Qu'est-ce que Android Emulator ?

Android Emulator est un appareil Android virtuel fonctionnant sur QEMU (Quick EMUlator) qui émule la plateforme matérielle Android. Contrairement à iOS Simulator, Android Emulator traduit complètement les instructions ARM, permettant au code compilé pour l'architecture mobile de s'exécuter sur un hôte x86_64.

Google a publié Android Emulator en 2007 avec la première version de l'Android SDK. Depuis, l'émulateur est passé d'une solution lente uniquement ARM à un système haute performance avec prise en charge GPU, accélération matérielle et émulation de capteurs. Selon Google (Android Developer Blog, 2025), l'émulateur moderne avec HAxM fonctionne 4 à 5 fois plus vite que la première génération.

L'émulateur prend en charge tous les composants d'un appareil Android : CPU, GPU, RAM, stockage, écran tactile, accéléromètre, gyroscope, GPS, caméra, batterie, NFC, Bluetooth et Wi-Fi. Le développeur peut simuler des appels entrants, des SMS, différents niveaux de signal réseau et la géolocalisation via Extended Controls.

Images système pour l'émulateur

Android Emulator utilise des images système téléchargées via le SDK Manager. Chaque image système contient une copie complète du firmware Android pour le niveau d'API et l'architecture de processeur cible sélectionnés. Des images sont disponibles avec différentes architectures : x86_64 (recommandée avec HAxM), ARM64 (pour les tests de compatibilité ARM) et Google APIs (avec Google Play Services préinstallés). Des images séparées sont également disponibles pour Wear OS, Android TV et Automotive.

kotlin
// Vérification du type d'émulateur dans le code
val isEmulator = Build.FINGERPRINT
    .contains("generic") ||
    Build.PRODUCT.contains("sdk")

if (isEmulator) {
    Timber.d("L'application s'exécute dans l'émulateur")
}

Configuration d'AVD dans Android Studio

AVD (Android Virtual Device) est une configuration d'appareil virtuel pour l'émulateur. Le AVD Manager dans Android Studio permet de créer des appareils avec n'importe quelle combinaison de caractéristiques : modèle, taille d'écran, densité de pixels, quantité de RAM, taille de stockage et version d'Android.

Paramètre AVDRecommandation pour le développementRecommandation pour les tests
Architecturex86_64 (avec HAxM)ARM64 (émulation pure)
RAM2048-4096 Mo1536-2048 Mo
Stockage interne8-16 Go4-8 Go
Niveau d'APIDernier stableMinimum pris en charge
Google Play ServicesActiverSelon besoin

Création d'AVD s'effectue via le Device Manager dans Android Studio : sélectionnez un profil matériel (Pixel, Nexus, Galaxy et autres), une image système et configurez les paramètres. Après la création, l'appareil apparaît dans la liste Run Configurations pour un lancement immédiat de l'application.

Mode Snapshot pour un démarrage rapide

L'émulateur prend en charge Quick Boot — il sauvegarde l'état de l'AVD sous forme de snapshot et le restaure au prochain démarrage. Le temps de démarrage passe de 30 à 60 secondes à 2 à 5 secondes. Pour réinitialiser à un état propre, utilisez Cold Boot Now dans AVD Manager.

Traduction ARM et accélération matérielle

Traduction ARM est une technologie clé d'Android Emulator qui convertit les instructions ARM en x86_64 à la volée. Sans traduction, l'émulateur ne pourrait exécuter que des images x86_64, limitant les tests. Google utilise libhoudini pour la traduction ARM→x86 et les bibliothèques Intel pour l'accélération HAXM.

bash
# Vérification du statut HAxM sur Windows
sc query "IntelHaxm"

# Installation de HAxM via le SDK Manager
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"

# Démarrage de l'émulateur avec accélération matérielle
emulator -avd Pixel_9_API_35 -accel on -gpu auto

Intel HAxM (Hardware Accelerated Execution Manager) est un pilote de virtualisation pour les processeurs Intel VT-x qui accélère l'émulateur de 3 à 5 fois. Sous Windows avec un processeur AMD, utilisez Windows Hyper-V Platform et WHPX. Sans accélération matérielle, l'émulateur fonctionne lentement, avec des retards d'animation allant jusqu'à 1 à 2 secondes.

Sous macOS avec Apple Silicon (série M), l'accélération matérielle fonctionne nativement via Hypervisor.framework. Selon Google (Android Emulator Release Notes 2025), l'émulateur sur M2 Max atteint 95 % des performances d'un appareil réel pour les opérations de base.

Émulateur vs appareil réel

Le choix entre émulateur et appareil réel dépend de l'étape de développement. Sur l'émulateur, il est pratique de développer et déboguer : démarrage rapide, déploiement instantané, Extended Controls pour la simulation de capteurs. Sur un appareil réel — tests finaux de performance, batterie et fonctionnement avec le matériel.

ScénarioÉmulateurAppareil réel
Développement UIOui (rapide)Non (déploiement lent)
Tests de performanceNon (métriques gonflées)Oui (mesures réelles)
Émulation de capteurs (GPS, NFC)Oui (Extended Controls)Limité
Consommation électriqueNon pris en chargeOui (Battery Historian)
Tests réseau (2G/3G/4G/5G)Oui (simulation de vitesse)Oui (avec carte SIM)
Automatisation CI/CDOui (pas d'appareils physiques)Difficile (ferme d'appareils)

Les performances de l'émulateur avec accélération matérielle sont souvent supérieures à celles d'un appareil réel d'entrée de gamme. Par conséquent, effectuez les tests finaux sur des appareils réels avec le niveau de performance cible.

Vérification de l'émulateur dans le code Kotlin

Détecter l'environnement d'exécution en Kotlin est utile pour désactiver du code incorrect ou ajouter des informations de débogage. Android fournit Build.FINGERPRINT, Build.PRODUCT et Build.HARDWARE à cette fin.

kotlin
object EmulatorDetector {
    val isEmulator: Boolean
        get() = Build.FINGERPRINT.startsWith("generic")
                || Build.FINGERPRINT.contains("emulator")
                || Build.HARDWARE == "ranchu"
                || Build.HARDWARE == "goldfish"
    
    fun logEnvironment() {
        if (isEmulator) {
            Log.d("EmulatorDetector", "Environnement : émulateur")
        }
    }
}

Utiliser un détecteur d'émulateur aide lors du débogage : sur l'émulateur vous pouvez activer des journaux avancés, désactiver les animations ou remplacer les appels API réels par des mocks. Évitez la vérification dans les versions de production sauf si nécessaire pour la logique métier de l'application.

Test d'applications sur l'émulateur

Android Emulator est utilisé pour les tests automatisés sur les serveurs CI. Pour exécuter des tests, vous devez créer un AVD, démarrer l'émulateur et attendre le chargement complet du système. Gradle Managed Devices simplifie ce processus : la configuration de l'AVD est décrite dans build.gradle.kts.

kotlin
// build.gradle.kts — Gradle Managed Devices
android {
    testOptions {
        managedDevices {
            devices {
                register<ManagedVirtualDevice>("pixel9Api35") {
                    device = "Pixel 9"
                    apiLevel = 35
                    systemImageSource = "google"
                }
            }
        }
    }
}

Pour démarrer l'émulateur manuellement, utilisez la ligne de commande : emulator -avd Pixel_9_API_35 -no-window -no-audio -gpu swiftshader_indirect. Le flag -no-window désactive l'interface graphique pour les environnements serveur, et -gpu swiftshader_indirect fournit un rendu logiciel sans GPU hôte.

Émulation réseau et de capteurs

Extended Controls dans Android Emulator fournit des outils puissants pour simuler les conditions réseau : latence, bande passante et type de réseau (GPRS, EDGE, 3G, 4G, 5G). Cela permet de tester le comportement de l'application en connexion lente sans se déplacer physiquement dans une zone à faible couverture.

Simulation de capteurs comprend accéléromètre, gyroscope et magnétomètre via des modèles 3D virtuels d'appareils. Pour le GPS, vous pouvez charger des fichiers GPX avec des itinéraires — l'émulateur simule le mouvement le long des coordonnées, ce qui est essentiel pour tester les applications de navigation. La caméra est émulée via la webcam de l'hôte ou le chargement d'images.

Multi-écran dans Android Emulator prend en charge plusieurs écrans pour les tablettes et les appareils pliables. Extended Controls permet de modifier l'orientation, la taille d'écran et la densité de pixels (DPI) sans redémarrer l'émulateur. Pour tester les appareils pliables, des modes Foldable sont disponibles avec commutation entre état plié et déplié.

Android Emulator pour Wear OS et Android TV

L'émulateur prend en charge non seulement les smartphones, mais aussi Wear OS et Android TV. Pour Wear OS, des configurations AVD rondes et rectangulaires sont disponibles, la simulation de rotation de la lunette et les gestes de balayage, ainsi que les tests d'interaction avec un émulateur téléphonique. Pour Android TV, une interface avec navigation D-pad est utilisée. Les deux plateformes prennent en charge l'accélération matérielle et les tests avec Google Play Services, ce qui est important pour le cycle de développement des applications de montres connectées et TV.

Questions fréquentes

Quelle est la différence entre Android Emulator et iOS Simulator ?

Android Emulator utilise une émulation ARM complète via QEMU avec traduction d'instructions, tandis que iOS Simulator compile le code pour l'architecture de l'hôte. Android Emulator prend en charge GPU, caméra, capteurs, Bluetooth, NFC — iOS Simulator ne prend pas en charge la plupart de ces fonctionnalités.

Comment vérifier dans le code si l'application s'exécute dans un émulateur ?

En Kotlin, vérifiez Build.FINGERPRINT pour "generic" ou "emulator", et Build.HARDWARE pour "ranchu" ou "goldfish". Utilisez Build.PRODUCT comme marqueur supplémentaire — pour l'émulateur, il contient "sdk_google" ou "google_sdk".

Comment accélérer Android Emulator ?

Activez Intel HAxM (Intel VT-x) ou Windows Hyper-V Platform (WHPX) pour les processeurs AMD. Utilisez des images système x86_64 avec accélération matérielle. Allouez au moins 4 Go de RAM à l'émulateur dans AVD Manager. Activez Quick Boot pour le chargement par snapshot.

Peut-on tester NFC dans Android Emulator ?

Oui, Android Emulator prend en charge l'émulation NFC à partir d'Android 10 (API 29). Extended Controls → Phone → NFC permet d'envoyer des messages NDEF. Les modes lecture/écriture de tags, peer-to-peer et HCE sont pris en charge. Pour des tests complets, utilisez un appareil réel avec puce NFC.

Quelles images système sont les meilleures pour AVD ?

Pour le développement quotidien, choisissez x86_64 avec Google APIs — performances maximales et ensemble complet de services. Pour les tests de compatibilité, utilisez des images ARM64. Pour CI — des images sans Google Play Services, elles sont plus petites et démarrent plus rapidement.

Résumé

  • Android Emulator — émulation complète d'appareil Android sur QEMU avec prise en charge de la traduction ARM, GPU, capteurs et NFC
  • AVD Manager — configuration d'appareils virtuels avec sélection d'architecture, niveau d'API, RAM et caractéristiques matérielles
  • Accélération matérielle — HAxM, Hyper-V et WHPX augmentent les performances de l'émulateur de 3 à 5 fois
  • Détection d'environnement — Build.FINGERPRINT, Build.PRODUCT et Build.HARDWARE pour détecter l'exécution dans l'émulateur
  • Extended Controls — simulation GPS, NFC, capteurs, appels entrants et SMS pour les tests de scénarios
  • Automatisation CI — Gradle Managed Devices et images x86_64 pour des tests CI efficaces
  • Quick Boot — mode snapshot réduit le temps de démarrage de l'émulateur à 2-5 secondes

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi