Adb передает файл с очень низкой скоростью
У меня проблема с adb на моей машине, она работает на OSX Yosemite. Я пытался выполнить adb install
44 МБ apk и потребовалось 5 минут для установки apk. Я пытаюсь сузить проблему, и кажется, что adb push
имеет какое-то отношение к этому.
Я проверил с adb push -p src dest
, чтобы увидеть ход передачи. Передача отлично работает для небольших файлов, что обеспечивает скорость передачи данных 1300 КБ/с. Он значительно замедляет передачу больших файлов, скорость передачи данных составляет 120 КБ/с. Передача всегда замедляется на байт 8388608/total.
Я тестировал adb push с тем же устройством и тем же USB-кабелем на моем компьютере Mac, используя OSX Yosemite, и он отлично работает. Я не знаю, что вызывает проблему, может кто-нибудь мне помочь?
Ответы
Ответ 1
Согласно Производительность Настройка сетевого стека на Mac OS X Часть 2,
отредактируйте файл /etc/sysctl.conf
следующим образом и перезагрузите компьютер.
kern.ipc.somaxconn=2048
net.inet.tcp.rfc1323=1
net.inet.tcp.win_scale_factor=4
net.inet.tcp.sendspace=1042560
net.inet.tcp.recvspace=1042560
net.inet.tcp.mssdflt=1448
net.inet.tcp.v6mssdflt=1412
net.inet.tcp.msl=15000
net.inet.tcp.always_keepalive=0
net.inet.tcp.delayed_ack=3
net.inet.tcp.slowstart_flightsize=20
net.inet.tcp.local_slowstart_flightsize=9
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.icmp.icmplim=50
Я столкнулся с той же проблемой и решил ее с помощью указанных выше настроек.
Ответ 2
Я боролся с этим, затем увидел предложение просто запустить веб-сервер на главной машине и позволить вашему устройству/эмулятору Android просто загрузить apk.
cd build/outputs/apk/
python -m SimpleHTTPServer 8000
Затем в устройстве Android я просто открываю браузер для http://<host_ip>:8000/
- он загружается за считанные секунды.
Ответ 3
Попробуйте использовать Wi-Fi. Возможно, ваш USB-кабель медленный или ваш телефон не поддерживает быструю отправку. Посмотрите: Как подключиться к Android с ADB через TCP?. У меня было 30-35 Мбит/с, когда я отправил 2 ГБ GTA Sa.
Если у вас нет Wi-Fi, вы можете использовать Tethring на Android или на компьютере.