web-dev-qa-db-fra.com

Simuler un réseau lent sur Android simulator

Je crée une application qui utilise AsyncTask pour afficher une barre de progression lors de l'exécution d'une opération réseau (Google translate). Cependant, le problème est que je ne peux pas dire si cela fonctionne car le réseau est trop rapide et il termine l'exécution de l'opération dès que je le démarre. Existe-t-il un moyen de simuler un réseau lent afin que je puisse dire si la barre de progression va réellement s'exécuter (visible) quand elle attend la fin de l'opération? Je suis tombé sur des options réseau lors de la création d'un émulateur Android. Cependant, il y a tellement d'abréviations que j'ai toujours du mal à comprendre ce qui indique une connexion réseau lente et je ne sais toujours pas si c'est ainsi Je devrais définir une connexion réseau lente.

Merci d'avance!

17
Charles Li

L'émulateur vous permet de simuler diverses conditions de réseau. Vous pouvez approximer la vitesse du réseau pour différents protocoles réseau, ou vous pouvez spécifier Complet, qui transfère les données aussi rapidement que votre ordinateur le permet.

La spécification d'un protocole réseau est toujours plus lente que Complète. Vous pouvez également spécifier l'état du réseau voix et données, comme l'itinérance. Les valeurs par défaut sont définies dans l'AVD.

Sélectionnez un type de réseau:

  • GSM - Système mondial de communications mobiles
  • HSCSD - Données à commutation de circuits à haute vitesse
  • GPRS - Service de radio par paquets générique
  • Edge - Débits de données améliorés pour GSM Evolution
  • UMTS - Système universel de télécommunications mobiles
  • HSPDA - Accès haut débit par paquets de liaison descendante
  • Complet (par défaut)

GPRS (114Kbps) <EGDE (368Kbps) <3G (3.1Mbps) <HSDPA (14Mbps) <HSPA + (168Mbps) <4G/LTE (299.6Mbps)

Sélectionnez un état vocal, un état de données ou les deux:

  • Domicile (par défaut)
  • Roaming
  • Recherche
  • Refusé (appels d'urgence uniquement)
  • Non enregistré (désactivé)

Pour plus d'informations, voir https://developer.Android.com/studio/run/emulator.html#extended

32

Dans OS X, vous pouvez utiliser Network Link Conditioner, très utile. Voici un lien comment l'utiliser et comment l'installer. Cela affectera tous les programmes utilisant le réseau.

http://nshipster.com/network-link-conditioner/enter image description here

Vous pouvez également envoyer tout le trafic au proxy et utiliser la limitation. J'ai utilisé Charles (Commercial, essai gratuit de 30 jours) https://www.charlesproxy.com/

3
Anessence

Avec telnet sur la ligne de commande, vous pouvez vous connecter à votre émulateur et modifier la vitesse du réseau de l'appareil.

telnet localhost <<port of device>>
network speed <<network speed, ex: Edge, full>>

Vous pouvez obtenir le port de l'appareil en haut de la fenêtre de l'émulateur.

Vous pouvez utiliser n'importe quelle vitesse dans le documents Android ici . Je recommande Edge pour les vitesses lentes

Si vous êtes sous Windows, vous devrez configurer telnet, vous pouvez trouver des instructions pour le faire dans this SO post .

2
Dr. Nitpick