답변:
에뮬레이터를 사용할 수 있습니다. 이 페이지를 살펴보세요 안드로이드 에뮬레이터 . 다음 두 가지 주장에주의하십시오.
-netdelay <delay>
네트워크 대기 시간 에뮬레이션을로 설정하십시오. 기본값은 none입니다. 지원되는 값은 네트워크 지연 에뮬레이션의 표를 참조하십시오.
-netspeed <speed>
네트워크 속도 에뮬레이션을로 설정하십시오. 기본값이 가득 찼습니다. 지원되는 값은 네트워크 속도 에뮬레이션의 표를 참조하십시오.
kbps 증가시 참조 속도 :
UP DOWN
-------- ----------
gsm GSM/CSD 14.4 14.4
hscsd HSCSD 14.4 57.6
gprs GPRS 28.8 57.6
umts UMTS/3G 384.0 384.0
edge EDGE/EGPRS 473.6 473.6
hsdpa HSDPA 5760.0 13,980.0
lte LTE 58,000.0 173,000.0
evdo EVDO 75,000.0 280,000.0
full No limit ∞ ∞
tc
busybox 명령을 사용하여 제한을 설정해야합니다 .
약간 미친 소리가 나지만 전자 레인지는 전자 레인지 차폐 역할을합니다. 따라서 장치를 전자 레인지 안에 넣으면 (장치 내부에 전자 레인지를 켜지 마십시오!) 신호 강도가 크게 떨어집니다. 엘리베이터 안에 서있는 것이 확실합니다 ...
이후 아이폰의 개발자 옵션은 와이파이 테 더링에 적용, 당신이 가지고있는 아이폰 얻을 수 iOS 6
이상 (과에 설정을하고있다 use for developments
로를 xcode
) 원하는 네트워크 프로파일을 에뮬레이션하여 연결을 설정 안드로이드 의 핫스팟 장치를
Android Studio v 1.5 이상 업데이트
@LouMorda가 아래 설명에서 Emulator
언급했듯이 원래 게시물에 언급 된 탭이 Android Studio v 1.5에서 제거되었다고합니다.
이제이 설정을의 시뮬레이터 설정에 배치했습니다 AVD Manager
.
이 설정에 액세스하려면
Tools -> Android -> AVD Manager
Edit AVD
버튼 (연필 아이콘)을 클릭하십시오Network Settings
클릭 한 후 액세스 할 수있는 Show Advanced Settings
버튼을 원래 게시물
Android Studio IDE를 사용하는 사람 :
Run -> Edit Configurations
Android Application -> [Your App]
Emulator
탭Network Speed
및 Network Latency
다른 속도 및 지연 시간 등을 시뮬레이션 할 수 또는 Additional command line options
@inazaruk의 답변에 언급 된대로 텍스트 필드에 다양한 인수를 입력 할 수 있습니다 .
아래 스크린 샷은이 Run Configuration
화면의 모양을 설명합니다 .
나는이 질문에 대답하기에 약간 늦었지만 비슷한 문제에 직면 한 다른 사람들을 돕기를 바랍니다!
편집
이클립스를 사용하는 사람은 아래 @Abhi의 답변을 참조하십시오.
나는 그것이 오래된 질문이라는 것을 알고 있지만 ...
오늘날 일부 전화는 2G 만 사용하도록 설정되어 있습니다. 실제 장치에서 느린 인터넷을 시뮬레이션하는 데 적합합니다.
몇 년이나 지났지 만, 나는 Genymotion으로 내 바보 같은 방법으로 차임 할 것입니다.
Charles 무료 평가판 다운로드 : http://www.charlesproxy.com/download/
설치
딸깍 하는 소리Proxy -> Throttle Settings
HTTP 스로틀 속도 설정
그 창을 닫아
Proxy -> Throttling
스로틀을 활성화 하려면 클릭
Genymotion 에뮬레이터를 엽니 다
Wi-Fi 설정을 엽니 다
활성화 된 Wi-Fi 연결을 길게 누릅니다.
딸깍 하는 소리 Modify Network
딸깍 하는 소리 Show Advanced Options
설정 Proxy
에Manual
설정 Proxy hostname
에10.0.3.2
설정 Port
에8888
딸깍 하는 소리 Save
이제 네트워크가 조절됩니다!
문제를 해결하기위한 전략이 하나 있습니다. 프록시 응용 프로그램을 사용하여 인터넷 상태를 수정하거나 모니터링 할 수 있습니다. 예를 들어, 찰스 .
내가 게시 한 다음 그림과 같이 Charles의 기본 구성을 변경해야합니다.
마지막으로 순 상태가 더 낮은 속도로 형성되었음을 알 수 있습니다.
간과 된 것처럼 보이는 실제 장치에서 저속을 테스트하는 간단한 방법이 있습니다. Mac 및 이더넷 (또는 기타 유선) 네트워크 연결이 필요합니다.
Mac에서 Wi-Fi 공유를 켜고 컴퓨터를 Wi-Fi 핫스팟으로 바꾸고 장치를 여기에 연결하십시오. Netlimiter / Charles Proxy 또는 Network Link Conditioner (이미 설치했을 수 있음)를 사용하여 속도를 제어하십시오.
자세한 내용을 확인하고 어떤 종류의 속도를 테스트해야하는지 이해하려면 http://opensignal.com/blog/2016/02/05/go-slow-how-why-to-test-apps-on-poor -사이/
Facebook은 Augmented Traffic Control 이라는 것을 구축했습니다 . GitHub 페이지에서 간단한 요약 :
ATC (Augmented Traffic Control)는 네트워크 상태를 시뮬레이션하는 도구입니다. 장치의 인터넷 연결을 제어 할 수 있습니다. 개발자는 ATC를 사용하여 다양한 네트워크 조건에서 애플리케이션을 테스트하여 고속, 모바일 및 심하게 손상된 네트워크를 쉽게 에뮬레이션 할 수 있습니다. 제어 할 수있는 연결 측면은 다음과 같습니다.
- 대역폭
- 지연 시간
- 패킷 손실
- 손상된 패킷
- 패킷 주문
네트워크 트래픽을 형성하려면 ATC가 트래픽을 라우팅하고 네트워크 게이트웨이와 같은 장치의 실제 IP 주소를 보는 장치에서 실행되고 있어야합니다. 또한 ATC를 통해 라우팅되는 모든 장치가 트래픽을 조정할 수 있습니다. 웹 브라우저를 사용하는 모든 장치에서 클라이언트 응용 프로그램없이 ATC를 사용할 수 있도록 웹 인터페이스를 사용하여 트래픽을 형성 / 형성 해제 할 수 있습니다.
GitHub에서 찾을 수 있습니다 : https://github.com/facebook/augmented-traffic-control
그들은 또한 그것에 관한 블로그 게시물을 작성했습니다 : https://code.facebook.com/posts/1561127100804165/augmented-traffic-control-a-tool-to-simulate-network-conditions/
아무도 이것을 언급하지 않은 것에 놀랐습니다. 블루투스를 통해 테 더링하여 10 미터 이상 (장애물이있는 경우)으로 분리 할 수 있습니다. 당신은 정말 나쁜 연결이 있습니다. 전자 레인지, 엘리베이터, 소프트웨어 불필요
Mac OS 사용자의 경우 Apple에서 다운로드 할 수있는 Network Link Conditioner를 사용할 수 있습니다. Mac에서 AP로 설정하면 어떤 주사위도 연결할 수 있습니다.
페이스 북 오픈 소스 툴 ATC http://facebook.github.io/augmented-traffic-control/
네트워크 연결이 없거나 느린 네트워크 연결을 테스트 하시겠습니까? 전자의 경우 Settings > Wireless & networks > Airplane mode
비행기 모드 로 이동하여 켤 수 있습니다 . 그러면 실제 장치에서 네트워크 사용 불가능 성을 테스트 할 수 있습니다.
나는 반나절 동안이 문제로 어려움을 겪고 있었고 마침내이 솔루션에 왔습니다.
실제 장치에서 테스트하는 것은 작동하기 위해 많은 과정을 거쳐야하므로 전체적으로 의미가 없습니다. 실제 테스트를 수행하는 유일한 논리적 방법은 전화 회사에서 제공하는 경우 전화기를 EDGE와 같은 저품질 셀룰러 네트워크에 연결하는 것입니다. *#*#4636#*#*
전화 앱에서 전화 를 걸어이 작업을 시도 할 수 있습니다
원래 Android 에뮬레이터는 테스트하기에는 너무 느리고 위의 솔루션보다 더 많은 것을 달성하지 못합니다.
이를 수행하는 가장 좋은 방법은 Genymotion을 사용하는 것 입니다. 원래 AVD보다 훨씬 우수한 성능을 가진 Android 에뮬레이터이며 개인용 버전은 무료입니다.
Genymotion에서 가상 장치를 만든 후이 자습서 를 통해 장치의 프록시를 설정하십시오.
호스트 컴퓨터에서 Crapify 또는 Toxiproxy 와 같은 잘못된 네트워크 조건을 시뮬레이트하는 프록시 서버를 실행하십시오 .
최신 정보:
실제 장치에서도 동일한 전략을 선택할 수 있다는 것을 깨달았습니다. 나는 그것을 더 빨리 깨닫지 못한 바보 같은 느낌이 든다. 컴퓨터에서 Crapify 프록시를 시작하고 전화 프록시를 컴퓨터의 로컬 주소 및 voila로 설정하면 전화에 인터넷이 엉망입니다.
@VicVu Charles (또는 다른 프록시 도구)가 제안한 것처럼 쉽게 갈 수 있습니다. 그러나 나는 genymotion이나 다른 에뮬레이터뿐만 아니라 장치로도 이것을 할 수 있다고 덧붙이고 싶습니다. 과정은 동일합니다 :
수동 프록시를 사용하도록 장치 / 에뮬레이터의 wifi 설정을 수정하십시오. 그런 다음 프록시 호스트 이름 및 포트를 설정하십시오. 호스트 이름을 시스템의 ip로 설정하십시오 (ifconfig / ifconfig를 사용하여 pc / mac의 IP를 얻으십시오) b. genymotion의 포트 번호를 설정하십시오 (charles에서 프록시 설정 확인).
추신 : 사용중인 IP는 아마도 개인 IP 일 것이므로 장치 / 에뮬레이터는 반드시 동일한 Wi-Fi를 사용해야합니다.
Android Studio에서 터미널을 열고 ../../Android/sdk/tools로 이동하십시오. 여기에서 '에뮬레이터'실행 파일을 사용할 수 있어야합니다.
./emulator -netdelay "delay_in_millis"-avd "emulator_device_name"을 실행하십시오.
예 : ./emulator -netdelay 60000 -avd Nexus_5_API_21
이제 앱을 빌드하고 에뮬레이터에 설치하십시오.
요청에 시간 초과를 설정하고 처리하는 앱에서 코드를 변경했는지 확인하십시오.
netlimiter4가 데이터를 에뮬레이터로 제한하는 데 가장 적합한 솔루션이라는 것을 알았습니다. 적절한 GUI를 통해 세밀한 제어가 가능하며 각 프로세스의 데이터 처리량에 대한 그래픽 피드백을 제공합니다. 현재 무료 베타 버전입니다. 스크린 샷
http://www.netlimiter.com/products/nl4
Play 스토어에는 실제 기기를 조절할 수있는 앱이 있지만 루트가 필요합니다. (YMMV의 경우 얼마나 잘 작동하는지 조언을 드릴 수 없습니다.)
Play 스토어에서 bradybound를 검색하면 둘 이상의 링크를 게시 할 수 없습니다 ..
내가 사용하고 mitmproxy HTTPS 프록시를. https://mitmproxy.org/
Mitmproxy는 모든 HTTP (S) 클라이언트 간의 HTTP 및 HTTPS 연결을 가로 챌 수있는 오픈 소스 프록시 응용 프로그램입니다. 실시간으로 이러한 연결을 모니터링, 캡처 및 변경할 수 있습니다. 요청, 응답, 헤더 변경 ... 또한 다른 요청을 가로 챌 수 있습니다.
예 : response_delay.py :
from mitmproxy import http
from time import sleep
def response(flow: http.HTTPFlow) -> None:
sleep(5.0)
그런 다음이 주석을 실행하면 서버의 모든 응답이 지연됩니다.
mitmproxy --cert \*.asdf.at=./cert.pem --scripts response_delay.py
내 응용 프로그램에서 인증서 고정을 사용하고 있으므로 인증서를 추가해야합니다 (개인 + 공개)
cat private.key public.key> cert.pem
간단한 자습서를 여기에서 찾을 수 있습니다 .
다른 스크립팅 예제는 여기에서 찾을 수 있습니다 .
아주 오래된 게시물이지만 2 센트를 추가하겠습니다. 이 하드웨어 제품 ( https://apposite-tech.com/products/linktropy-mini/ ) 에 매우 만족 하여 많은 실제 조건을 시뮬레이션 할 수있었습니다. 오랫동안 에뮬레이터 또는 비행기 모드에서 작동하는 다양한 문제를 해결하는 데 어려움이있었습니다.
지연 시간, 패킷 손실 및 비트 오류가 다른 제로 커넥티비티부터 다양한 마진 커넥티비티 단계까지 다양한 프로파일 설정이 있습니다. 그것에 대한 좋은 점은 에뮬레이터에서 앱을 다시 시작하지 않고도 즉시 변경할 수 있다는 것입니다. 우리 가게의 가격은 전적으로 가치가 있으며 사용하기가 쉽지 않습니다.