ADB常用命令汇总---基本用法

编程知识 更新时间:2023-04-26 02:32:43

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常用命令汇总---基本用法

本文发布于:2023-04-19 18:43:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/ccedb1c0d646ffe2ad2d71bcd971eaf8.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:常用命令   ADB

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 88643文章数
  • 21573阅读数
  • 0评论数