Gostaria de testar meu aplicativo para casos de baixa conectividade de rede. Exceto em pé no elevador, qual é a melhor maneira de fazer isso? Tentei envolver meu telefone em uma folha de alumínio, mas não ajudou muito.
Preciso testá-lo em um dispositivo real, não em um emulador.
android
connectivity
Maggie
fonte
fonte
Respostas:
Você pode usar o emulador para isso. Dê uma olhada nesta página: Emulador do Android . Preste atenção nos próximos dois argumentos:
-netdelay <delay>
-netspeed <speed>
Velocidades de referência no aumento de kbps:
fonte
tc
comando (do busybox).Isso pode parecer um pouco louco, mas um forno de microondas serve como um escudo de microondas. Portanto, colocar o dispositivo dentro de um forno de microondas (NÃO ligue o forno de microondas enquanto o dispositivo estiver dentro!) Fará com que a intensidade do sinal caia significativamente. Definitivamente bate em pé dentro de um elevador ...
fonte
Como a opção de desenvolvedor de iPhones se aplica ao compartilhamento de Wi-Fi, você pode obter um iPhone que tem
iOS 6
e acima (e foi definidouse for developments
comxcode
), configurá-lo para emular o perfil de rede desejado, conectar seu dispositivo Android ao ponto de acessofonte
Atualização para o Android Studio v 1.5 ou superior
Como o @LouMorda mencionado em um comentário abaixo, a
Emulator
guia mencionada na postagem original foi removida no Android Studio v 1.5.Agora eles colocaram essas configurações nas Configurações do simulador em
AVD Manager
.Para acessar essas configurações:
Tools -> Android -> AVD Manager
Edit AVD
botão (ícone de lápis)Network Settings
pode ser acessado depois de clicar noShow Advanced Settings
botãoAqui está uma captura de tela de como pode aparecer:
Post original
Para quem usa o Android Studio IDE:
Run -> Edit Configurations
Android Application -> [Your App]
Emulator
Guia SelecionarNetwork Speed
eNetwork Latency
para simular diferentes velocidades e latências etc.Como alternativa, você pode inserir vários argumentos no
Additional command line options
campo de texto, conforme mencionado na resposta do @ inazaruk.A captura de tela abaixo descreve como essa
Run Configuration
tela se parece:Sei que é um pouco tarde para responder a essa pergunta, mas espero que isso ajude outras pessoas que enfrentam problemas semelhantes!
Editar
Para quem usa o eclipse, consulte a resposta de @ Abhi abaixo.
fonte
Eu sei que é uma pergunta antiga, mas ...
Atualmente, alguns telefones têm uma configuração para utilizar apenas 2G. É perfeito para simular internet lenta em um dispositivo real.
fonte
Anos, mas, ei, eu vou concordar com meu método infalível com Genymotion.
Faça o download da avaliação gratuita do Charles: http://www.charlesproxy.com/download/
Instale-o
Clique
Proxy -> Throttle Settings
Configure suas velocidades de aceleração HTTP
Feche essa janela
Clique
Proxy -> Throttling
para ativar o aceleradorAbra um emulador Genymotion
Abra as configurações de wifi
Pressione e segure a conexão wifi ativada
Clique
Modify Network
Clique
Show Advanced Options
Defina
Proxy
comoManual
Defina
Proxy hostname
como10.0.3.2
Defina
Port
como8888
Clique
Save
E agora sua rede será acelerada!
fonte
Você também pode testar a conectividade lenta da Internet em um dispositivo Android real:
Testado com Samsung Galaxy S8 + Android 8.0.0
Vá para Configurações -> Conexão -> Rede Móvel -> e sob networkmode você pode escolher apenas para usar 2G ou 3G conexões
fonte
Eu tenho uma estratégia para resolver seu problema. Você pode usar o aplicativo proxy para modificar ou monitorar seu status líquido. por exemplo, Charles .
Você deve alterar a configuração padrão do Charles como na imagem a seguir.
E, finalmente, você descobrirá que o status da rede foi modelado em ritmo mais baixo.
fonte
Maneira fácil de testar seu aplicativo com conexão baixa / ruim no emulador:
Vá em Executar > Executar configurações , selecione seu Aplicativo Android e vá para a guia Destino . Parâmetros de inicialização do Look Emulator . Aqui, você pode modificar facilmente a velocidade e a latência da rede.
fonte
Existe uma maneira simples de testar baixas velocidades em um dispositivo real que parece ter sido esquecido. Requer um Mac e uma conexão de rede Ethernet (ou outra com fio).
Ative o compartilhamento Wifi no Mac, transformando seu computador em um hotspot Wifi, conecte seu dispositivo a isso. Use o Netlimiter / Charles Proxy ou o Network Link Conditioner (que você já pode ter instalado) para controlar as velocidades.
Para obter mais detalhes e entender que tipo de velocidade você deve testar, confira: http://opensignal.com/blog/2016/02/05/go-slow-how-why-to-test-apps-on-poor -conexões /
fonte
No Android Studio, ao executar um emulador:
1- Clique no botão de configurações na parte inferior da barra lateral do emulador
2- Vá para Celular
3- Defina o tipo de rede
fonte
O Facebook construiu algo chamado Controle de Tráfego Aumentado . Um breve resumo da página do GitHub:
Você pode encontrá-lo aqui no GitHub: https://github.com/facebook/augmented-traffic-control
Eles também escreveram uma postagem no blog: https://code.facebook.com/posts/1561127100804165/augmented-traffic-control-control-a-tool-to-simulate-network-conditions/
fonte
Estou surpreso que ninguém tenha mencionado isso. Você pode amarrar via Bluetooth e separá-los por mais de dez metros (ou menos com obstáculos). Você tem uma conexão muito ruim. Sem microondas, sem elevador, sem necessidade de software.
fonte
Ou em um dispositivo real, você pode acessar Configurações -> Redes móveis -> Tipos de rede preferidos e escolher o mais lento disponível ... É claro que isso é muito limitado, mas para alguns fins de teste pode ser suficiente.
fonte
ATUALIZAÇÃO no estúdio Android AVD:
Não microondas ou elevadores :)
fonte
Para usuários do Mac OS, você pode usar o Network Link Conditioner, que pode ser baixado da Apple. configurá-lo como um AP no mac e quaisquer divices poderiam conectá-lo.
você pode usar as ferramentas de código aberto do Facebook ATC http://facebook.github.io/augmented-traffic-control/
fonte
Deseja testar se não há conexão de rede ou apenas uma conexão de rede lenta? No primeiro, você pode acessar
Settings > Wireless & networks > Airplane mode
e ativar o modo Avião. Isso permitirá testar a indisponibilidade da rede em um dispositivo real.fonte
Vá em Executar> Executar configurações, selecione seu Aplicativo Android e vá para a guia Destino. Faça as alterações conforme mostrado na figura.
fonte
Eu estava lutando com esse problema por meio dia, finalmente cheguei a esta solução:
Testar em um dispositivo real não faz muito sentido em geral, pois você precisa fazer muito para fazê-lo funcionar. A única maneira lógica de realizar testes reais é fazer com que o telefone se conecte a uma rede celular de baixa qualidade, como a EDGE, se a companhia telefônica fornecer. Você pode tentar fazer isso discando
*#*#4636#*#*
no aplicativo de telefoneO emulador original do Android é muito lento para testes e não alcança mais do que a solução acima.
A melhor maneira de fazer isso é usar o Genymotion . É um emulador Android com desempenho muito melhor que os AVDs originais e a versão para uso pessoal é gratuita.
Depois de criar seu dispositivo virtual no Genymotion, basta seguir este tutorial para definir um proxy para o dispositivo.
Execute um servidor proxy em sua máquina host que simule más condições de rede, como Crapify ou Toxiproxy (eu testei apenas o primeiro) e você estará .
Atualizar:
Acabei de perceber que você também pode escolher a mesma estratégia com dispositivos reais. Eu me sinto um idiota por não perceber isso antes. Basta iniciar um proxy Crapify no seu computador, definir o proxy do telefone para o endereço local do seu computador e pronto, você tem uma Internet ruim no seu telefone.
fonte
como sugerido por @VicVu Charles (ou qualquer outra ferramenta de proxy) é um caminho mais fácil. Mas eu gostaria de acrescentar que você também pode fazer isso com seu dispositivo, não apenas com genymotion ou outros emuladores. O processo será o mesmo:
Modifique a configuração wifi do seu dispositivo / emulador para usar o proxy manual. E, em seguida, defina o nome do host e a porta do proxy a. defina o nome do host como ip do seu sistema (obtenha o ip do seu pc / mac usando ifconfig / ifconfig) b. defina o número da porta do genymotion (verifique as configurações de proxy em charles)
PS: Seu dispositivo / emulador DEVE estar usando o mesmo wifi, pois o IP que você está usando provavelmente será o IP privado.
fonte
Abra o terminal no Android Studio e vá para ../../Android/sdk/tools. O executável 'emulator' deve estar disponível aqui.
Execute ./emulator -netdelay "delay_in_millis" -avd "emulator_device_name"
Por exemplo: ./emulator -netdelay 60000 -avd Nexus_5_API_21
Agora crie seu aplicativo e instale-o no emulador.
Verifique se o seu código foi alterado no aplicativo que define o tempo limite da sua solicitação e cuida disso.
fonte
Basta ir ao monitor do dispositivo Android no Android studio e, em seguida, DDMS -> Emulator Control. Haverá propriedades de velocidade e latência.
fonte
Eu achei o netlimiter4 a melhor solução para limitar dados para emuladores. Ele fornece controle granular através de uma interface gráfica decente e fornece feedback gráfico sobre a taxa de transferência de dados para cada processo. Atualmente em uma versão beta gratuita. captura de tela
http://www.netlimiter.com/products/nl4
Existem aplicativos disponíveis na Play Store para acelerar nos dispositivos reais, mas eles precisam de root (não posso fornecer conselhos sobre o quão bem eles funcionam, se é que existem - YMMV.)
procurar bradybound na play store, não posso postar mais de um link.
fonte
você já tentou isso? Configurações - Redes - Mais - Redes móveis - Modo de rede - Selecione a rede preferida (2G, por exemplo).
Outro método que usei foi mencionado acima. Conecte-se via hot spot do iPhone. Espero que isto ajude.
fonte
Estou usando o proxy mitmproxy HTTPS. https://mitmproxy.org/
O Mitmproxy é um aplicativo proxy de código aberto que permite interceptar conexões HTTP e HTTPS entre qualquer cliente HTTP (S). Permite monitorar, capturar e alterar essas conexões em tempo real. Solicitação de mudança, resposta, cabeçalho, ... Além disso, você pode interceptar solicitações diferentes.
por exemplo response_delay.py :
A execução desse comentário atrasa todas as respostas do servidor:
Você pode encontrar um tutorial simples aqui .
Você pode encontrar outros exemplos de script aqui .
fonte
Post muito antigo, mas vou adicionar meus dois centavos. Fiquei muito satisfeito com este produto de hardware ( https://apposite-tech.com/products/linktropy-mini/ ) que nos permitiu simular muitas condições do mundo real. Por um longo tempo, tivemos problemas para solucionar várias coisas que funcionariam no emulador ou no modo avião.
Temos vários perfis diferentes configurados, desde conectividade zero até vários estágios de conectividade marginal, com diferentes graus de latência, perda de pacotes e erros de bits. O melhor de tudo é que podemos alterá-los rapidamente sem precisar reiniciar o aplicativo em um emulador. O preço valeu a pena para a nossa loja e é muito simples de usar.
fonte
Eu precisava acelerar a baixa Internet no dispositivo nativo AndroidTV e, com base no que li, a solução mais adequada foi limitar o acesso à Internet diretamente no meu roteador.
Vá para as configurações do roteador (localmente, é como 192.168.0.1) -> configure o servidor DHCP (se não estiver em execução) -> escolha o endereço IP de um dispositivo e defina a restrição;
fonte