ADB 常用命令汇总
一.为什么要学习adb 命令
在测试过程中可以使用adb命令提高效率,节省时间
Adb的全称为Android Debug Bridge:android调试桥梁
可以在android sdk安装目录的platform-tools目录下找到adb工具
二.adb 释义
ADB是一个C/S架构的应用程序,由三部分组成:
(1.运行在pc端的adb client:
命令行程序”adb”用于从shell或脚本中运行adb命令。首先,“adb”程序尝试定位主机上的ADB服务器,如果找不到ADB服务器,“adb”程序自动启动一个ADB服务器。接下来,当设备的adbd和pc端的adb server建立连接后,adb client就可以向ADB servcer发送服务请求;
(2.运行在pc端的adb server:
ADB Server是运行在主机上的一个后台进程。它的作用在于检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止,ADB Server还需要将adb client的请求通过usb或者tcp的方式发送到对应的adbd上;
(3.运行在设备端的常驻进程adb demon (adbd):
程序“adbd”作为一个后台进程在Android设备或模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务;
三.adb端口
默认端口为5073
5037为adb默认端口,若5037端口被占用,则我们在使用Adb命令的时候会因为找不到设备而困扰
解决这种端口占用的问题思路都是一样的,三步走:
找到使用该端口的进程Pid;
C:\Windows\system32>netstat -aon|findstr 5037
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 3172
通过PID找到对应的进程名(便于定位,可以跳过);
C:\Windows\system32>tasklist /fi "PID eq 3172"
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
360MobileLink.exe 3172 Console 4 40,208 K
使用命令终止该命令的运行;
C:\Users\wwx229495>taskkill /pid 3172 /f
成功: 已终止 PID 为 3172 的进程
四.adb连接设备
1.(1.)当只有连接一个设备的时候,可以直接使用adb
(2)如果有多个设备/模拟器连接,则需要为命令指定目标设备
adb [-d|-e|-s]
-d | 指定当前唯一通过 USB 连接的 Android 设备为命令目标 |
---|---|
-e | 指定当前唯一运行的模拟器为命令目标 |
-s | 指定相应 serialNumber 号的设备/模拟器为命令目标 |
(3)在多个设备/模拟器连接的情况下较常用的是 -s 参数,serialNumber 可以通过 adb devices 命令获取。如:
C:\Users\ts>adb devices
List of devices attached
0000 device
这里的0000即为:serialNumber
如果你想看0000这个设备的屏幕分辨率
C:\Users\ts>adb -s 0000 shell wm size
Physical size: 1920x720
(1)启动 adb server 命令:
adb start-server
(2)停止 adb server 命令:
adb kill-server
(3)查看 adb 版本
C:\Users\ts>adb version
Android Debug Bridge version 1.0.32
(4)以 root 权限运行 adb
C:\Users\ts>adb root
adbd is already running as root
(有些手机 root 后也无法通过 adb root 命令让 adbd 以 root 权限执行,比如三星的部分机型,会提示 adbd cannot run as root in production builds,此时可以先安装 adbd Insecure,然后 adb root 试试。
相应地,如果要恢复 adbd 为非 root 权限的话,可以使用 adb unroot 命令。)
(5)指定 adb server 的网络端口
adb -P <port> start-server
(6)查询已连接设备/模拟器
List of devices attached
cf264b8f device
emulator-5554 device
10.129.164.6:5555 device
输出格式为 [serialNumber] [state],serialNumber 即我们常说的 SN,state 有如下几种:
|
offline | 表示设备未连接成功或无响应 |
---|---|
device | 设备已连接。注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到 adb,但启动完毕后系统才处于可操作状态 |
no device | 没有设备/模拟器连接 |
以上输出显示当前已经连接了三台设备/模拟器,cf264b8f、emulator-5554 和 10.129.164.6:5555 分别是它们的 SN。从 emulator-5554 这个名字可以看出它是一个 Android 模拟器,而 10.129.164.6:5555 这种形为 : 的 serialNumber 一般是无线连接的设备或 Genymotion 等第三方 Android 模拟器。
常见异常输出:
没有设备/模拟器连接成功
List of devices attached
设备/模拟器未连接到 adb 或无响应
List of devices attached
cf264b8f offline
五.USB 连接
1.通过 USB 连接来正常使用 adb 需要保证几点:
2.硬件状态正常
3.包括 Android 设备处于正常开机状态,USB 连接线和各种接口完好
4.Android 设备的开发者选项和 USB 调试模式已开启
5.设备驱动状态正常
这一点貌似在 Linux 和 Mac OS X 下不用操心,在 Windows 下有可能遇到需要安装驱动的情况,确认这一点可以右键「计算机」-「属性」,到「设备管理器」里查看相关设备上是否有黄色感叹号或问号,如果没有就说明驱动状态已经好了。否则可以下载一个手机助手类程序来安装驱动
6.通过 USB 线连接好电脑和设备后确认状态。
C:\Users\ts>adb devices
List of devices attached
0000 device
六.无线连接(需要借助 USB 线)
除了可以通过 USB 连接设备与电脑来使用 adb,也可以通过无线连接——虽然连接过程中也有需要使用 USB 的步骤,但是连接成功之后你的设备就可以在一定范围内摆脱 USB 连接线的限制啦!
操作步骤:
1.将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。
2.将设备与电脑通过 USB 线连接。
3.应确保连接成功(可运行 adb devices 看是否能列出该设备)。
4.让设备在 5555 端口监听 TCP/IP 连接:
adb tcpip 5555
七.断开 USB 连接
1.找到设备的 IP 地址
一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到,也可以使用下文里 查看设备信息 - IP 地址 一节里的方法用 adb 命令来查看。
2.通过 IP 地址连接设备
adb connect <device-ip-address>
这里的 就是上一步中找到的设备 IP 地址。
确认连接状态。
adb devices
<device-ip-address>:5555 device
说明连接成功。
3.如果连接不了,请确认 Android 设备与电脑是连接到了同一个 WiFi,然后再次执行 adb connect 那一步;
如果还是不行的话,通过 adb kill-server 重新启动 adb 然后从头再来一次试试。
4.断开无线连接
命令:
adb disconnect <device-ip-address>
无线连接(无需借助 USB 线)
注:需要 root 权限。
拓展:
上一节「无线连接(需要借助 USB 线)」是官方文档里介绍的方法,需要借助于 USB 数据线来实现无线连接。
既然我们想要实现无线连接,那能不能所有步骤下来都是无线的呢?答案是能的。
在 Android 设备上安装一个终端模拟器。
已经安装过的设备可以跳过此步。我使用的终端模拟器下载地址是:Terminal Emulator for Android Downloads
将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。
1.打开 Android 设备上的终端模拟器,在里面依次运行命令:
su
setprop service.adb.tcp.port 5555
2.找到 Android 设备的 IP 地址。
一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到,也可以使用下文里 查看设备信息 - IP 地址 一节里的方法用 adb 命令来查看。
在电脑上通过 adb 和 IP 地址连接 Android 设备。
adb connect <device-ip-address>
这里的 就是上一步中找到的设备 IP 地址。
如果能看到 connected to :5555 这样的输出则表示连接成功。
#节注一:
有的设备,比如小米 5S + MIUI 8.0 + Android 6.0.1 MXB48T,可能在第 5 步之前需要重启 adbd 服务,在设备的终端模拟器上运行:
restart adbd
如果 restart 无效,尝试以下命令:
stop adbd
start adbd
更多推荐
ADB常用命令汇总---基本用法
发布评论