Sur l'émulateur Android, vous pouvez utiliser un proxy pour déboguer le trafic des applications ou pour accéder à Internet depuis un pare-feu d'entreprise. L'émulateur propose deux mécanismes de proxy distincts pour prendre en charge ces différents cas d'utilisation : le proxy système Android et le proxy de l'émulateur.
Choisir le bon proxy
Avant de configurer un proxy, il est important de comprendre les deux cas d'utilisation. Le proxy système Android permet d'inspecter le trafic des applications, tandis que le proxy de l'émulateur permet de contourner les restrictions réseau. Ces deux proxys s'excluent mutuellement. Vous ne pouvez en activer qu'un seul à la fois.
| Fonctionnalité | Proxy du système Android | Proxy de l'émulateur |
|---|---|---|
| Cas d'utilisation principal | Débogage d'applications | Contournement du pare-feu |
| Couche d'exploitation | Couche réseau | Couche application |
| Configuration | Interface utilisateur des paramètres Wi-Fi du système Android | UI des commandes avancées de l'émulateur ou option -http-proxy. |
| Débogage HTTPS | Oui : permet à des outils tels que Charles Proxy d'intercepter le trafic lorsqu'un certificat est installé. |
Non : crée un tunnel TCP, ce qui empêche l'inspection SSL de . |
| Gère le trafic non HTTP/HTTPS |
Non : gère principalement le trafic HTTP et HTTPS . |
Oui : transfère tout le trafic TCP. |
Cas d'utilisation 1 : Débogage d'application avec le proxy système Android
Pour déboguer le trafic réseau de votre application, par exemple en inspectant les requêtes HTTPS avec un outil tel que Charles Proxy, vous devez utiliser le proxy système Android.
Ce proxy fonctionne au niveau de la couche application dans l'OS Android. Il permet aux outils de débogage d'intercepter et d'inspecter le trafic, mais cela nécessite l'installation des certificats de sécurité nécessaires sur l'appareil émulé.

Configuration
Vous pouvez configurer le proxy système Android de deux manières :
- Configuration manuelle : dans l'émulateur, accédez à Paramètres > Réseau et Internet > Wi-Fi, sélectionnez votre réseau, puis saisissez manuellement les paramètres du proxy.
- Configuration automatique : vous pouvez configurer le proxy système Android de manière programmatique. Pour ce faire, créez un test d'instrumentation qui utilise un framework d'automatisation de l'UI, tel que UI Automator, pour ouvrir l'application Paramètres Android et appliquer la configuration du proxy sans intervention manuelle.
Cas d'utilisation 2 : Contourner les pare-feu d'entreprise avec le proxy de l'émulateur
Sur de nombreux réseaux d'entreprise, les connexions directes à Internet sont refusées par les administrateurs réseau et doivent passer par un proxy spécifique. Pour accéder à des ressources externes depuis un réseau aussi limité, vous devez utiliser le proxy de l'émulateur.
Ce mécanisme fonctionne à un niveau réseau inférieur et achemine tout le trafic TCP de l'appareil émulé via le proxy spécifié, ce qui le rend idéal pour le contournement du pare-feu. Il réécrit de manière transparente les requêtes HTTP de l'appareil virtuel avant de les envoyer au proxy, ce qui leur permet de fonctionner correctement.
Configuration
Lorsque vous utilisez l'émulateur dans Android Studio, vous pouvez configurer un proxy avec les paramètres du menu Android Studio (
Settings > Appearance & Behavior > System Settings > HTTP Proxy). Pour en savoir plus, consultez Configurer le proxy Android Studio dans la documentation Android Studio.
Lorsque vous utilisez l'émulateur de manière autonome (en dehors d'Android Studio), vous pouvez configurer le proxy de l'émulateur à l'aide de l'une des méthodes suivantes :
Indicateur de ligne de commande : lancez l'émulateur à partir de la ligne de commande avec l'indicateur
-http-proxy <proxy>. Les informations<proxy>peuvent être spécifiées au formathttp://<machineName>:<port>ouhttp://<username>:<password>@<machineName>:<port>.emulator -http-proxy http://<machineName>:<port>ou
emulator @MyAvd -http-proxy http://<username>:<password>@<machineName>:<port>Variable d'environnement : définissez la variable d'environnement
http_proxyavec vos paramètres de proxy. L'émulateur vérifie cette variable au démarrage et utilise automatiquement sa valeur si elle est définie.Commandes étendues : ouvrez les commandes étendues de l'émulateur, accédez à Paramètres > Proxy, puis saisissez manuellement la configuration de votre proxy HTTP. L'émulateur enregistre ces paramètres pour l'appareil et les restaure au redémarrage.

Le proxy de l'émulateur fonctionne au niveau de la couche réseau. Il tunnelise le trafic HTTPS sur TCP, mais ce trafic est transféré sans déchiffrement, ce qui empêche l'inspection HTTPS. Le proxy de l'émulateur n'est pas compatible avec la redirection UDP.
Interaction avec Android Studio
Android Studio dispose de sa propre boîte de dialogue de configuration du proxy pour télécharger les mises à jour et les bibliothèques. Lorsque vous lancez un émulateur à partir d'Android Studio, il lit les paramètres de proxy de l'IDE une seule fois pour remplir la configuration Proxy de l'émulateur. Toutefois, ces paramètres n'ont pas d'incidence sur le proxy système Android.