programing

Android용 네트워크 연결 부족 시뮬레이션

css3 2023. 10. 27. 22:06

Android용 네트워크 연결 부족 시뮬레이션

네트워크 연결이 낮은 경우가 있는지 애플리케이션을 테스트하고 싶습니다.엘리베이터에 서 있는 것을 제외하고, 이것을 하는 가장 좋은 방법은 무엇입니까?알루미늄 호일로 휴대전화를 포장해 보았지만 별 도움이 되지 않았습니다.

에뮬레이터가 아니라 실제 장치에서 테스트를 해봐야 합니다.

좀 이상하게 들릴지도 모르지만, 전자레인지는 전자레인지의 방패 역할을 합니다.따라서 기기를 전자레인지 안에 넣으면(기기가 안에 있는 동안에는 전자레인지를 켜지 마십시오!) 신호 강도가 크게 떨어집니다.엘리베이터 안에 서 있는 것보다 확실히 더...

에뮬레이터를 이용하시면 됩니다.이 페이지를 살펴봅니다.안드로이드 에뮬레이터.다음 두 가지 인수에 주목합니다.

  1. -netdelay <delay>

    네트워크 지연 시간 에뮬레이션을 로 설정합니다. 기본값은 없음입니다.지원되는 값은 Network Delay Emulation의 표를 참조하십시오.

  2. -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 장치를 핫스팟에 연결합니다.

enter image description here

v 이상 Studio v 1.5용
@LouMorda가 아래의 코멘트에서 언급했듯이.Emulator원래 게시물에 언급된 탭은 안드로이드 스튜디오 v 1.5에서 제거되었습니다.

이제 이 설정을 의 시뮬레이터 설정에 넣었습니다.AVD Manager.
다음 설정에 액세스하려면:

  1. 선택한다.Tools -> Android -> AVD Manager
  2. 클릭합니다.Edit AVD버튼 (pencil 아이콘)
  3. Network Settings를 클릭한 후에 액세스할 수 있습니다.Show Advanced Settings단추

다음은 표시 방법에 대한 스크린샷입니다.
Network Speed and Latency Settings in Android Studio v 1.5

원본 게시물
Android Studio IDE자를 하는 모든 :

  1. 에 가다Run -> Edit Configurations
  2. 선택한다.Android Application -> [Your App]
  3. 선택한다.Emulator
  4. 여기서 다른 값을 변경할 수 있습니다.Network Speed(인터넷 속도) 및Network Latency(delay) 다양한 속도와 지연 시간 등을 시뮬레이션합니다.

또는 다양한 인수를 입력할 수 있습니다.Additional command line options@inazaruk의 답변에 언급된 텍스트 필드.

아래 스크린샷은 이 방법을 설명합니다.Run Configuration화면 모양:

Run Configurations Screen in Android Studio beta 0.8.6

이 질문에 대답하기에 조금 늦었다는 것을 알지만, 저는 이것이 비슷한 문제에 직면한 다른 사람들에게 도움이 되기를 바랍니다!

편집
일식을 사용하는 모든 사용자는 아래 @Abhi의 답변을 참조하십시오.

오래된 질문인건 알지만...

요즘 일부 전화기는 2G만 사용하도록 설정되어 있습니다.실제 기기에서 느린 인터넷을 시뮬레이션하기에 제격입니다.

enter image description here

나이는 들었지만 이봐, 지니모션과 함께 내 바보같은 방법으로 동참할거야.

  • 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

이제 네트워크가 제한됩니다!

당신의 문제를 해결할 수 있는 한 가지 전략이 있습니다.프록시 응용 프로그램을 사용하여 순 상태를 수정하거나 모니터링할 수 있습니다.예를 들면 찰스.

당신은 내가 올린 다음 사진처럼 찰스의 기본 설정을 변경해야 합니다.

Open Your Throttle Setting

Setting Your Throttle Setting

