ネットワーク接続が低い場合にアプリケーションをテストしたいと考えています。エレベーターに立つ以外に、これを行う最善の方法は何ですか? 携帯電話をアルミホイルで包んでみましたが、あまり役に立ちませんでした。
エミュレーターではなく、実際のデバイスでテストする必要があります。
ネットワーク接続が低い場合にアプリケーションをテストしたいと考えています。エレベーターに立つ以外に、これを行う最善の方法は何ですか? 携帯電話をアルミホイルで包んでみましたが、あまり役に立ちませんでした。
エミュレーターではなく、実際のデバイスでテストする必要があります。
これは少しクレイジーに聞こえるかもしれませんが、電子レンジはマイクロ波シールドとして機能します。したがって、デバイスを電子レンジの中に入れると (デバイスが中にある間は電子レンジの電源を入れないでください!)、信号強度が大幅に低下します。エレベーターの中に立っているのは間違いなく勝っています...
これにはエミュレーターを使用できます。このページを見てください: Android Emulator . 次の 2 つの引数に注意してください。
-netdelay <delay>
ネットワーク遅延エミュレーションを に設定します。デフォルト値はなしです。サポートされている値については、ネットワーク遅延エミュレーションの表を参照してください。
-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 ∞ ∞
Android Studio v 1.5 以降の更新
@LouMorda が以下のコメントで述べたEmulator
ように、元の投稿で言及されたタブは Android Studio v 1.5 で削除されました。
これで、これらの設定が の Simulator Settings に配置されました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
そして今、あなたのネットワークは抑制されます!
見落とされているように見える実際のデバイスで低速をテストする簡単な方法があります。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を参照してください。 -接続/
エミュレーターで接続が低い/悪い状態でアプリケーションをテストする簡単な方法:
[実行] > [実行構成] に移動し、 Android アプリケーションを選択して、[ターゲット] タブに移動します。Emulator launch parameters を見てください。ここでは、ネットワーク速度とネットワーク遅延を簡単に変更できます。
Facebook は、Augmented Traffic Controlと呼ばれるものを構築しました。彼らの GitHub ページからの簡単な要約:
Augmented Traffic Control (ATC) は、ネットワークの状態をシミュレートするツールです。デバイスのインターネットへの接続を制御できます。開発者は ATC を使用して、さまざまなネットワーク条件でアプリケーションをテストし、高速ネットワーク、モバイル ネットワーク、さらには深刻な障害のあるネットワークを簡単にエミュレートできます。制御できる接続の側面には、次のものがあります。
- 帯域幅
- レイテンシー
- パケットロス
- 破損したパケット
- パケットの順序付け
ネットワーク トラフィックをシェーピングできるようにするには、ネットワーク ゲートウェイなど、トラフィックをルーティングし、デバイスの実際の IP アドレスを確認するデバイス上で ATC を実行する必要があります。これにより、ATC を介してルーティングするすべてのデバイスがトラフィックをシェーピングできるようになります。Web インターフェイスを使用してトラフィックをシェーピング/アンシェーピングできるため、Web ブラウザーを備えたデバイスはクライアント アプリケーションを必要とせずに 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 の更新:
電子レンジやエレベーターはありません:)
私はこの問題に半日苦労していましたが、最終的にこの解決策にたどり着きました:
実際のデバイスでのテストは、機能させるために多くのことを行わなければならないため、全体としてあまり意味がありません。実際のテストを行う唯一の論理的な方法は、電話会社が提供している場合、EDGE などの低品質のセルラー ネットワークに電話を接続することです。*#*#4636#*#*
電話アプリでダイヤルすることで、これを行うことができます
元の Android エミュレーターはテストするには遅すぎて、上記の解決策以上のものを達成できません。
これを行う最善の方法は、Genymotionを使用することです。これは、元の AVD よりもはるかに優れたパフォーマンスを備えた Android エミュレーターであり、個人用のバージョンは無料です。
Genymotion で仮想デバイスを作成したら、このチュートリアルに従って、デバイスのプロキシを設定します。
CrapifyやToxiproxy (私は前者のみをテストしました) のような悪いネットワーク条件をシミュレートするプロキシ サーバーをホスト マシンで実行すると、準備完了です。
アップデート:
実際のデバイスでもまったく同じ戦略を選択できることに気付きました。早く気が付かないなんてバカみたい。コンピューターで Crapify プロキシを起動し、電話のプロキシをコンピューターのローカル アドレスに設定するだけで、電話でインターネットが不安定になります。
netlimiter4 が、エミュレーターへのデータの調整に最適なソリューションであることがわかりました。まともな GUI を介してきめ細かい制御を提供し、各プロセスへのデータ スループットに関するグラフィカルなフィードバックを提供します。現在、無料のベータ版です。 スクリーンショット
http://www.netlimiter.com/products/nl4
Play ストアには、実際のデバイスにスロットルするためのアプリがありますが、root が必要です (あったとしても、うまく機能するかどうかについてのアドバイスはできません - YMMV.)。
Play ストアで bradybound を検索すると、複数のリンクを投稿できません..
ネットワーク接続がないか、ネットワーク接続が遅いかをテストしますか? 前者の場合は、Settings > Wireless & networks > Airplane mode
機内モードに移動してオンにすることができます。これにより、実際のデバイスでネットワークが利用できないことをテストできます。
これを試しましたか?設定 - ネットワーク - 詳細 - モバイル ネットワーク - ネットワーク モード - 優先ネットワーク (2G など) を選択します。
私が使用した別の方法は上記で言及されました。iPhone ホットスポット経由で接続します。お役に立てれば。
AndroidTV ネイティブ デバイスで低インターネットを抑制する必要がありました。読んだ内容に基づいて、最も適切な解決策は、ルーターで直接インターネット アクセスを制限することでした。
ルーター設定に移動します (ローカルでは 192.168.0.1 のようなものです) -> DHCP サーバーをセットアップします (実行されていない場合) -> デバイスの IP アドレスを選択し、制限を設定します。
@VicVu Charles (またはその他のプロキシ ツール) で提案されているように、より簡単な方法です。ただし、genymotion や他のエミュレータだけでなく、デバイスでもこれを実行できることを付け加えておきます。プロセスは同じです。
デバイス/エミュレーターの Wi-Fi 設定を変更して、手動プロキシを使用します。そして、プロキシのホスト名とポートを設定します ホスト名をシステムの IP として設定します (ifconfig/ifconfig を使用して PC/Mac の IP を取得します)。genymotionのポート番号を設定します(charlesのプロキシ設定を確認してください)
PS:使用している IP はプライベート IP である可能性が高いため、デバイス/エミュレーターは同じ Wi-Fi を使用している必要があります。