2012-07-15 20 views
10

Ho bisogno di testare la mia applicazione in condizioni in cui anche la connettività Internet 2G non è nella sua piena copertura (cioè 2 barre invece di 4, 2G).Simulare una connessione Internet lenta su un dispositivo REAL?

Preferisco condurre questi test tramite WiFi.

C'è un modo (programmaticamente o meno) di dire al sistema operativo Android sul dispositivo reale per rallentare o limitare la connessione Internet a 56 Kbit/s?

Nota: so come fare this su emulator. Sto cercando un modo per farlo su un dispositivo reale .

È possibile?

+1

Controllare le impostazioni del router per un limitatore di banda; a volte ce n'è uno disponibile. – Ryan

+0

@minitech Grazie. Qualche idea su dove il limitatore di banda (per ** WiFi **) può essere trovato su un router DD-WRT? – scatmoi

risposta

4

In uno dei tuoi commenti hai detto che hai un router DD-WRT, che è davvero una piccola scatola Linux. Quindi potresti essere in grado di ottenere un comando con il comando tc:

tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 10mbit 
tc class add dev $DEV parent 1: classid 1:1 cbq rate 512kbit allot 1500 prio 5 bounded isolated 
tc filter add dev $DEV parent 1: protocol ip prio 16 u32 match ip dst 195.96.96.97 flowid 1:1 
0

In genere dipende da ciò che si ha sul lato monte. Se stai trasmettendo una sorta di carico di prova, scrivi un driver sul lato a monte che, in effetti, rallenta se stesso - sebbene sleep() sia una scelta sbagliata. Quello che scriverete è essenzialmente un programma in tempo reale abbastanza duro se sperate di ottenere qualcosa che assomigli ad un vero carico di lavoro.

(Quando dico "un driver" btw, non intendo necessariamente un driver di periferica, solo una sorta di programma del driver.)

Ma siete veramente cercando di simulare una connessione lenta , o una connessione degradata e rumorosa con una bassa velocità di trasmissione dati effettiva?

+1

Qualsiasi codice ** all'interno dell'applicazione da testare ** che tenta di simulare la lentezza di tipo di sconfitte allo scopo (mai sentito parlare del principio di Heisenberg?). Per quanto riguarda la tua domanda, idealmente mi piacerebbe essere in grado di simulare sia una 'connessione lenta' che una' connessione degradata e rumorosa' che ha una bassa velocità di trasmissione dati effettiva. Ma per ora sono disposto a scendere a compromessi solo per la connessione lenta. Conosce un'applicazione che carica la connessione Internet in modo simile a ciò che la CPU Burn-in per Windows fa per la CPU? – scatmoi