그리고 마지막으로 순 상태가 더 낮은 속도로 형성되었다는 것을 알게 될 것입니다.

Before

Setting After

실제 안드로이드 기기에서 느린 인터넷 연결을 테스트할 수도 있습니다.

Samsung Galaxy S8 + Android 8.0.0으로 테스트됨

설정 -> 연결 -> 모바일 네트워크 -> 네트워크 모드에서 2G 또는 3G 연결만 사용하도록 선택할 수 있습니다.

Android Studio에서 에뮬레이터를 실행하는 동안:

1 - 에뮬레이터 사이드바 하단의 설정 버튼을 누릅니다.

2 - 셀룰러로 이동

3 - 네트워크 유형 설정

Screenshot

에뮬레이터에서 연결 부족/불량으로 애플리케이션을 쉽게 테스트할 수 있는 방법:

실행으로 이동 > 구성 실행, 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 업데이트:

  1. AVD 관리자 열기
  2. AVD 생성/편집
  3. 고급 설정을 클릭합니다.
  4. 원하는 연결 설정을 선택합니다.

전자레인지 또는 엘리베이터 사용 금지 :)

그리고 mac OS 사용자들을 위해서는 Apple에서 다운로드 할 수 있는 Network Link Conditioner를 사용할 수 있습니다.맥에서 AP로 설정하면 어떤 부서라도 연결할 수 있습니다.

페이스북 오픈 소스 도구 ATC http://facebook.github.io/augmented-traffic-control/ 를 사용할 수 있습니다.

실행으로 이동 > 구성 실행, Android Application 선택 후 Target 탭으로 이동합니다.그림과 같이 변경합니다.

enter image description here

반나절 동안 이 문제와 씨름하다 결국 다음과 같은 해결책을 찾았습니다.

  • 실제 기기에서 테스트하는 것은 작동하기 위해 많은 과정을 거쳐야 하기 때문에 전체적으로 큰 의미가 없습니다.실제 테스트를 달성하는 유일한 논리적 방법은 전화 회사에서 제공하는 경우 전화기를 EDGE와 같은 저품질 셀룰러 네트워크에 연결하는 것입니다.전화를 걸어 이 작업을 시도할 수 있습니다.*#*#4636#*#*전화 앱에서

  • 오리지널 안드로이드 에뮬레이터는 테스트하기에 너무 느리고 위의 솔루션 이상을 달성하지 못합니다.

가장 좋은 방법은 지니모션을 사용하는 것입니다.기존 AVD보다 성능이 훨씬 뛰어난 안드로이드 에뮬레이터이며 개인용 버전은 무료입니다.

Genymotion emulator

Genymotion에서 가상 디바이스를 생성한 후 이 자습서를 통해 디바이스의 프록시를 설정합니다.

CrapifyToxiproxy 같은 나쁜 네트워크 상태를 시뮬레이션하는 프록시 서버를 호스트 컴퓨터에서 실행하면 됩니다(전자만 테스트했습니다).

업데이트:

저는 당신이 실제 기기에서도 같은 전략을 선택할 수 있다는 것을 깨달았습니다.나는 그것을 더 빨리 깨닫지 못한 것에 대해 바보같이 느껴집니다.컴퓨터에서 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일 것이기 때문에 장치/에뮬레이터가 동일한 와이파이를 사용하고 있을 것입니다.

  1. Android Studio에서 터미널을 열고 ..../로 이동합니다./Android/sdk/tools.여기서 '에뮬레이터' 실행 파일을 사용할 수 있어야 합니다.

  2. 실행 ./emulator -netdelay "delay_in_millis" -avd "emulator_device_name"

    Ex: ./에뮬레이터 - netdelay 60000 -avd Nexus_5_API_21

  3. 이제 앱을 만들고 에뮬레이터에 설치하세요.

  4. 앱에서 시나리오를 실행합니다.

요청에 시간 초과를 설정하고 처리하는 앱에 코드 변경 사항이 있는지 확인합니다.

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