Nell'emulatore Android, puoi utilizzare un proxy per eseguire il debug del traffico dell'applicazione o per accedere a internet da dietro un firewall aziendale. L'emulatore offre due meccanismi proxy distinti per supportare questi diversi casi d'uso: il proxy di sistema Android e il proxy dell'emulatore.
Scegliere il proxy giusto
Prima di configurare un proxy, è importante comprendere i due casi d'uso. Il proxy di sistema Android serve per ispezionare il traffico delle applicazioni, mentre il proxy dell'emulatore serve per aggirare le limitazioni di rete. Questi due proxy si escludono a vicenda; puoi attivarne solo uno alla volta.
| Funzionalità | Proxy di sistema Android | Proxy dell'emulatore |
|---|---|---|
| Caso d'uso principale | Debug delle app | Bypass del firewall |
| Livello operativo | Livello di rete | Livello di applicazione |
| Configurazione | UI delle impostazioni Wi-Fi di sistema Android | UI dei controlli estesi dell'emulatore o flag -http-proxy. |
| Debug HTTPS | Sì: consente a strumenti come Charles Proxy di intercettare il traffico quando viene installato un certificato. |
No: crea un tunnel TCP, impedendo l'ispezione SSL. |
| Gestisce il traffico non HTTP/HTTPS |
No: gestisce principalmente solo il traffico HTTP e HTTPS. |
Sì: inoltra tutto il traffico TCP. |
Caso d'uso 1: debug dell'applicazione con il proxy di sistema Android
Per eseguire il debug del traffico di rete della tua applicazione, ad esempio per ispezionare le richieste HTTPS con uno strumento come Charles Proxy, devi utilizzare il proxy di sistema Android.
Questo proxy opera a livello di applicazione all'interno del sistema operativo Android. Consente agli strumenti di debug di intercettare e ispezionare il traffico, ma ciò richiede l'installazione dei certificati di sicurezza necessari sul dispositivo emulato.

Configurazione
Puoi configurare il proxy di sistema Android in due modi:
- Configurazione manuale: nell'emulatore, vai a Impostazioni > Rete e internet > Wi-Fi, seleziona la tua rete e inserisci manualmente le impostazioni proxy.
- Configurazione automatica: puoi configurare a livello di programmazione il proxy di sistema Android. A questo scopo, crea un test di strumentazione che utilizza un framework di automazione dell'interfaccia utente, come UI Automator, per aprire l'app Impostazioni di Android e applicare la configurazione del proxy senza intervento manuale.
Caso d'uso 2: bypassare i firewall aziendali con il proxy dell'emulatore
In molte reti aziendali, le connessioni dirette a internet vengono rifiutate dagli amministratori di rete e devono invece passare attraverso un proxy specifico. Per accedere a risorse esterne da una rete con limitazioni, devi utilizzare il proxy dell'emulatore.
Questo meccanismo opera a un livello di rete inferiore e instrada tutto il traffico TCP del dispositivo emulato tramite il proxy specificato, rendendolo ideale per l'attraversamento del firewall. Riscrittura trasparente delle richieste HTTP dal dispositivo virtuale prima di inviarle al proxy, consentendo loro di funzionare correttamente.
Configurazione
Quando utilizzi l'emulatore in Android Studio, puoi configurare un proxy
con le impostazioni nel menu di Android Studio (
Settings > Appearance & Behavior > System Settings > HTTP Proxy). Puoi
trovare maggiori dettagli in
Configurare il proxy di Android Studio
nella documentazione di Android Studio.
Quando utilizzi l'emulatore come standalone (al di fuori di Android Studio), puoi configurare il proxy dell'emulatore utilizzando uno dei seguenti metodi:
Flag della riga di comando: avvia l'emulatore dalla riga di comando con il flag
-http-proxy <proxy>. Le informazioni<proxy>possono essere specificate nel formatohttp://<machineName>:<port>ohttp://<username>:<password>@<machineName>:<port>.emulator -http-proxy http://<machineName>:<port>o
emulator @MyAvd -http-proxy http://<username>:<password>@<machineName>:<port>Variabile di ambiente: definisci la variabile di ambiente
http_proxycon le impostazioni proxy. L'emulatore verifica la presenza di questa variabile all'avvio e utilizza automaticamente il relativo valore se è definito.Controlli estesi: apri i Controlli estesi dell'emulatore, vai a Impostazioni > Proxy e inserisci manualmente la configurazione del proxy HTTP. L'emulatore salva queste impostazioni per il dispositivo e le ripristina al riavvio.

Il proxy dell'emulatore opera a livello di rete. Il traffico HTTPS viene incapsulato su TCP, ma questo traffico viene inoltrato senza decriptazione, il che impedisce l'ispezione HTTPS. Il proxy dell'emulatore non supporta il reindirizzamento UDP.
Interazione con Android Studio
Android Studio ha una propria finestra di dialogo di configurazione del proxy per scaricare aggiornamenti e librerie. Quando avvii un emulatore da Android Studio, legge le impostazioni proxy dell'IDE una sola volta per compilare la configurazione del proxy dell'emulatore. Tuttavia, queste impostazioni non influiscono sul proxy di sistema Android.