Chapitre 2.3 — Android Studio & l’émulateur
Où on en est : l’app tourne sur votre téléphone via Expo Go. On installe maintenant la partie lourde — Android Studio — qui servira trois causes : l’émulateur, les builds locaux illimités (Partie 12), et
adb.
⏱️ TL;DR — Android Studio ≈ 10 Go, mais on ne l’utilisera presque jamais comme IDE : on veut son SDK Android, son émulateur (AVD) et adb. Installation guidée, création d’un appareil virtuel Pixel, variables d’environnement
ANDROID_HOME, et les commandes adb de survie. Avec 64 Go de RAM, l’émulateur tournera comme une horloge.
🎯 Objectifs
- Installer Android Studio + SDK sans se perdre dans les options.
- Créer et lancer un AVD (Android Virtual Device) raisonnable.
- Configurer
ANDROID_HOMEet le PATH pouradb. - Connaître les commandes adb utiles dès maintenant (logs, installation d’APK).
Installer Android Studio
- Téléchargez sur developer.android.com/studio et lancez l’installeur (gardez les composants par défaut : Android SDK, Android Virtual Device).
- Au premier lancement, l’assistant télécharge le SDK. Type d’installation : Standard.
- Vérifiez dans More Actions → SDK Manager : la dernière Android SDK Platform stable et, dans l’onglet SDK Tools : Android SDK Build-Tools, Android Emulator, Android SDK Platform-Tools (= adb).
C’est tout ce qu’on demande à Android Studio pour l’instant. Vous ne coderez jamais dedans — VS Code reste votre maison (chapitre suivant).
💡 Pour un dev Next.js — Vision d’ensemble : Android Studio est à la fois le « Xcode d’Android » et votre distributeur de SDK. Le SDK Android = compilateurs + APIs de chaque version d’Android ; gradle (le « npm + webpack » du monde Java/Kotlin) le consomme pour produire les APK. Nous, on pilotera tout ça via
npx expo run:androideteas— mais c’est ce moteur-là qui tourne dessous.
Les variables d’environnement
Pour que la CLI Expo et adb fonctionnent hors d’Android Studio :
# PowerShell — à exécuter UNE fois (adapte le chemin si SDK ailleurs)
[Environment]::SetEnvironmentVariable('ANDROID_HOME', "$env:LOCALAPPDATA\Android\Sdk", 'User')
$path = [Environment]::GetEnvironmentVariable('Path', 'User')
[Environment]::SetEnvironmentVariable('Path', "$path;$env:LOCALAPPDATA\Android\Sdk\platform-tools", 'User')
# Puis FERMER et rouvrir le terminal
adb --version # doit répondreANDROID_HOME indique aux outils (Expo, gradle) où vit le SDK ; platform-tools dans le PATH
donne adb partout.
Créer l’émulateur (AVD)
Dans Android Studio : More Actions → Virtual Device Manager → Create Virtual Device :
- Matériel : Pixel 8 (bon compromis taille/définition).
- Image système : la dernière version stable d’Android, en x86_64 — et de préférence une image avec Google Play (badge Play Store) : elle permet d’installer Expo Go dedans.
- Nom explicite :
Pixel8-API35(le niveau d’API varie selon l’image choisie).
Lancez-le (▶). Premier démarrage lent, les suivants rapides (snapshot). Avec vos 64 Go de RAM, vous pouvez même en faire tourner deux (téléphone + tablette) sans souffrir.
Ensuite, dans un projet : npx expo start puis touche a — Expo installe Expo Go dans
l’émulateur et y lance l’app. Le workflow est identique au téléphone.
⚠️ Piège — Si l’émulateur rame atrocement ou refuse de démarrer, c’est presque toujours l’accélération matérielle : sur Windows moderne, l’émulateur s’appuie sur Hyper-V / Windows Hypervisor Platform (Fonctionnalités Windows → cocher « Plateforme de l’hyperviseur Windows »). Les vieux tutos parlent de HAXM : abandonné par Intel, ignorez.
adb — le couteau suisse
adb (Android Debug Bridge) parle à tout appareil Android connecté — émulateur OU téléphone en
USB. Les commandes qui reviendront tout au long du cours :
adb devices # liste les appareils (téléphone USB + émulateurs)
adb install app-release.apk # installe un APK (Partie 12 : sideload de Drill !)
adb logcat *:S ReactNative:V ReactNativeJS:V # les logs RN uniquement
adb reverse tcp:8081 tcp:8081 # fait passer Metro par le câble USB
adb shell pm clear com.alex.drill # remet l'app à zéro (données effacées)adb reverse mérite une étoile : téléphone branché en USB, il mappe le port 8081 du téléphone
vers votre PC — Metro fonctionne sans WiFi commun, la solution la plus fiable du chapitre 2.2.
Téléphone vs émulateur : l’arbitrage final
| Situation | Outil |
|---|---|
| Dev quotidien, ressenti réel | Téléphone (Expo Go / dev build) |
| Tester une autre taille d’écran / version Android | Émulateur |
| Captures d’écran Play Store | Émulateur (propres, dimensions exactes) |
| Notifications, haptics, caméra | Téléphone (le vrai comportement) |
| Pas de WiFi exploitable | Téléphone + USB (adb reverse) ou émulateur |
| E2E automatisés (Maestro, Partie 14) | Émulateur (reproductible, CI) |
✏️ Exercices
1. Créez l’AVD, lancez-le, puis lancez hello-rn dessus avec la touche a. Vérifiez avec
adb devices que l’émulateur est bien listé.
✅ Solution
adb devices doit montrer une ligne du type emulator-5554 device. Si unauthorized sur un
téléphone USB : accepter la boîte de dialogue « Autoriser le débogage » sur l’écran du téléphone.
Si a échoue : l’AVD n’est pas démarré, ou ANDROID_HOME manque (rouvrir le terminal après
l’avoir défini).
2. Branchez votre téléphone en USB, activez le débogage USB, et faites tourner Metro via le
câble avec adb reverse. Coupez le WiFi du téléphone pour prouver que ça passe par l’USB.
✅ Solution
adb devices (le téléphone apparaît) → adb reverse tcp:8081 tcp:8081 → dans Expo Go, ouvrir
l’app via exp://localhost:8081 (ou relancer depuis le terminal). WiFi coupé, Fast Refresh
continue : le trafic passe par le câble. C’est la config anti-problèmes par excellence.
3. Affichez uniquement les logs React Native de l’appareil pendant que vous utilisez l’app,
et provoquez un console.log('score: 42') pour le voir passer.
✅ Solution
adb logcat *:S ReactNative:V ReactNativeJS:V filtre tout sauf RN. Le console.log apparaît
côté ReactNativeJS. (En pratique quotidienne, les logs s’affichent déjà dans le terminal
Metro — logcat sert quand l’app tourne SANS Metro : builds de prod, crashs au démarrage.)
🧠 Quiz
1. Quels sont les trois composants d’Android Studio réellement utilisés dans ce cours ?
Réponse
Le SDK Android (+ Build-Tools, consommés par gradle lors des builds locaux), l’émulateur (AVD), et adb (platform-tools). L’IDE lui-même ne servira presque jamais.
2. À quoi sert ANDROID_HOME ?
Réponse
À indiquer aux outils externes (CLI Expo, gradle, EAS local) l’emplacement du SDK Android.
Sans elle, expo run:android et les builds locaux échouent en « SDK location not found ».
3. Pourquoi choisir une image AVD avec Google Play ?
Réponse
Elle inclut le Play Store → on peut installer Expo Go dans l’émulateur (et plus tard tester des services Google). Les images « pures » AOSP ne le permettent pas.
4. Que fait adb reverse tcp:8081 tcp:8081 et quel problème résout-il ?
Réponse
Il redirige le port 8081 du téléphone vers le PC via le câble USB : Expo Go atteint Metro sans réseau WiFi commun. C’est la solution la plus fiable aux problèmes de connexion (isolation WiFi, pare-feu).
5. Citez la commande pour installer un APK et celle pour lire les logs RN.
Réponse
adb install chemin\vers\app.apk · adb logcat *:S ReactNative:V ReactNativeJS:V.
👉 Chapitre suivant : 2.4 — VS Code pour React Native — le poste de pilotage.