Saya ingin menguji aplikasi saya untuk kasus-kasus konektivitas jaringan rendah. Selain berdiri di lift, apa cara terbaik untuk melakukan ini? Saya sudah mencoba membungkus telepon saya dengan aluminium foil, tetapi tidak banyak membantu.
Saya perlu mengujinya di perangkat nyata, bukan di emulator.
android
connectivity
Maggie
sumber
sumber
Jawaban:
Anda dapat menggunakan emulator untuk ini. Lihatlah halaman ini: Android Emulator . Perhatikan dua argumen berikut:
-netdelay <delay>
-netspeed <speed>
Kecepatan untuk referensi dalam meningkatkan kbps:
sumber
tc
perintah (dari busybox).Ini mungkin terdengar sedikit gila, tetapi oven microwave berfungsi sebagai pelindung microwave. Karena itu, meletakkan perangkat Anda di dalam oven microwave (JANGAN nyalakan oven microwave saat perangkat Anda ada di dalam!) Akan menyebabkan kekuatan sinyal Anda turun secara signifikan. Itu pasti mengalahkan berdiri di dalam lift ...
sumber
Karena opsi pengembang iPhone berlaku pada tethering wifi, Anda bisa mendapatkan iPhone yang telah ke
iOS 6
atas (dan telah diaturuse for developments
denganxcode
), mengaturnya untuk meniru profil jaringan yang diinginkan, menghubungkan perangkat Android Anda ke hotspot-nya.sumber
Pembaruan untuk Android Studio v 1.5 atau lebih tinggi
Seperti @LouMorda disebutkan dalam komentar di bawah ini bahwa
Emulator
tab yang disebutkan dalam pos asli telah dihapus di Android Studio v 1.5.Sekarang Mereka telah menempatkan pengaturan ini di Pengaturan Simulator di
AVD Manager
.Untuk mengakses pengaturan ini:
Tools -> Android -> AVD Manager
Edit AVD
tombol (ikon pensil)Network Settings
dapat diakses setelah menekanShow Advanced Settings
tombolBerikut ini screenshot bagaimana tampilannya:
Posting Asli
Untuk siapa saja yang menggunakan Android Studio IDE:
Run -> Edit Configurations
Android Application -> [Your App]
Emulator
tabNetwork Speed
danNetwork Latency
untuk mensimulasikan kecepatan dan latensi yang berbeda, dllAtau, Anda dapat memasukkan berbagai argumen di
Additional command line options
bidang teks seperti yang disebutkan dalam jawaban @ inazaruk.Tangkapan layar di bawah ini menjelaskan bagaimana
Run Configuration
tampilan layar ini :Saya tahu ini agak terlambat untuk menjawab pertanyaan ini, tetapi saya harap ini membantu orang lain menghadapi masalah serupa!
Sunting
Bagi siapa saja yang menggunakan gerhana, lihat jawaban @ Abhi di bawah ini.
sumber
Saya tahu ini pertanyaan lama tapi ...
Beberapa telepon saat ini memiliki pengaturan untuk memanfaatkan 2G saja. Ini sempurna untuk mensimulasikan internet lambat pada perangkat nyata.
sumber
Bertahun-tahun lalu, hei, aku akan menggunakan metode yang sangat mudah dengan Genymotion.
Unduh percobaan gratis Charles: http://www.charlesproxy.com/download/
Pasang itu
Klik
Proxy -> Throttle Settings
Siapkan kecepatan HTTP throttled Anda
Tutup jendela itu
Klik
Proxy -> Throttling
untuk mengaktifkan throttleBuka emulator Genymotion
Buka pengaturan wifi
Tekan lama koneksi wifi yang diaktifkan
Klik
Modify Network
Klik
Show Advanced Options
Setel
Proxy
keManual
Setel
Proxy hostname
ke10.0.3.2
Setel
Port
ke8888
Klik
Save
Dan sekarang jaringan Anda akan dibatasi!
sumber
Anda juga dapat menguji konektivitas internet yang lambat pada perangkat android asli:
Diuji dengan Samsung Galaxy S8 + Android 8.0.0
Buka Pengaturan -> Koneksi -> Jaringan Seluler -> dan di bawah mode jaringan Anda dapat memilih untuk hanya menggunakan koneksi 2G atau 3G
sumber
Saya punya satu strategi untuk menyelesaikan masalah Anda. Anda dapat menggunakan aplikasi proksi untuk memodifikasi atau memantau status internet Anda. misalnya, Charles .
Anda harus mengubah konfigurasi default Charles seperti gambar berikut yang saya posting.
Dan akhirnya, Anda akan menemukan status bersih telah dibentuk menjadi kecepatan yang lebih rendah.
sumber
Cara mudah untuk menguji aplikasi Anda dengan koneksi rendah / buruk di emulator:
Buka Jalankan > Jalankan konfigurasi , pilih Aplikasi Android Anda , dan di sana pergi ke tab Target . Lihatlah parameter peluncuran Emulator . Di sini, Anda dapat dengan mudah memodifikasi Kecepatan Jaringan dan Latensi Jaringan.
sumber
Ada cara sederhana untuk menguji kecepatan rendah pada perangkat nyata yang tampaknya telah diabaikan. Itu memang membutuhkan koneksi jaringan Mac dan ethernet (atau kabel lainnya).
Aktifkan berbagi Wifi di Mac, ubah komputer Anda menjadi hotspot Wifi, sambungkan perangkat Anda ke ini. Gunakan Netlimiter / Charles Proxy atau Network Link Conditioner (yang mungkin sudah Anda instal) untuk mengontrol kecepatan.
Untuk detail lebih lanjut dan untuk memahami kecepatan seperti apa yang harus Anda uji saat check out: http://opensignal.com/blog/2016/02/05/go-slow-how-why-to-test-apps-on-poor -koneksi /
sumber
Di Android Studio, saat menjalankan emulator:
1- Tekan tombol pengaturan di bagian bawah bilah samping emulator
2- Pergi ke Seluler
3- Setel Jenis Jaringan
sumber
Facebook membuat sesuatu yang disebut Augmented Traffic Control . Ringkasan singkat dari halaman GitHub mereka:
Anda dapat menemukannya di sini di GitHub: https://github.com/facebook/augmented-traffic-control
Mereka juga telah menulis posting blog tentang hal itu: https://code.facebook.com/posts/1561127100804165/augmented-traffic-control-a-tool-to-simulate-network-conditions/
sumber
Saya terkejut tidak ada yang menyebutkan ini. Anda dapat menambatkan melalui Bluetooth, dan memisahkannya sepuluh + meter (atau kurang dengan rintangan). Anda punya nyata koneksi yang buruk. Tidak ada microwave, tidak ada lift, tidak ada perangkat lunak yang diperlukan.
sumber
Atau pada perangkat yang sebenarnya Anda dapat pergi ke Pengaturan -> Jaringan Seluler -> Jenis jaringan yang disukai dan memilih yang paling lambat yang tersedia ... Tentu saja ini sangat terbatas, tetapi untuk beberapa tujuan pengujian mungkin cukup.
sumber
UPDATE di Android studio AVD:
Tidak ada gelombang mikro atau lift :)
sumber
untuk dan pengguna mac OS Anda dapat menggunakan Network Link Conditioner yang dapat diunduh dari apple. atur sebagai AP di mac dan semua divices dapat menghubungkannya.
Anda dapat menggunakan alat open source Facebook ATC http://facebook.github.io/augmented-traffic-control/
sumber
Apakah Anda ingin menguji apakah tidak ada koneksi jaringan, atau hanya koneksi jaringan yang lambat? Jika yang pertama, Anda dapat pergi ke
Settings > Wireless & networks > Airplane mode
dan mengaktifkan mode Pesawat. Itu akan memungkinkan Anda menguji tidak tersedianya jaringan pada perangkat yang sebenarnya.sumber
Buka Jalankan> Jalankan konfigurasi, pilih Aplikasi Android Anda, dan di sana pergi ke tab Target. Lakukan perubahan seperti yang ditunjukkan pada gambar.
sumber
Saya berjuang dengan masalah ini selama setengah hari, akhirnya saya sampai pada solusi ini:
Pengujian pada perangkat nyata tidak masuk akal secara keseluruhan karena Anda harus melalui banyak hal untuk membuatnya berfungsi. Satu-satunya cara logis untuk mencapai pengujian nyata adalah membuat ponsel Anda terhubung ke jaringan seluler berkualitas rendah, seperti EDGE, jika perusahaan telepon Anda menyediakannya. Anda dapat mencoba melakukan ini dengan memutar nomor
*#*#4636#*#*
di aplikasi teleponEmulator Android asli terlalu lambat untuk pengujian dan tidak mencapai lebih dari solusi di atas.
Cara terbaik untuk melakukannya adalah menggunakan Genymotion . Ini adalah emulator Android dengan kinerja yang jauh lebih baik daripada AVD asli dan versi untuk penggunaan pribadi gratis.
Setelah Anda membuat perangkat virtual di Genymotion, ikuti saja tutorial ini untuk menetapkan proxy untuk perangkat tersebut.
Jalankan server proxy pada mesin host Anda yang mensimulasikan kondisi jaringan yang buruk, seperti Crapify atau Toxiproxy (saya hanya menguji yang sebelumnya) dan Anda siap melakukannya.
Memperbarui:
Saya baru sadar Anda dapat memilih strategi yang sama dengan perangkat nyata juga. Saya merasa seperti orang bodoh karena tidak menyadarinya lebih awal. Mulai saja proxy Crapify di komputer Anda, atur proxy ponsel Anda ke alamat lokal komputer Anda dan voila, Anda punya internet jelek di ponsel Anda.
sumber
seperti yang disarankan oleh @VicVu Charles (atau alat proxy lainnya) adalah cara yang lebih mudah. Tetapi saya ingin menambahkan bahwa Anda dapat melakukan ini dengan perangkat Anda juga, bukan hanya genymotion atau emulator lainnya. Prosesnya akan sama:
Ubah pengaturan wifi perangkat / emulator Anda untuk menggunakan proxy manual. Dan kemudian Set Proxy hostname & port a. atur nama host sebagai ip sistem Anda (dapatkan ip pc / mac Anda menggunakan ifconfig / ifconfig) b. atur nomor port dari genymotion (periksa pengaturan proxy di charles)
PS: Perangkat / emulator Anda HARUS menggunakan wifi yang sama karena ip yang Anda gunakan kemungkinan besar akan menjadi ip pribadi.
sumber
Buka terminal di Android Studio dan Pergi ke ../../Android/sdk/tools. executable 'emulator' harus tersedia di sini.
Jalankan ./emulator -netdelay "delay_in_millis" -avd "emulator_device_name"
Mis: ./emulator -netdelay 60000 -avd Nexus_5_API_21
Sekarang bangun aplikasi Anda dan instal di emulator.
Pastikan Anda memiliki perubahan kode di aplikasi yang menetapkan batas waktu untuk permintaan Anda dan menanganinya.
sumber
Cukup buka monitor perangkat Android dari studio Android, lalu DDMS -> Kontrol Emulator. Akan ada properti Kecepatan dan Latensi.
sumber
Saya menemukan netlimiter4 menjadi solusi terbaik untuk pelambatan data ke emulator. Ini memberikan kontrol granular melalui gui yang layak dan memberi Anda umpan balik grafis pada throughput data untuk setiap proses. Saat ini dalam versi beta gratis. tangkapan layar
http://www.netlimiter.com/products/nl4
Ada aplikasi yang tersedia di play store untuk melambat ke perangkat yang sebenarnya tetapi mereka membutuhkan root (saya tidak bisa memberikan saran mengenai seberapa baik mereka bekerja, jika sama sekali - YMMV.)
mencari bradybound di play store, saya tidak dapat memposting lebih dari satu tautan ..
sumber
Sudahkah Anda mencoba ini? Pengaturan - Jaringan - Lainnya - Jaringan Seluler - Mode jaringan - Pilih jaringan yang disukai (2G misalnya).
Metode lain yang saya gunakan disebutkan di atas. Terhubung melalui hot spot iPhone. Semoga ini membantu.
sumber
Saya menggunakan proksi mitmproxy HTTPS. https://mitmproxy.org/
Mitmproxy adalah aplikasi proxy sumber terbuka yang memungkinkan memotong koneksi HTTP dan HTTPS antara klien HTTP (S) apa pun. Memungkinkan untuk memantau, menangkap, dan mengubah koneksi ini secara realtime. Ubah permintaan, respons, tajuk, ... Selain itu, Anda dapat mencegat berbagai permintaan.
misal response_delay.py :
Kemudian, menjalankan komentar ini akan menunda semua respons dari server:
Anda dapat menemukan Tutorial sederhana di sini .
Anda dapat menemukan contoh skrip lain di sini .
sumber
Posting yang sangat lama tetapi saya akan menambahkan dua sen saya. Saya sudah SANGAT senang dengan produk perangkat keras ini ( https://apposite-tech.com/products/linktropy-mini/ ) yang telah memungkinkan kami untuk mensimulasikan banyak kondisi dunia nyata. Untuk waktu yang lama kami memiliki tantangan mengatasi berbagai hal yang akan bekerja di emulator atau dengan mode pesawat.
Kami memiliki beberapa pengaturan profil yang berbeda dari konektivitas nol ke berbagai tahap konektivitas marginal, dengan berbagai tingkat latensi, kehilangan paket, dan kesalahan bit. Hal yang hebat tentang itu adalah kita dapat mengubahnya dengan cepat tanpa harus meluncurkan ulang aplikasi dalam sebuah emulator. Harga sepenuhnya layak untuk toko kami, dan itu mudah digunakan.
sumber
Saya perlu membatasi internet rendah di perangkat AndroidTV asli dan berdasarkan apa yang saya baca, solusi yang paling cocok adalah membatasi akses internet langsung di router saya.
Pergi ke pengaturan router (secara lokal itu seperti 192.168.0.1) -> mengatur server DHCP (jika tidak berjalan) -> pilih alamat IP perangkat dan atur batasannya;
sumber