Adb передает файл с очень медленной скоростью

У меня проблема с adb на моей машине, она работает на OSX Yosemite. Я пытался adb install установить 44-мегабайтный apk, и установка apk заняла 5 минут. Я пытаюсь сузить проблему, и кажется, что adb push имеет к этому какое-то отношение.

Я проверил с adb push -p src dest, чтобы увидеть ход передачи. Передача работает нормально для небольших файлов, оставляя скорость передачи около 1300 КБ/с. Он сильно тормозит при передаче больших файлов, скорость передачи около 120 КБ/с. Передача всегда тормозит на байте 8388608/всего.

Я протестировал adb push с тем же устройством и тем же USB-кабелем на Mac моего коллеги с OSX Yosemite, и он работает нормально. Я не знаю, в чем причина проблемы, может ли кто-нибудь мне помочь?


person esam091    schedule 04.02.2015    source источник
comment
нашел решение этого? у меня точно такая же проблема   -  person dwitz    schedule 26.02.2015
comment
пока нет к сожалению   -  person esam091    schedule 02.03.2015
comment
то же самое. В моем случае сначала пошло, а потом заглохло. Я отменил передачу и перезапустил ее и с самого начала заявил на медленной скорости.   -  person netskink    schedule 25.04.2015


Ответы (3)


Согласно Настройка производительности сетевого стека в 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

Я столкнулся с той же проблемой и решил ее с помощью вышеуказанных настроек.

person sumio    schedule 03.09.2015
comment
Спасибо, загрузка 40-мегабайтного файла теперь занимает всего 30 секунд вместо 5 минут. - person esam091; 07.09.2015
comment
очень жаль, что это ничего не делает на 10.12 - person oarfish; 11.11.2017
comment
Изменить мой /etc/sysctl.conf файл какого устройства? Файл не существует как на моем устройстве Mac, так и на устройстве Android. MacOS10.13.6 (17G65) / Android 6.0.1 - person pea3nut; 26.10.2018
comment
@pea3nut Вы можете создать файл на своем Mac, если он не существует. См. man sysctl.conf. - person sumio; 30.10.2018

Я боролся с этим, а затем увидел предложение просто запустить веб-сервер на хост-компьютере и позволить вашему устройству / эмулятору Android просто загрузить apk.

cd build/outputs/apk/
python -m SimpleHTTPServer 8000

Затем в устройстве Android я просто открываю браузер на http://<host_ip>:8000/ - он загружается за секунды.

person Marcel Chastain    schedule 12.12.2016

Попробуйте использовать Wi-Fi. Возможно, ваш USB-кабель медленный или ваш телефон не поддерживает быструю высокоскоростную передачу файлов. Посмотрите: Как я могу подключиться к Android с помощью ADB через TCP ?. У меня было 30-35 мбит, когда я отправлял 2 Гб GTA SA.

Если у вас нет Wi-Fi, вы можете использовать модем с Android на компьютере.

person barwnikk    schedule 14.07.2015
comment
Я не думаю, что проблема в кабеле, потому что те же кабели были протестированы на другом компьютере, и они работают нормально. Пытался установить через Wi-Fi, но в прошлый раз это было ужасно медленно, возможно, я когда-нибудь попробую использовать другую сеть Wi-Fi. - person esam091; 14.07.2015