Android용 네트워크 연결 부족 시뮬레이션
네트워크 연결이 낮은 경우가 있는지 애플리케이션을 테스트하고 싶습니다.엘리베이터에 서 있는 것을 제외하고, 이것을 하는 가장 좋은 방법은 무엇입니까?알루미늄 호일로 휴대전화를 포장해 보았지만 별 도움이 되지 않았습니다.
에뮬레이터가 아니라 실제 장치에서 테스트를 해봐야 합니다.
좀 이상하게 들릴지도 모르지만, 전자레인지는 전자레인지의 방패 역할을 합니다.따라서 기기를 전자레인지 안에 넣으면(기기가 안에 있는 동안에는 전자레인지를 켜지 마십시오!) 신호 강도가 크게 떨어집니다.엘리베이터 안에 서 있는 것보다 확실히 더...
에뮬레이터를 이용하시면 됩니다.이 페이지를 살펴봅니다.안드로이드 에뮬레이터.다음 두 가지 인수에 주목합니다.
-netdelay <delay>
네트워크 지연 시간 에뮬레이션을 로 설정합니다. 기본값은 없음입니다.지원되는 값은 Network Delay Emulation의 표를 참조하십시오.
-netspeed <speed>
네트워크 속도 에뮬레이션을 로 설정합니다. 기본값이 가득 찼습니다.지원되는 값은 Network Speed Emulation의 표를 참조하십시오.
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 ∞ ∞
아이폰 개발자 옵션은 와이파이 테더링에 적용되기 때문에, 당신은 다음과 같은 아이폰을 얻을 수 있습니다.iOS 6
위됨)로됨)use for developments
와 함께xcode
원하는 네트워크 프로파일을 에뮬레이트하도록 설정하고 Android 장치를 핫스팟에 연결합니다.
v 이상 Studio v 1.5용
@LouMorda가 아래의 코멘트에서 언급했듯이.Emulator
원래 게시물에 언급된 탭은 안드로이드 스튜디오 v 1.5에서 제거되었습니다.
이제 이 설정을 의 시뮬레이터 설정에 넣었습니다.AVD Manager
.
다음 설정에 액세스하려면:
- 선택한다.
Tools -> Android -> AVD Manager
- 클릭합니다.
Edit AVD
버튼 (pencil 아이콘) -
Network Settings
를 클릭한 후에 액세스할 수 있습니다.Show Advanced Settings
단추
원본 게시물
Android Studio IDE자를 하는 모든 :
- 에 가다
Run -> Edit Configurations
- 선택한다.
Android Application -> [Your App]
- 선택한다.
Emulator
- 여기서 다른 값을 변경할 수 있습니다.
Network Speed
(인터넷 속도) 및Network Latency
(delay) 다양한 속도와 지연 시간 등을 시뮬레이션합니다.
또는 다양한 인수를 입력할 수 있습니다.Additional command line options
@inazaruk의 답변에 언급된 텍스트 필드.
아래 스크린샷은 이 방법을 설명합니다.Run Configuration
화면 모양:
이 질문에 대답하기에 조금 늦었다는 것을 알지만, 저는 이것이 비슷한 문제에 직면한 다른 사람들에게 도움이 되기를 바랍니다!
편집
일식을 사용하는 모든 사용자는 아래 @Abhi의 답변을 참조하십시오.
오래된 질문인건 알지만...
요즘 일부 전화기는 2G만 사용하도록 설정되어 있습니다.실제 기기에서 느린 인터넷을 시뮬레이션하기에 제격입니다.
나이는 들었지만 이봐, 지니모션과 함께 내 바보같은 방법으로 동참할거야.
Charles 무료 체험판 다운로드: http://www.charlesproxy.com/download/
설치.
클릭
Proxy -> Throttle Settings
HTTP 조절 속도 설정
창을 닫습니다.
.
Proxy -> Throttling
스로틀을 활성화시키다Genymotion 에뮬레이터 열기
와이파이 설정 열기
활성화된 와이파이 연결을 길게 누릅니다.
.
Modify Network
.
Show Advanced Options
Proxy
.Manual
Proxy hostname
.10.0.3.2
Port
.8888
.
Save
이제 네트워크가 제한됩니다!
당신의 문제를 해결할 수 있는 한 가지 전략이 있습니다.프록시 응용 프로그램을 사용하여 순 상태를 수정하거나 모니터링할 수 있습니다.예를 들면 찰스.
당신은 내가 올린 다음 사진처럼 찰스의 기본 설정을 변경해야 합니다.
그리고 마지막으로 순 상태가 더 낮은 속도로 형성되었다는 것을 알게 될 것입니다.
실제 안드로이드 기기에서 느린 인터넷 연결을 테스트할 수도 있습니다.
Samsung Galaxy S8 + Android 8.0.0으로 테스트됨
설정 -> 연결 -> 모바일 네트워크 -> 네트워크 모드에서 2G 또는 3G 연결만 사용하도록 선택할 수 있습니다.
Android Studio에서 에뮬레이터를 실행하는 동안:
1 - 에뮬레이터 사이드바 하단의 설정 버튼을 누릅니다.
2 - 셀룰러로 이동
3 - 네트워크 유형 설정
에뮬레이터에서 연결 부족/불량으로 애플리케이션을 쉽게 테스트할 수 있는 방법:
실행으로 이동 > 구성 실행, Android Application 선택 후 Target 탭으로 이동합니다.에뮬레이터 시작 매개변수를 봅니다.여기서는 네트워크 속도 및 네트워크 지연 시간을 쉽게 수정할 수 있습니다.
실제 장치에서 저속을 테스트하는 간단한 방법이 있는데, 이는 간과된 것으로 보입니다.Mac과 이더넷(또는 기타 유선) 네트워크 연결이 필요합니다.
Mac에서 WiFi 공유를 설정하고 컴퓨터를 WiFi 핫스팟으로 전환하여 장치를 여기에 연결합니다.Netlimiter/Charles Proxy 또는 Network Link Conditioner(이미 설치했을 수도 있음)를 사용하여 속도를 제어합니다.
자세한 내용과 테스트해야 할 속도에 대한 자세한 내용은 http://opensignal.com/blog/2016/02/05/go-slow-how-why-to-test-apps-on-poor-connections/ 을 참조하십시오.
아무도 이런 얘기를 안 했다니 놀랍군요.블루투스를 통해 테더링을 할 수 있으며 장애물이 있는 경우 10미터 이상(또는 그 이하) 분리할 수 있습니다.연결 상태가 정말 안 좋아요.전자레인지도 없고 엘리베이터도 없고 소프트웨어도 필요 없습니다.
또는 실제 장치에서 설정 -> 모바일 네트워크 -> 기본 설정 네트워크 유형으로 이동하여 사용 가능한 가장 느린 네트워크 유형을 선택할 수 있습니다.물론 이것은 매우 제한적이지만, 몇몇 테스트 목적으로는 충분할 수도 있습니다.
페이스북은 증강 교통 관제라는 것을 만들었습니다.GitHub 페이지의 간략한 요약:
ATC(Augmented Traffic Control)는 네트워크 상태를 시뮬레이션하는 도구입니다.이를 통해 기기가 인터넷에 연결하는 것을 제어할 수 있습니다.개발자는 ATC를 사용하여 다양한 네트워크 조건에서 애플리케이션을 테스트할 수 있으며, 고속, 모바일 및 심각한 손상을 입은 네트워크를 쉽게 에뮬레이트할 수 있습니다.제어할 수 있는 연결 측면은 다음과 같습니다.
- 대역폭
- 대기 시간
- 패킷 손실
- 손상된 패킷
- 패킷 순서 지정
네트워크 트래픽을 형성하려면 트래픽을 라우팅하고 해당 장치의 실제 IP 주소를 확인하는 장치(예: 네트워크 게이트웨이)에서 ATC가 실행되어야 합니다.이를 통해 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/
Android 스튜디오 AVD 업데이트:
- AVD 관리자 열기
- AVD 생성/편집
- 고급 설정을 클릭합니다.
- 원하는 연결 설정을 선택합니다.
전자레인지 또는 엘리베이터 사용 금지 :)
그리고 mac OS 사용자들을 위해서는 Apple에서 다운로드 할 수 있는 Network Link Conditioner를 사용할 수 있습니다.맥에서 AP로 설정하면 어떤 부서라도 연결할 수 있습니다.
페이스북 오픈 소스 도구 ATC http://facebook.github.io/augmented-traffic-control/ 를 사용할 수 있습니다.
실행으로 이동 > 구성 실행, Android Application 선택 후 Target 탭으로 이동합니다.그림과 같이 변경합니다.
반나절 동안 이 문제와 씨름하다 결국 다음과 같은 해결책을 찾았습니다.
실제 기기에서 테스트하는 것은 작동하기 위해 많은 과정을 거쳐야 하기 때문에 전체적으로 큰 의미가 없습니다.실제 테스트를 달성하는 유일한 논리적 방법은 전화 회사에서 제공하는 경우 전화기를 EDGE와 같은 저품질 셀룰러 네트워크에 연결하는 것입니다.전화를 걸어 이 작업을 시도할 수 있습니다.
*#*#4636#*#*
전화 앱에서오리지널 안드로이드 에뮬레이터는 테스트하기에 너무 느리고 위의 솔루션 이상을 달성하지 못합니다.
가장 좋은 방법은 지니모션을 사용하는 것입니다.기존 AVD보다 성능이 훨씬 뛰어난 안드로이드 에뮬레이터이며 개인용 버전은 무료입니다.
Genymotion에서 가상 디바이스를 생성한 후 이 자습서를 통해 디바이스의 프록시를 설정합니다.
Crapify나 Toxiproxy 같은 나쁜 네트워크 상태를 시뮬레이션하는 프록시 서버를 호스트 컴퓨터에서 실행하면 됩니다(전자만 테스트했습니다).
업데이트:
저는 당신이 실제 기기에서도 같은 전략을 선택할 수 있다는 것을 깨달았습니다.나는 그것을 더 빨리 깨닫지 못한 것에 대해 바보같이 느껴집니다.컴퓨터에서 Crapify 프록시를 시작하고 컴퓨터의 로컬 주소로 전화 프록시를 설정하면 전화기에 인터넷이 엉망이 됩니다.
아주 오래된 게시물이지만 2센트를 추가하겠습니다.많은 실제 상황을 시뮬레이션할 수 있게 해준 이 하드웨어 제품(https://apposite-tech.com/products/linktropy-mini/ )에 매우 만족하고 있습니다.오랫동안 우리는 에뮬레이터나 비행기 모드에서 작동하는 다양한 문제를 해결하는 데 어려움을 겪었습니다.
제로 연결에서 다양한 한계 연결 단계에 이르기까지 다양한 프로파일을 설정할 수 있으며 지연 시간, 패킷 손실 및 비트 오류 정도가 다릅니다.그것의 좋은 점은 에뮬레이터에서 앱을 다시 시작할 필요 없이 이것들을 바로 바꿀 수 있다는 것입니다.그 가격은 우리 가게 가격에 딱 맞았고, 사용하기는 정말 간단합니다.
안드로이드에서 낮은 인터넷을 제어해야 했습니다.TV 네이티브 장치와 내가 읽은 바에 따르면, 가장 적합한 해결책은 라우터에서 직접 인터넷 접속을 제한하는 것이었습니다.
라우터 설정으로 이동(로컬 192.168.0.1과 같이 smth) -> DHCP 서버 설정(실행되지 않는 경우) -> 디바이스의 IP 주소를 선택하고 제한을 설정합니다;
@VicVu Charles(또는 다른 프록시 도구)가 제안한 것처럼 더 쉬운 방법입니다.하지만 이 작업은 genymotion이나 다른 에뮬레이터뿐만 아니라 장치로도 수행할 수 있다는 점을 덧붙이고 싶습니다.공정은 동일합니다.
수동 프록시를 사용하도록 장치/에뮬레이터의 wifi 설정을 수정합니다.그런 다음 Proxy hostname & port a. 호스트 이름을 시스템의 ip로 설정합니다(ifconfig/ifconfig를 사용하여 pc/mac의 ip를 가져옵니다) b. genymotion의 포트 번호를 설정합니다(charles에서 프록시 설정 확인).
추신: 사용 중인 IP는 아마도 개인 IP일 것이기 때문에 장치/에뮬레이터가 동일한 와이파이를 사용하고 있을 것입니다.
Android Studio에서 터미널을 열고 ..../로 이동합니다./Android/sdk/tools.여기서 '에뮬레이터' 실행 파일을 사용할 수 있어야 합니다.
실행 ./emulator -netdelay "delay_in_millis" -avd "emulator_device_name"
Ex: ./에뮬레이터 - netdelay 60000 -avd Nexus_5_API_21
이제 앱을 만들고 에뮬레이터에 설치하세요.
- 앱에서 시나리오를 실행합니다.
요청에 시간 초과를 설정하고 처리하는 앱에 코드 변경 사항이 있는지 확인합니다.
Android 스튜디오에서 Android 장치 모니터로 이동한 다음 DDMS -> Emulator Control으로 이동하면 됩니다.Speed(속도) 및 Latency(지연) 속성이 있습니다.
저는 netlimiter4가 에뮬레이터로 데이터를 조절하는 데 가장 적합한 솔루션임을 알게 되었습니다.괜찮은 gui를 통해 세분화된 제어를 제공하고 각 프로세스의 데이터 처리량에 대한 그래픽 피드백을 제공합니다.현재 무료 베타 중입니다. 스크린샷
http://www.netlimiter.com/products/nl4
실제 장치로 제어하기 위해 플레이 스토어에서 사용할 수 있는 앱이 있지만 루트가 필요합니다(만약 작동이 잘 되는 경우, YMMV에 대해서는 어떤 조언도 제공할 수 없습니다.
플레이 스토어에서 브래디 바운드를 검색합니다. 링크를 하나 이상 올릴 수 없습니다.
이거 먹어봤어요?[설정] - [네트워크] - [추가] - [모바일 네트워크] - [네트워크 모드] - 원하는 네트워크를 선택합니다(예: 2G).
제가 사용한 또 다른 방법은 위에서 언급한 것입니다.아이폰 핫스팟을 통해 연결합니다.도움이 되길 바랍니다.
mitmproxy HTTPS 프록시를 사용하고 있습니다.https://mitmproxy.org/
Mitmproxy는 HTTP(S) 클라이언트 간의 HTTP 및 HTTPS 연결을 가로챌 수 있는 오픈 소스 프록시 응용 프로그램입니다.이를 통해 실시간으로 이러한 연결을 모니터링하고 캡처하고 변경할 수 있습니다.요청, 응답, 헤더 변경...또한 다양한 요청을 가로챌 수 있습니다.
예: 응답_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
내 앱에서 인증서 고정을 사용하고 있으므로 인증서를 추가해야 합니다(비공개 + 공개).
고양이 일병의주요 대중key > cert.pem
간단한 자습서는 여기에서 찾을 수 있습니다.
다른 스크립트 예제는 여기에서 확인할 수 있습니다.
네트워크 연결이 없는지, 아니면 네트워크 연결 속도가 느리는지 테스트하시겠습니까?전자의 경우 다음으로 이동할 수 있습니다.Settings > Wireless & networks > Airplane mode
그리고 비행기 모드를 켭니다.그러면 실제 장치에서 네트워크 사용 불가능을 테스트할 수 있습니다.
언급URL : https://stackoverflow.com/questions/7026251/simulate-low-network-connectivity-for-android
'programing' 카테고리의 다른 글
포인터를 파일 시작으로 재설정 (0) | 2023.10.27 |
---|---|
Google Analytics에서 트래픽 스푸핑을 방지하는 방법 (0) | 2023.10.27 |
두 Panda 데이터 프레임에서 공통 행 찾기(교차로) (0) | 2023.10.27 |
MySQL로 유창한 nHibernate를 구성하는 방법 (0) | 2023.10.27 |
Dataframe 셀 내부의 목록을 별도의 행으로 폭발시키는 방법 (0) | 2023.10.27 |