什么是ADB?
ADB是Android Debug Bridge(安卓调试桥)的缩写,它是Android开发中使用频率比较高的一套调试工具,它是一种多功能的命令行工具,可让您与设备进行通信。可以帮助开发者调试Android设备或模拟器,获取设备信息,安装和卸载应用,并提供对Unix shell(可用来在设备上运行各种命令)的访问权限。
比如开发脚本、外挂、一切安卓端的应用都离不开它。当年安卓刚出来的时候,不像现在有界面,都是一些命令,那个时候没有这个东西。现在就方便多了,他们开发了ADB调试工具,我们就可以直接在电脑进行调试安卓设备里我们所写好的程序。
参考文章:<Android 调试桥>
学习目的
我学习ADB就是为了去开发脚本、手机群控、增加知识、研究等目的,像这种情况就需要对手机进行控制,我们就可以通过ADB把手机和电脑连接,再通过学习到的ADB命令代码去控制手机。控制手机当然不是手动控制的,而是通过CMD终端调用ADB命令,再用E语言开发的软件达成一个自动化的流程。
写这篇文章的目的更多是喜欢学习这类技术的一个导向,开个头,以后你想学那么就按照我下面提示的去学,因为用文字描述可能需要半个月也够呛能写完,更多是外行的简单了解。
如果想完成一系列的脚本落地到商业需要掌握:ADB、Autojs、JavaScript、易语言
参考文章:<ADB用法大全>
搭建ADB环境
- ADB下载
- 配置环境变量
adb下载
ADB软件可以百度下载,搜索关键词“ADB下载”就能随便找到ADB的安装包。你也可以按照我提供的链接进行下载。
地址:蓝奏云
密码:1552
我的建议直接使用环境变量adb,不管在那个盘符运行cmd都可以调用adb。
我们把ADB安装包放在D盘后,只需要运行终端后输入abd
即可调用了。
如果不设置环境变量,放在其他盘符就得运行cmd输入对应盘符后,再调用ADB。如下所示
D: cd D:\adb
环境变量
可以把ADB安装包放到任何盘符,我们在任何盘符运行终端adb命令都可以调用到ADB。
右键我的电脑>属性>高级系统设置>高级>环境变量
你也可以按win+R输入sysdm.cpl
进入到系统属性。
选择path点击编辑
点击新建,粘贴adb路径,点击确定
这样我们不管在那个盘符运行adb命令都是可以的了。
ADB手机连接配置
- 开发者选项
- USB调试
- USB安装
开发者选项
通常我们需要激活开发者选项,需要在版本号处连续点击8次,因为手机型号的不同,操作可能稍微有些差异。
打开USB调试
进入开发者选项中,找到USB调试选项并打开。有些手机型号还有USB安全模式,你也需要开启一下。如果你在公共环境下就不要开启了,因为开启这个就会有被获取个人信息的风险,自己调试的情况下打开就行。否则每次调试都会进行询问。
打开USB安装
在开发者选项中,找到USB安装选项并打开。
终端查询手机设备
打开CMD终端,输入如下命令,就可以查询到你电脑连接的安卓设备。
adb devices
如下图所示,输入此命令它会检测连接到你电脑的所有安卓设备,我的电脑有20个设备它也会对应显示出来。 其中R38MC开头的英文是每台手机的名称,device的意思是连接正常的意思。在下一章会详细说一下状态,以及常见错误。以及USB连接方法、wifi连接方法、局域网连接。
安卓连接电脑科普
一台电脑最多拥有128个USB端口,因为电脑本身自己也占用了一个USB,理论上一台电脑可以连接127台设备。但是由于电脑配置和稳定性等原因呢,通常每台电脑最多连接100台设备,这样会稳定一些。如果你想把连接的安卓设备投屏到电脑,理论稳定的情况下也就是20台左右,这个完全看你电脑配置了。投屏到电脑需要在手机端做安卓软件的开发调用ADB传输到电脑,后面会讲这个事情。连接多安卓的方法有USB拓展或者用主板机等方式达到100台。
连接设备管理
我们插入电脑USB设备后,就会第一时间去检查设备状态,那么就会去输入adb devices去查询,那么我们就可能遇见一些常见的错误,我在这里详细介绍。以及它输出内容的格式,是什么意思。
想熟练的掌握ADB用法,那么就在这个网址去学习。
学习网址:速查ADB用法大全
查询已连接的设备/模拟器
adb devices
adb devices
是一句查询连接设备的命令,英文翻译过来是“设备”的意思。输入后运行,就会查询我们电脑所连接的所有安卓设备信息。
输出示例
List of devices attached R38M60H8R6J device emulator-5554 device 10.129.164.6:5555 device
List of devices attached
:翻译过来就是“连接设备的列表”的意思,它只是一段提示文字,在这个列表下的内容才是你的设备列表,如果下面没有内容,那么就是没有任何设备连接。
我们运行adb devices命令后,它输出格式为[serialNumber] [state]
说点大白话就是,第一个是设备名字,第二个就是设备状态。
[serialNumber]
R38M60H8R6J
:这是手机的ID名称
[state]
device
:设备已连接的意思,device代表连接正常。但是还会出现以下几种状态。
offline
:它代表设备未连接成功或无响应。
no device
:代表没有设备连接/电脑没有连接任何安卓设备。
常见异常输出
常见异常1
如果没有任何设备或模拟器连接连接电脑,它会输出以下内容。通常这种提示,代表你没有插好设备,或者设备并没有连接USB。
List of devices attached
常见异常2
这种通常是你的安卓设备无响应/USB接触不良/模拟器没有连接到adb的意思,解决办法就是检查USB接口,再就是查看开发者模式是否自动关闭了,如果关闭了就去重新打开,它会在状态中提示offline状态。
List of devices attached R38M60H8R6J offline
连接手机方式
- USB连接
- wifi连接
- 群控云端
USB连接,通过USB的拓展连接到多台设备。USB数据线连接的速度最快,传输文件安装投屏等,传输的数据最快,响应也会很快。
Wifi连接,通过局域网(内网)进行连接。
群控连接:通过云服务器进行远程控制,我们只控制云端进行连接。这种需要开发安卓端程序,安装在需要控制的手机上,进行云端控制手机,我们只需要连接云端的服务端,就可以控制手机。
这里主要讲USB和wifi(局域网的连接方式)
USB连接的方式,在前面我们讲的插上数据线到电脑,开启开发者选项,开启USB调试,以及开启安全模式,就是一种USB的连接方式
Wifi连接方式,也需要先进行以下USB连接,让设备监听TCP/IP后,断开USB连接后,打开手机的wifi功能查看内网IP,就可以直接输入命令,进行控制手机。
wifi连接(局域网/内网)连接电脑方法:
只要和你的电脑连接的是同一个网络,那么设备就是在同一个局域网的,这里简单说一下wifi连接,因为在群控中,很少会用局域网连接,适合设备少的情况下,会用内网。因为wifi连接速度慢,内网传输受到路由器的限制。具体操作方法如下。
#查询USB设备列表 adb devices #监听TCP5555端口 adb tcpip 5555 #如果你要指定设备USB设备监听接口,请加-s如下 adb -s <手机名> tcpip 5555 #返回数据restarting in TCP mode port:5555代表监听成功,就可以拔下USB线了
拔下USB线,运行如下代码。
adb connect <device-ip-address>
我们现在并不知道手机的内网IP是多少,现在查看手机的WIfi信息就可以找内网IP是192.168.31.14
运行如下代码,就可以连接到手机了。
adb connect 192.168.31.14:5555
我的手机现在名字变成了 192.168.31.14:5555了,如果要操作什么,就可以-s 指定它即可。
ADB基本用法
ADB学习网址:ADB用法大全
命令语法
adb 命令的基本语法如下:
adb [-d|-e|-s <serialNumber>] <command>
如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s <serialNumber>]
这一部分,直接使用 adb <command>
。
参数 | 含义 |
---|---|
-d | 指定当前唯一通过 USB 连接的 Android 设备为命令目标 |
-e | 指定当前唯一运行的模拟器为命令目标 |
-s <serialNumber> |
指定相应 serialNumber 号的设备/模拟器为命令目标 |
在多个设备/模拟器连接的情况下较常用的是 -s <serialNumber>
参数,serialNumber 可以通过 adb devices
命令获取。如:
$ adb devices
List of devices attached
cf264b8f device
emulator-5554 device
10.129.164.6:5555 device
评论前必须登录!
立即登录 注册