adb通信协议分析以及实现(一)

本文介绍了adb的工作原理,包括adb进程、adb服务进程和手机端的adbd进程。adb进程执行命令如'devices'时会启动并退出,而adb服务进程监听5037端口,处理来自adb进程的命令,并转发至手机。adb devices命令的流程中,部分操作需要手机端的adbd进程协助完成。作者通过分析adb协议,用500行代码实现了类似功能。
摘要由CSDN通过智能技术生成

写在前面:

      因为自己的iOS项目需要和安卓的智能设备通信,因此需要了解adb协议,但是实在是看不进去,只好一个字一个字的敲一遍来帮助自己理解这篇文章。

一.为什么要写这一系列文章

      谷歌提供的adb工具很好很强大,但是缺点非常多。首先,对中文的支持非常差,abd的各种命令在处理带有中文路径的时候显得很无力。还有就是adb这个工具本身就存在巨大的缺陷。现在的手机助手里面使用的adb都是经过修改的,最主要的修改就是adb的devices命令返回的设备序列号。这个就是我说的巨大的缺陷之一。还有就是使用adb的方式也不方便,需要启动一个adb进程,然后这个进程和adb的服务器进程通信。明明就是一个普通的socket通信,何必这么麻烦启动一个额外进程,自己写一个也花不了多少时间,我仅仅用了500行代码就搞定了。但是要重写,就必须要了解adb的协议已经发送和接受的命令格式。

二.adb的工作原理

这里从表面上来说一下adb的工作原理。先看一下下面的图:



上面的图分为两部分,第一部分完全是发生在电脑上的。其实就是一台电脑上的socket通信。而第二部分就是电脑和手机之间的socket通信了,这里解释一下这三个东西。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值