转自:https://blog.youkuaiyun.com/qq_40301016/article/details/81205413
一、什么是adb
全称是:Android Debug Bridge,即安卓调试桥,是安卓sdk的一个工具;
adb的B/S结构
adb工具是一个客户端-服务器的应用程序,包含三个方面:
1. client(客户端):运行在PC上。其实就是shell,用来发送命令给Server。发送命令时,首先检测PC上有没有启动Server,如果后台没有Server,则自动启动一个Server,然后将命令发送到Server,并不关心命令发送过去以后会怎样。
2. daemon(守护进程):一个以后台进程的形式运行于模拟器或设备上的守护程序(daemon)。
3. server(服务器端):在PC机上作为后台进程运行的服务器。该服务器负责管理客户端与运行模拟器或设备上的adb守护程序(daemon)之间的通信。
ADB Server检测USB接口何时连接或者移除设备,管理着adb client和adb daemon的通信。它维护着一个“已连接的设备的链表”,并且为每一个设备标记了一个状态:offline,bootloader,recovery或者online;Server一直在做一些循环和等待,以协调client和Server还有daemon之间的通信。
三者之间的通信
Daemon<—>Server<—>Client
当启动adb客户端时,客户端首先检测adb服务端进程是否运行,如果没有运行,则启动服务端。当服务端启动时,它会绑定到本地的TCP5037端口,并且监听从adb客户端发来的命令——所有的adb客户端都使用5037端口与adb服务端通信。
接下来服务端与所有正在运行的模拟器或手机连接。它通过扫描5555-5585之间的奇数号端口来搜索模拟器或手机,一旦发现adb守护进程,就通过此端口进行连接。需要说明的是,每一个模拟器或手机使用一对有序的端口,偶数号端口用于控制台连接,奇数号端口用于adb连接,例如:
Emulator 1, console: 5554
Emulator 1, adb: 5555
Emulator 2, console: 5556
Emulator 2, adb: 5557 ...
即如果模拟器与adb在5555端口连接,则其与控制台的连接就是5554端口。
当服务端与所有的模拟器建立连接之后,就可以使用adb命令来控制或者访问了。因为服务端管理着连接并且可以接收到从多个adb客户端的命令,所以可以从任何一个客户端或脚本来控制任何模拟器或手机设备。
如果是在Eclipse并且安装了ADT插件的环境下开发Android应用程序,就不需要从命令行使用adb了,ADT插件已经提供了透明的集成。不过,还是可以在调试等需要的时候直接使用adb。
二、如何使用ADB
上文已经提到,adb是sdk的一个工具,所以我们首先要下载adb或者安装sdk后找到adb工具。
因为大多数人使用adb是用于android的debug调试,我们以android studio为例:
首先我们要找到sdk的下载位置:
1、打开 android studio
2、file ——>setting
3、按图中1的目录找到android sdk
4、复制图中2位置的路径,打开此路径中的platform-tools文件夹
5.我们可以看到adb.exe,复制此时的路径,我们开始配置环境变量:
6、右键计算机——>属性——>高级系统设置——>环境变量——>选中path——>编辑
7、新建——>然后把路径复制进去,确定
8、打开命令行窗口,输入adb version如果显示版本号就说明配置环境变量完成
到此adb的环境变量就配置好了
下面我尝试使用adb命令
在手机上:设置——>更多设置——>开发者选项——>打开开发者选项和USB开关
手机数据线连接电脑
在电脑上打开命令行窗口输入adb命令即可使用了
adb命令大家可以参考下面链接文章
adb命令大全
————————————————
版权声明:本文为优快云博主「和而歌」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_40301016/article/details/81205413