项目场景:

系统:Ubuntu 16.04.7LTS

通过Ubuntu与安卓的板子进行adb连接


问题描述

一开始使用Ubuntu自带的ADB进行连接,挺稳定的,就是push传输速度有点慢(通过WIFI连接,峰值速度只有200kb/s)
针对push传输慢的问题,网上的回答是在1.0.32以及之前的版本传输速度是很慢,可能在adb1.0.36之后,增加了传输packet的包大小机制,使adb传输速度大增。


解决方案:

升级ADB

网上关于升级adb的方法很多,首先是采用apt-get的,可以选择

sudo apt-get install adb

sudo apt-get install android-tools-adb

这两种方法的区别暂时不清楚,安装adb后会在/usr/lib下生成一个android-sdk/platform-tools目录,并且/usr/bin中的adb会指向这个目录,而安装android-tools-adb则是在/usr/bin下直接安装
使用这两种方法安装的abd版本都是1.0.32,显然都不是最新的,然后还有一种更通用的方法,直接下载platform-tools的安装包
官方的下载地址为

Windwos:
https://dl.google.com/android/repository/platform-tools-latest-windows.zip Mac:
https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
Linux:
https://dl.google.com/android/repository/platform-tools-latest-linux.zip

这个链接始终指向最新版本的工具
如果想下载历史版本的话
可以通过修改下载连接
修改的规则为

下载链接:https://dl.google.com/android/repository/platform-tools_r[版本]-[系统].zip
版本:platform-tools的版本名称(33.0.1,33.0.0...)
系统:Windwos→windows,Mac→darwin,linux→linux
例如:https://dl.google.com/android/repository/platform-tools_r33.0.1-windows.zip
版本订修记录可查阅地址:https://developer.android.google.cn/studio/releases/platform-tools

要是官方网站下载不了,可以通过https://www.androiddevtools.cn/下的Platform-tools中选择对应的版本进行下载,不过这个网站下载的版本可能偏旧

下载好安装包后解压,进入到platform-tools目录下,使用命令

sudo cp adb /usr/bin
sudo chmod 755 adb
sudo cp fastboot /usr/bin
sudo chmod 755 fastboot

将adb还有fastboot拷贝到系统目录下,运行
adb version命令,如果显示了版本号,则安装成功

adb server is out of date

 我这里安装了官方最新的1.0.41版本,通过push命令,速度确实有了质的飞跃,但是也引发了第二个问题,使用adb命令的时候,会偶发性出现adb server is out of date. killing的错误
stackoverflow上给出的解决方案是使用最新的adb版本,但我的adb已经是最新的1.0.41了。
到后面adb又弹出一条错误
adb server version (32) doesn't match this client(41)
原来问题出现在client(Ubuntu)和server端(Android)的adb版本不匹配,当前版本过高引起的。解决方法就是使用相匹配的版本。在Ubuntu端通过命令

adb shell adb version

查看到安卓端的adb版本确实为1.0.32,通过降级adb,后续就能稳定连接了,就是速度恢复成原来那么慢了,没办法,毕竟服务端的版本太老了