Me gustaría probar mi aplicación para casos de baja conectividad de red. Excepto en el elevador, ¿cuál es la mejor manera de hacer esto? Intenté envolver mi teléfono en una lámina de aluminio, pero no me ayudó mucho.
Necesito probarlo en un dispositivo real, no en un emulador.
android
connectivity
Maggie
fuente
fuente
Respuestas:
Puedes usar el emulador para esto. Echa un vistazo a esta página: Emulador de Android . Presta atención a los siguientes dos argumentos:
-netdelay <delay>
-netspeed <speed>
Velocidades de referencia en kbps crecientes:
fuente
tc
comando (desde busybox).Esto puede sonar un poco loco, pero un horno de microondas sirve como un escudo de microondas. Por lo tanto, colocar su dispositivo dentro de un horno de microondas (¡NO encienda el horno de microondas mientras su dispositivo esté dentro!) Hará que la intensidad de la señal disminuya significativamente. Definitivamente supera estar parado dentro de un elevador ...
fuente
Ya que opción de desarrollador de iPhones se aplica a la conexión WiFi, puede obtener un iPhone que tenga
iOS 6
y superior (y se haya configuradouse for developments
conxcode
), configúrelo para emular el perfil de red deseado, conecte su dispositivo Android a su punto de accesofuente
Actualización para Android Studio v 1.5 o superior
Como @LouMorda mencionó en un comentario a continuación que la
Emulator
pestaña mencionada en la publicación original se ha eliminado en Android Studio v 1.5.Ahora han colocado esta configuración en Configuración del simulador en
AVD Manager
.Para acceder a esta configuración:
Tools -> Android -> AVD Manager
Edit AVD
botón (ícono de lápiz)Network Settings
puede acceder después de hacer clic en elShow Advanced Settings
botónAquí hay una captura de pantalla de cómo puede aparecer:
Publicación original
para cualquiera que use Android Studio IDE:
Run -> Edit Configurations
Android Application -> [Your App]
Emulator
pestañaNetwork Speed
yNetwork Latency
para simular diferentes velocidades y latencias, etc.Alternativamente, puede ingresar varios argumentos en el
Additional command line options
campo de texto como se menciona en la respuesta de @ inazaruk.La siguiente captura de pantalla describe cómo se
Run Configuration
ve esta pantalla:Sé que es un poco tarde para responder a esta pregunta, ¡pero espero que esto ayude a otros que enfrentan problemas similares!
Editar
Para cualquiera que use eclipse, vea la respuesta de @ Abhi a continuación.
fuente
Sé que es una vieja pregunta pero ...
Algunos teléfonos hoy en día tienen una configuración para utilizar solo 2G. Es perfecto para simular internet lento en un dispositivo real.
fuente
Años pero oye, voy a intervenir con mi método infalible con Genymotion.
Descargue la versión de prueba gratuita de Charles: http://www.charlesproxy.com/download/
Instalarlo
Hacer clic
Proxy -> Throttle Settings
Configure sus velocidades de aceleración HTTP
Cierra esa ventana
Haga clic
Proxy -> Throttling
para habilitar el aceleradorAbre un emulador Genymotion
Abra la configuración wifi
Mantenga presionada la conexión wifi habilitada
Hacer clic
Modify Network
Hacer clic
Show Advanced Options
Establecer
Proxy
enManual
Establecer el
Proxy hostname
a10.0.3.2
Establecer el
Port
a8888
Hacer clic
Save
¡Y ahora su red será estrangulada!
fuente
También puede probar la conectividad lenta a Internet en un dispositivo Android real:
Probado con Samsung Galaxy S8 + Android 8.0.0
Vaya a Configuración -> Conexión -> Red móvil -> y en el modo de red puede elegir usar solo conexiones 2G o 3G
fuente
Tengo una estrategia para resolver su problema. Puede usar la aplicación de proxy para modificar o monitorear su estado neto. Por ejemplo, Charles .
Debería cambiar la configuración predeterminada de Charles como la siguiente imagen que publiqué.
Y finalmente, descubrirá que el estado neto se ha transformado en un ritmo más bajo.
fuente
Manera fácil de probar su aplicación con baja / mala conexión en el emulador:
Vaya a Ejecutar > Ejecutar configuraciones , seleccione su aplicación de Android y vaya a la pestaña Destino . Mira los parámetros de lanzamiento del emulador . Aquí, puede modificar fácilmente la Velocidad de red y la Latencia de red.
fuente
Hay una forma simple de probar bajas velocidades en un dispositivo real que parece haberse pasado por alto. Requiere una Mac y una conexión de red ethernet (u otra con cable).
Active el uso compartido de Wifi en la Mac, convierta su computadora en un punto de acceso Wifi, conecte su dispositivo a esto. Use Netlimiter / Charles Proxy o Network Link Conditioner (que puede que ya haya instalado) para controlar las velocidades.
Para obtener más detalles y comprender qué tipo de velocidades debe probar, consulte: http://opensignal.com/blog/2016/02/05/go-slow-how-why-to-test-apps-on-poor -conexiones /
fuente
En Android Studio, mientras ejecuta un emulador:
1- Presiona el botón de configuración en la parte inferior de la barra lateral del emulador
2- Ir a celular
3- Establecer tipo de red
fuente
Facebook creó algo llamado Control de tráfico aumentado . Un breve resumen de su página de GitHub:
Puede encontrarlo aquí en GitHub: https://github.com/facebook/augmented-traffic-control
También han escrito una publicación de blog al respecto: https://code.facebook.com/posts/1561127100804165/augmented-traffic-control-a-tool-to-simulate-network-conditions/
fuente
Me sorprende que nadie haya mencionado esto. Puede atar a través de Bluetooth y separarlos por más de diez metros (o menos con obstáculos). Tienes una muy mala conexión. Sin microondas, sin ascensor, sin necesidad de software.
fuente
O en un dispositivo real puede ir a Configuración -> Redes móviles -> Tipos de red preferidos y elegir el más lento disponible ... Por supuesto, esto es muy limitado, pero para algunos fines de prueba puede ser suficiente.
fuente
ACTUALIZACIÓN en el estudio Android AVD:
Sin microondas ni ascensores :)
fuente
para usuarios de Mac OS, puede usar el Acondicionador de enlaces de red que se puede descargar de Apple. configúrelo como un AP en mac y cualquier división podría conectarlo.
puede usar las herramientas de código abierto de Facebook ATC http://facebook.github.io/augmented-traffic-control/
fuente
¿Desea probar sin conexión de red o solo una conexión de red lenta? Si es lo primero, puede ir
Settings > Wireless & networks > Airplane mode
y activar el modo Avión. Eso le permitirá probar la falta de disponibilidad de la red en un dispositivo real.fuente
Vaya a Ejecutar> Ejecutar configuraciones, seleccione su aplicación de Android y vaya a la pestaña Destino. Realice los cambios como se muestra en la figura.
fuente
Estuve luchando con este problema durante medio día, finalmente llegué a esta solución:
Las pruebas en un dispositivo real no tienen mucho sentido en general, ya que tienes que pasar por mucho para que funcione. La única forma lógica de lograr pruebas reales es hacer que su teléfono se conecte a una red celular de baja calidad, como EDGE, si su compañía telefónica lo proporciona. Puede intentar hacer esto marcando
*#*#4636#*#*
en la aplicación del teléfonoEl emulador original de Android es demasiado lento para las pruebas y no logra más que la solución anterior.
La mejor manera de hacerlo es utilizando Genymotion . Es un emulador de Android con un rendimiento mucho mejor que los AVD originales y la versión para uso personal es gratuita.
Después de crear su dispositivo virtual en Genymotion, solo siga este tutorial para configurar un proxy para el dispositivo.
Ejecute un servidor proxy en su máquina host que simule malas condiciones de red, como Crapify o Toxiproxy (solo probé el primero) y ya está listo.
Actualizar:
Me acabo de dar cuenta de que también puedes elegir la misma estrategia con dispositivos reales. Me siento como un idiota por no darme cuenta antes. Simplemente inicie un proxy de Crapify en su computadora, configure el proxy de su teléfono en la dirección local de su computadora y listo, tiene Internet deficiente en su teléfono.
fuente
según lo sugerido por @VicVu Charles (o cualquier otra herramienta proxy) es una manera más fácil de hacerlo. Pero me gustaría agregar que también puede hacer esto con su dispositivo, no solo con genymotion u otros emuladores. El proceso será el mismo:
Modifique la configuración wifi de su dispositivo / emulador para usar el proxy manual. Y luego configure el nombre de host y el puerto proxy a. establezca el nombre de host como ip de su sistema (obtenga la ip de su pc / mac usando ifconfig / ifconfig) b. establecer el número de puerto de genymotion (verifique la configuración del proxy en charles)
PD: Su dispositivo / emulador DEBE estar usando el mismo wifi ya que la ip que está usando probablemente sea la privada.
fuente
Abra la terminal en Android Studio y vaya a ../../Android/sdk/tools. El ejecutable 'emulator' debería estar disponible aquí.
Ejecute ./emulator -netdelay "delay_in_millis" -avd "emulator_device_name"
Ej: ./emulator -netdelay 60000 -avd Nexus_5_API_21
Ahora construya su aplicación e instálela en el emulador.
Asegúrese de tener los cambios de código en la aplicación que establece el tiempo de espera para su solicitud y lo maneja.
fuente
Simplemente vaya al monitor del dispositivo Android desde el estudio de Android, luego DDMS -> Control de emulador. Habrá propiedades de Velocidad y Latencia.
fuente
Encontré que netlimiter4 es la mejor solución para limitar los datos a los emuladores. Proporciona un control granular a través de una interfaz gráfica de usuario decente y le brinda retroalimentación gráfica sobre el rendimiento de datos para cada proceso. Actualmente en una versión beta gratuita. captura de pantalla
http://www.netlimiter.com/products/nl4
Hay aplicaciones disponibles en Play Store para acelerar a dispositivos reales, pero requieren root (no puedo proporcionar ningún consejo sobre qué tan bien funcionan, si es que lo hacen, YMMV).
buscar bradybound en Play Store, no puedo publicar más de un enlace ...
fuente
has intentado esto? Configuración - Redes - Más - Redes móviles - Modo de red - Seleccione la red preferida (2G, por ejemplo).
Otro método que utilicé se mencionó anteriormente. Conéctese a través del punto de acceso de iPhone. Espero que esto ayude.
fuente
Estoy usando el proxy mitmproxy HTTPS. https://mitmproxy.org/
Mitmproxy es una aplicación proxy de código abierto que permite interceptar conexiones HTTP y HTTPS entre cualquier cliente HTTP (S). Permite monitorear, capturar y alterar estas conexiones en tiempo real. Solicitud de cambio, respuesta, encabezado, ... Además, puede interceptar diferentes solicitudes.
por ejemplo, response_delay.py :
Luego, la ejecución de este comentario retrasa todas las respuestas del servidor:
Puedes encontrar un tutorial simple aquí .
Puede encontrar otros ejemplos de secuencias de comandos aquí .
fuente
Publicación muy antigua pero agregaré mis dos centavos. Estoy muy contento con este producto de hardware ( https://apposite-tech.com/products/linktropy-mini/ ) que nos ha permitido simular muchas condiciones del mundo real. Durante mucho tiempo tuvimos problemas para solucionar varios problemas que funcionarían en el emulador o con el modo avión.
Tenemos varios perfiles diferentes configurados, desde conectividad cero hasta varias etapas de conectividad marginal, con diferentes grados de latencia, pérdida de paquetes y errores de bits. Lo mejor de todo es que podemos cambiarlos sobre la marcha sin tener que reiniciar la aplicación en un emulador. El precio ha valido la pena por completo para nuestra tienda, y es muy fácil de usar.
fuente
Necesitaba reducir el nivel bajo de Internet en el dispositivo nativo de AndroidTV y, según lo que he leído, la solución más adecuada era limitar el acceso a Internet directamente en mi enrutador.
Vaya a la configuración del enrutador (localmente es algo así como 192.168.0.1) -> configure el servidor DHCP (si no se está ejecutando) -> elija la dirección IP de un dispositivo y configure la restricción;
fuente