Je voudrais tester mon application pour les cas de faible connectivité réseau. Sauf debout dans l'ascenseur, quelle est la meilleure façon de procéder? J'ai essayé d'envelopper mon téléphone dans une feuille d'aluminium, mais cela n'a pas beaucoup aidé.
Je dois le tester sur un vrai appareil, pas dans un émulateur.
android
connectivity
Maggie
la source
la source
Réponses:
Vous pouvez utiliser l'émulateur pour cela. Jetez un œil à cette page: Android Emulator . Faites attention aux deux arguments suivants:
-netdelay <delay>
-netspeed <speed>
Vitesses de référence en kbps croissants:
la source
tc
commande (depuis busybox).Cela peut sembler un peu fou, mais un four à micro-ondes sert de bouclier à micro-ondes. Par conséquent, si vous placez votre appareil dans un four à micro-ondes (N'ALLUMEZ PAS le four à micro-ondes lorsque votre appareil est à l'intérieur!), La puissance du signal diminuera considérablement. Ça bat vraiment debout dans un ascenseur ...
la source
Étant donné que l' option développeur iPhones s'applique sur le partage de connexion Wi-Fi, vous pouvez obtenir un iPhone qui a
iOS 6
et au-dessus (et a été définiuse for developments
avec lexcode
), le configurer pour émuler le profil réseau souhaité, connecter votre appareil Android à son hotspotla source
Mise à jour pour Android Studio v 1.5 ou supérieur
Comme @LouMorda l'a mentionné dans un commentaire ci-dessous que le
Emulator
onglet mentionné dans la publication d'origine a été supprimé dans Android Studio v 1.5.Maintenant, ils ont placé ces paramètres dans Paramètres du simulateur dans
AVD Manager
.Pour accéder à ces paramètres:
Tools -> Android -> AVD Manager
Edit AVD
bouton (icône crayon)Network Settings
peut y accéder après avoir cliqué sur leShow Advanced Settings
boutonVoici une capture d'écran de son apparence:
Message d'origine
Pour toute personne utilisant Android Studio IDE:
Run -> Edit Configurations
Android Application -> [Your App]
Emulator
ongletNetwork Speed
etNetwork Latency
simuler différentes vitesses et latences, etc.Alternativement, vous pouvez entrer divers arguments dans le
Additional command line options
champ de texte comme mentionné dans la réponse de @ inazaruk.La capture d'écran ci-dessous décrit à quoi
Run Configuration
ressemble cet écran:Je sais qu'il est un peu tard pour répondre à cette question, mais j'espère que cela aide d'autres personnes confrontées à des problèmes similaires!
Modifier
Pour toute personne utilisant eclipse, voir la réponse de @ Abhi ci-dessous.
la source
Je sais que c'est une vieille question mais ...
De nos jours, certains téléphones ont un réglage pour utiliser uniquement la 2G. Il est parfait pour simuler un Internet lent sur un vrai appareil.
la source
Ans mais bon, je vais jouer avec ma méthode infaillible avec Genymotion.
Téléchargez la version d'essai gratuite de Charles: http://www.charlesproxy.com/download/
Installez-le
Cliquez sur
Proxy -> Throttle Settings
Configurez vos vitesses limitées HTTP
Fermez cette fenêtre
Cliquez
Proxy -> Throttling
pour activer l'accélérateurOuvrez un émulateur Genymotion
Ouvrez les paramètres wifi
Appuyez longuement sur la connexion wifi activée
Cliquez sur
Modify Network
Cliquez sur
Show Advanced Options
Réglez
Proxy
surManual
Réglez le
Proxy hostname
sur10.0.3.2
Réglez le
Port
sur8888
Cliquez sur
Save
Et maintenant, votre réseau sera étranglé!
la source
Vous pouvez également tester la connectivité Internet lente sur un véritable appareil Android:
Testé avec Samsung Galaxy S8 + Android 8.0.0
Allez dans Paramètres -> Connexion -> Réseau mobile -> et sous mode réseau, vous pouvez choisir d'utiliser uniquement des connexions 2G ou 3G
la source
J'ai une stratégie pour régler votre problème. Vous pouvez utiliser l'application de proxy pour modifier ou surveiller votre statut net. par exemple, Charles .
Vous devez changer la configuration par défaut du Charles comme l'image suivante que j'ai postée.
Et enfin, vous découvrirez que le statut net a été façonné à un rythme plus lent.
la source
Un moyen facile de tester votre application avec une connexion faible / mauvaise dans l'émulateur:
Allez Exécuter > Exécuter les configurations , sélectionnez votre application Android , puis allez dans l' onglet Cible . Regardez les paramètres de lancement de l'émulateur . Ici, vous pouvez facilement modifier la vitesse du réseau et la latence du réseau.
la source
Il existe un moyen simple de tester les faibles vitesses sur un appareil réel qui semble avoir été ignoré. Il nécessite un Mac et une connexion réseau Ethernet (ou autre filaire).
Activez le partage Wifi sur le Mac, transformez votre ordinateur en point d'accès Wifi, connectez votre appareil à celui-ci. Utilisez Netlimiter / Charles Proxy ou Network Link Conditioner (que vous avez peut-être déjà installé) pour contrôler les vitesses.
Pour plus de détails et pour comprendre quel type de vitesses vous devez tester lors du check out: http://opensignal.com/blog/2016/02/05/go-slow-how-why-to-test-apps-on-poor -Connexions/
la source
Dans Android Studio, lors de l'exécution d'un émulateur:
1- Appuyez sur le bouton des paramètres en bas de la barre latérale de l'émulateur
2- Aller au cellulaire
3- Définir le type de réseau
la source
Facebook a construit quelque chose appelé Contrôle de trafic augmenté . Un bref résumé de leur page GitHub:
Vous pouvez le trouver ici sur GitHub: https://github.com/facebook/augmented-traffic-control
Ils ont également écrit un blog à ce sujet: https://code.facebook.com/posts/1561127100804165/augmented-traffic-control-a-tool-to-simulate-network-conditions/
la source
Je suis surpris que personne n'ait mentionné cela. Vous pouvez attacher via Bluetooth et les séparer de dix + mètres (ou moins avec des obstacles). Vous avez une très mauvaise connexion. Pas de micro-ondes, pas d'ascenseur, pas de logiciel nécessaire.
la source
Ou sur un appareil réel, vous pouvez aller dans Paramètres -> Réseaux mobiles -> Types de réseaux préférés et choisir le plus lent disponible ... Bien sûr, cela est très limité, mais pour certains tests, cela pourrait être suffisant.
la source
MISE À JOUR sur le studio Android AVD:
Pas de micro-ondes ni d'ascenseurs :)
la source
Pour les utilisateurs de Mac OS et vous pouvez utiliser Network Link Conditioner qui peut être téléchargé à partir d'Apple. définissez-le comme un AP sur mac et tous les périphériques pourraient le connecter.
vous pouvez soit utiliser les outils open source facebook ATC http://facebook.github.io/augmented-traffic-control/
la source
Voulez-vous tester l'absence de connexion réseau ou simplement une connexion réseau lente? S'il s'agit du premier, vous pouvez accéder au
Settings > Wireless & networks > Airplane mode
mode Avion et l'activer. Cela vous permettra de tester l'indisponibilité du réseau sur un appareil réel.la source
Allez Exécuter> Exécuter les configurations, sélectionnez votre application Android, puis allez dans l'onglet Cible. Effectuez les modifications comme indiqué sur la figure.
la source
Je me battais avec ce problème pendant une demi-journée, enfin je suis arrivé à cette solution:
Les tests sur un appareil réel n'ont pas beaucoup de sens dans l'ensemble, car vous devez passer par beaucoup pour le faire fonctionner. La seule façon logique de réaliser de véritables tests est de connecter votre téléphone à un réseau cellulaire de faible qualité, comme EDGE, si votre compagnie de téléphone le fournit. Vous pouvez essayer de le faire en composant
*#*#4636#*#*
dans l'application téléphoneL'émulateur Android d'origine est beaucoup trop lent pour les tests et n'atteint pas plus que la solution ci-dessus.
La meilleure façon de le faire est d'utiliser Genymotion . C'est un émulateur Android avec de bien meilleures performances que les AVD d'origine et la version pour usage personnel est gratuite.
Après avoir créé votre appareil virtuel dans Genymotion, suivez simplement ce tutoriel pour définir un proxy pour l'appareil.
Exécutez un serveur proxy sur votre machine hôte qui simule les mauvaises conditions de réseau, comme Crapify ou Toxiproxy (je n'ai testé que le premier) et vous êtes prêt à partir.
Mettre à jour:
Je viens de réaliser que vous pouvez également choisir la même stratégie avec des appareils réels. Je me sens comme un idiot de ne pas l'avoir réalisé plus tôt. Il vous suffit de démarrer un proxy Crapify sur votre ordinateur, de configurer le proxy de votre téléphone sur l'adresse locale de votre ordinateur et le tour est joué, vous avez un Internet pourri sur votre téléphone.
la source
comme suggéré par @VicVu Charles (ou tout autre outil proxy) est un moyen plus simple de procéder. Mais je voudrais ajouter que vous pouvez également le faire avec votre appareil, pas seulement avec Genymotion ou d'autres émulateurs. Le processus sera le même:
Modifiez le paramètre wifi de votre appareil / émulateur pour utiliser un proxy manuel. Et puis définissez le nom d'hôte et le port du proxy a. définissez le nom d'hôte comme IP de votre système (obtenez l'IP de votre PC / Mac en utilisant ifconfig / ifconfig) b. définir le numéro de port de genymotion (vérifier les paramètres proxy dans charles)
PS: Votre appareil / émulateur DOIT utiliser le même wifi car l'IP que vous utilisez sera très probablement l'IP privée.
la source
Ouvrez le terminal dans Android Studio et accédez à ../../Android/sdk/tools. l'exécutable «émulateur» devrait être disponible ici.
Exécutez ./emulator -netdelay "delay_in_millis" -avd "emulator_device_name"
Ex: ./emulator -netdelay 60000 -avd Nexus_5_API_21
Maintenant, créez votre application et installez-la dans l'émulateur.
Assurez-vous que vos modifications de code dans l'application définissent le délai d'expiration de votre demande et le gèrent.
la source
Accédez simplement au moniteur de l'appareil Android à partir du studio Android, puis DDMS -> Contrôle de l'émulateur. Il y aura des propriétés de vitesse et de latence.
la source
J'ai trouvé que netlimiter4 était la meilleure solution pour limiter les données aux émulateurs. Il fournit un contrôle granulaire via une interface graphique décente et vous donne un retour graphique sur le débit de données de chaque processus. Actuellement en version bêta gratuite. capture d'écran
http://www.netlimiter.com/products/nl4
Il existe des applications disponibles sur le Play Store pour limiter les appareils réels, mais elles nécessitent un root (je ne peux pas fournir de conseils sur leur fonctionnement, le cas échéant - YMMV.)
recherchez bradybound sur le Play Store, je ne peux pas poster plus d'un lien ..
la source
avez-vous essayé cela? Paramètres - Réseaux - Plus - Réseaux mobiles - Mode réseau - Sélectionnez le réseau préféré (2G par exemple).
Une autre méthode que j'ai utilisée a été mentionnée ci-dessus. Connectez-vous via le hot spot de l'iPhone. J'espère que cela t'aides.
la source
J'utilise mitmproxy proxy HTTPS. https://mitmproxy.org/
Mitmproxy est une application proxy open source qui permet d'intercepter les connexions HTTP et HTTPS entre n'importe quel client HTTP (S). Il permet de surveiller, capturer et modifier ces connexions en temps réel. Modifier la demande, la réponse, l'en-tête, ... De plus, vous pouvez intercepter différentes demandes.
par exemple response_delay.py :
Ensuite, l'exécution de ce commentaire retarde toutes les réponses du serveur:
Vous pouvez trouver un tutoriel simple ici .
Vous pouvez trouver d'autres exemples de script ici .
la source
Très vieux poste mais j'ajouterai mes deux cents. J'ai été TRÈS satisfait de ce produit matériel ( https://apposite-tech.com/products/linktropy-mini/ ) qui nous a permis de simuler un grand nombre de conditions réelles. Pendant longtemps, nous avons eu du mal à dépanner diverses choses qui fonctionneraient en émulateur ou en mode avion.
Nous avons plusieurs profils différents, de la connectivité zéro aux différentes étapes de la connectivité marginale, avec différents degrés de latence, de perte de paquets et d'erreurs sur les bits. La grande chose à ce sujet est que nous pouvons les modifier à la volée sans avoir à relancer l'application dans un émulateur. Le prix en valait la peine pour notre boutique, et il est très simple à utiliser.
la source
J'avais besoin d'étrangler Internet bas sur un appareil natif AndroidTV et sur la base de ce que j'ai lu, la solution la plus appropriée était de limiter l'accès à Internet directement dans mon routeur.
Accédez aux paramètres du routeur (localement, c'est comme 192.168.0.1) -> configurez le serveur DHCP (s'il ne fonctionne pas) -> choisissez l'adresse IP d'un périphérique et définissez la restriction;
la source