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

阅读: 评论:0

adb通信协议分析以及实现(⼀)
写在前⾯:
因为⾃⼰的项⽬需要和安卓的智能设备通信,因此需要了解adb协议,但是实在是看不进去,只好⼀个字⼀个字的敲⼀遍来帮助⾃⼰理解这篇⽂章。
⼀.为什么要写这⼀系列⽂章
商业街设计理念⾕歌提供的⼯具很好很强⼤,但是缺点⾮常多。⾸先,对中⽂的⽀持⾮常差,abd的各种命令在处理带有中⽂路径的时候显得很⽆⼒。还有就是adb这个⼯具本⾝就存在巨⼤的缺陷。现在的⼿机助⼿⾥⾯使⽤的adb都是经过修改的,最主要的修改就是adb的devices命令返回的设备序列号。这个就是我说的巨⼤的缺陷之⼀。还有就是使⽤adb的⽅式也不⽅便,需要启动⼀个adb进程,然后这个进程和adb的服务器进程通信。明明就是⼀个普通的socket通信,何必这么⿇烦启动⼀个额外进程,⾃⼰写⼀个也花不了多少时间,我仅仅⽤了500⾏代码就搞定了。但是要重写,就必须要了解adb的协议已经发送和接受的命令格式。
⼆.adb的⼯作原理
这⾥从表⾯上来说⼀下adb的⼯作原理。先看⼀下下⾯的图:
布里渊区
证券法论文上⾯的图分为两部分,第⼀部分完全是发⽣在电脑上的。其实就是⼀台电脑上的socket通信。⽽第⼆部分就是电脑和⼿机之间的socket通信了,这⾥解释⼀下这三个东西。
1)adb进程,当我们在执⾏任何命令的时候都会启动⼀个adb进程。⽐如adb devices。这⾥启动了⼀个adb进程,传递了⼀个命令⾏(devices)。这个进程执⾏完devices命令之后会退出。也就是说执⾏⼀个命令会启动⼀下adb进程,命令执⾏完之后adb进程就退出了。
2)adb服务进程。这个进程在电脑上最多只有⼀个。是⽤来接收adb发过来的命令的,必要的时候转发给⼿机的adbd进程。⽆论你电脑安装了多少个助⼿,也只会有启动⼀个。并且⼀般情况下,启动之后就会驻留,不会主动退出。正式由于这个服务进程有且最多只能有⼀个,所以现在所有的助⼿都在抢这个⼊⼝,谁把⾃⼰当成了服务进程,谁就有了很多权利。最⽆耻的莫过于360的⼿机助⼿。⼲掉别⼈,成就⾃⼰。⽽且还做很多龌龊的事情。这个进程可以当成是⼀个server,监听本地5037端⼝。
3)⼿机的adbd进程,adb服务进程接受到命令之后,⼤部分的命令都会转发给⼿机的这个进程,因为adb服务进程并不能完成⼯作,⽽是需要⼿机的进程来协同完成。这个就不需要太多的关注了。
三.adb的简要流程,这⾥以adb devices命令简单介绍
红框部分是有些命令需要⼿机端完成,所以需要把命令转发给⼿机端处理。adb分析以及实现(⼀):
adb通信协议以及实现(⼆):赛博电影
adb通信协议分析以及实现(三):
adb通信协议分析以及实现(四):
计算机应用研究>煤炭港口

本文发布于:2023-06-27 12:41:58,感谢您对本站的认可!

本文链接:https://patent.en369.cn/xueshu/136865.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:进程   命令   需要
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图