2011-08-29 11 views
8

La mia macchina di sviluppo è connessa simultaneamente a due reti diverse. Uno è attraverso ethernet (eth0), e l'altro è WiFi (en1). In questa situazione, l'emulatore Android sembra voler sempre raggiungere la rete su eth0. Quando si avvia l'emulatore dalla riga di comando, esiste un'opzione in cui posso dire di utilizzare un'interfaccia di rete specifica sulla macchina di sviluppo (en1 nel mio caso)?Come specificare quale interfaccia di rete deve essere utilizzata dall'emulatore Android sul mio computer di sviluppo?

Sembra che questo dovrebbe essere possibile tramite args è possibile passare alla bandiera -qemu. Tuttavia, la versione corrente dell'emulatore non verrà avviata quando si utilizza questo flag.

risposta

5

Se si sta comunicando solo con un indirizzo o sottorete specifico, è possibile impostare un percorso appropriato sulla macchina host utilizzando il comando route add. La sintassi è leggermente diversa per Windows e Linux:

Linux

route add -net target-IP maschera di rete 255.255.255.0 metrica 1 GW EN1

di Windows

route add target-ip mask 255.255.255.0 en1-gw-address metrico 1 -p

È possibile regolare il valore della maschera di rete (255.255.255.0) in base alle proprie esigenze.

+0

Sto cercando un modo per indirizzare tutte le richieste HTTP, a qualsiasi indirizzo possibile, dall'emulatore Android a en1. – elevine

+0

Quindi è possibile utilizzare un proxy Web gratuito. Configurare l'emulatore per utilizzare il proxy con l'opzione _http-proxy_ e configurare una route tramite en1 per l'ip del proxy. – mattlaabs

+0

Questa è una buona idea. Puoi suggerire un proxy facile da configurare? – elevine

1

IMHO questo non è possibile in quanto l'emulatore utilizza un router virtuale piuttosto che un'interfaccia di rete fisica del vostro PC di sviluppo

Date un'occhiata più da vicino a questo link - ci sono alcune informazioni dettagliate su quel
http://developer.android.com/guide/developing/devices/emulator.html#emulatornetworking

+1

In che modo il router virtuale decide quale interfaccia di rete utilizzare sul computer di sviluppo? Per dirla in altro modo, quando si avvia l'emulatore è possibile specificare un proxy con l'opzione -http-proxy. Non vedo un'opzione simile per scegliere un'interfaccia di rete, ma mi aspetto che esista. – elevine

+0

Non ne sono abbastanza sicuro, ma immagino che questo abbia qualcosa a che fare con il modo in cui il routing è definito sul PC. – DonGru

+0

Sembra che questo dovrebbe essere possibile attraverso args che puoi passare al flag -qemu. Tuttavia, la versione corrente dell'emulatore non verrà avviata quando si utilizza questo flag. – elevine

Problemi correlati