adb 传输文件的速度非常慢

Adb transfers file with a very slow speed

我的机器上的 adb 有问题,它在 OSX Yosemite 上运行。我试图 adb install 一个 44mb 的 apk,安装 apk 花了 5 分钟。我试图缩小问题范围,似乎 adb push 与此有关。

我用 adb push -p src dest 测试了传输进度。对于小文件传输效果很好,传输速率约为 1300KB/s。传输大文件时会变慢很多,大约120KB/s的传输速率。传输总是在字节 8388608/total 处减慢。

我在我同事的 Mac 使用相同的设备和相同的 USB 数据线使用 OSX Yosemite 测试了 adb push,它工作正常。我不知道是什么原因导致的问题,有人可以帮助我吗?

尝试使用 Wi-Fi。可能是您的 USB 数据线速度较慢,或者您的 phone 不支持高速文件传输。看:How can I connect to Android with ADB over TCP?。当我发送 2 GB 的 GTA SA 时,我有 30-35 mbps。

如果您没有 Wi-Fi,您可以在计算机中使用来自 Android 的网络共享。

根据Performance Tuning the Network Stack on Mac OS X Part 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

我遇到了同样的问题,通过上面的设置解决了

我一直在努力解决这个问题,然后看到一个建议,只在主机上启动一个网络服务器,让你的 android device/emulator 只下载 apk。

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

然后,在 android 设备中,我只需打开浏览器 http://<host_ip>:8000/ - 它会在几秒钟内下载。