看了一下网络上翻译的sync.txt有点生硬。自己看了一遍原版的,做一下整理总结。
注:网上的翻译文章是“《MonkeyRunner源码剖析》ADB协议及服务: ADB协议概览SYNC.TXT翻译参考”。
同步模式
adb通信有普通模式和同步模式,在普通模式下给adb服务发送“sync:”指令后,adb服务以普通模式的协议答复“OKAY”或者“FAIL”,然后,adb和客户端之间的交互就进入同步模式。
接下来,sync.txt中表达了这么一个意思:进入同步模式后呢,adb服务和客户端之间交互接下来就是频繁地交互8字节包,也就是:你丢8字节给我,我回8字节给你。sync.txt中戏称这你一来我往为:同步请求和同步应答。而这8字节包的格式:4字节命令+4字节长度(小端整数)。
而实际使用中,压根没看到什么你来我往的8字节包,而是4字节标识+内容数据的方式。其中内容数据=内容长度+数据。
例如:
请求发出:LIST+长度+内容
服务应答:DENT+文件模型值+文件长度值+文件时间+文件名长度+文件名
所以,不要sync.txt给误导了。
其中,命令四个字节就是四个字符而已,目前只有4个,分别是:
LIST 列举文件夹中的文件
RECV 收取设备(一般来说就是手机啦)上的一个文件
SEND 发送一个文件到设备里面去
STAT 估计是搞一个文件的属性下来
可以根据需要使用以上四个命令。