2025-05-28
Appium基础
00
请注意,本文编写于 206 天前,最后修改于 157 天前,其中某些信息可能已经过时。

目录

前提
ADB简介(https://developer.android.com/tools/adb?hl=zh-cn)
1. 设备连接与查看(出处叨叨软件测试)
1.adb devices -l:手机与电脑有线连接,了解哪些设备实例已连接到 adb 服务器
2.adb 通过WLAN调试(Android 10及更低版本,需要借助USB)
3. WiFi调试(Android 11及更高版本,无需借助USB)
2. 应用管理
3. 文件传输
4. 调试与系统信息
5. 重启/控制设备

前提

  • 开启安卓机的开发者权限并开启USB调试
  • 电脑adb环境配置正确

ADB简介(https://developer.android.com/tools/adb?hl=zh-cn

Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作,例如安装和调试应用。adb 提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:

  • 客户端:用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
  • 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
  • 服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

1. 设备连接与查看(出处叨叨软件测试

1.adb devices -l:手机与电脑有线连接,了解哪些设备实例已连接到 adb 服务器

1.手机开启开发者选项和USB调试模式(同常开启方式:在【关于手机】连续点击7次【版本号】) 2.USB连接线和各个接口正常(个别三方数据线仅支持充电,不支持调试) 3.adb驱动状态正常。

image.png

字段含义
27181FDH300329-设备的序列号(serial number),唯一标识 Android 设备
device-当前设备状态常见值:device(正常连接)、unauthorized(未授权)、offline(断开)
usb:338690048X设备的 USB 接口标识
product:panther设备产品代码名(对应特定硬件配置)
model:Pixel_7设备型号
device:panther内部设备名称,常与 product 相同
transport_id:2ADB 内部使用的传输通道 ID,用于多设备操作(可用 -t 选择设备)

2.adb 通过WLAN调试(Android 10及更低版本,需要借助USB)

Android 10及更低的版本,必须通过USB连线后,才能实现同一WLAN下无线调试

  1. 手机和电脑在同一WiFi下
  2. 手机开启开发者模式与USB调试模式,必须通过USB连接电脑,并可以使用,adb devices -l查看到设备
  3. 设置手机监听,adb tcpip 5555(让 USB 连接的设备监听 5555 端口(Wi-Fi 模式))
  4. 拔掉usb线,找到手机IP地址
  5. 通过IP连接到手机 adb connect ip (默认端口:5555)
  6. adb devices -l 命令查看。

image.png

Python
# 断开连接 $ adb disconnect # 重连 $ adb connect # 如果统一 WLAN 下,adb connect 失败后,可重置 adb,再次连接 $ adb kill-server $ adb connect

3. WiFi调试(Android 11及更高版本,无需借助USB)

从Android 11开始支持ADB以无线方式连接手机调试,可以彻底摆脱USB线

  1. 手机和电脑连接在同一wifi下
  2. SDK版本要求:adb --version >= 30.0.0
  3. 手机启用开发者模式和无线调试模式
  4. 允许无线调试后,选择使用配对码配对。记下显示的配对吗、IP地址和端口号如下

image.png 5. 运行 adb pair ip:port ,使用第四步中的IP地址和端口号;

  1. 根据提示,输入第三步中的配对码,系统会显示一条消息,(如上图所示的已配对设备)表明你的设备已配对成功。
  2. 再运行 adb connect ip

adb pair ip:pairing_port:这是 Android 11 及以上支持的 Wi-Fi 调试配对机制。此命令是:

  • 一次性配对步骤
  • 使用临时端口(如 35319),35319 是 临时的配对端口,不是 ADB 正常通信的端口
  • 需要你在手机开发者选项中点击“无线调试”并显示配对码
  • 一旦你配对成功,ADB 就获得了连接该设备的 永久权限。
    adb connect <ip>:<adb_port>
  • 这个是实际的 ADB 通信端口,默认端口为 5555
  • 如果使用 adb connect <ip>:<pairing_port>会报错failed to connect to '192.168.3.52:43137': Connection refused

2. 应用管理

命令说明
adb install xxx.apk安装 APK 到设备
adb install -r xxx.apk覆盖安装(retain data)
adb uninstall <包名>卸载应用
adb shell pm list packages查看所有已安装包名
adb shell pm list packages -3仅列出第三方应用
adb shell pm path <包名>查看应用安装路径
adb shell monkey -p 包名 -v 100压力测试(monkey)

3. 文件传输

命令说明
adb push <本地路径> <手机路径>上传文件到设备
adb pull <手机路径> <本地路径>下载设备文件到本地
adb shell ls /sdcard/查看设备文件

4. 调试与系统信息

命令说明
adb logcat实时查看设备日志
adb shell top查看进程状态
adb shell dumpsys输出系统服务信息(包括 activity, window 等)
adb shell screencap -p /sdcard/screen.png截图
adb pull /sdcard/screen.png下载截图
adb shell rm 路径/文件名删除文件

相关信息

这里着重讲解一下命令adb shell dumpsys

  • adb shell dumpsys window | grep -E 'mCurrentFocus|mFocusedApp'获取当前页的Activity:

image.png

  • adb shell monkey -p com.zkteco.zkbiosec -vvv 1对包名为 com.citiccard.mobilebank 的应用发起 1 个伪随机用户事件,并输出详细日志;包含APP首个Activity image.png
  • adb shell cmd package resolve-activity --brief com.zkteco.zkbiosec | tail -n 1:获取APP启动页Activity。

image.png

5. 重启/控制设备

命令说明
adb reboot重启设备
adb -s device1 reboot如果一台电脑连接多台手机,具体指定哪台手机重启需要指定设备号
adb shell reboot -p关机命令
adb reboot bootloader重启到 bootloader
adb reboot recovery重启到 recovery 模式
adb shell am force-stop <包名>强制停止应用
adb shell am start -n 包名/Activity路径启动某个 Activity
adb shell进入设备 shell 模式,允许你在电脑上通过命令行来操作设备
adb root获取 root 权限(前提设备已 root)
adb bugreport导出完整的 bug 报告
adb forward tcp:6100 tcp:7100设置端口转发

本文作者:精卫

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!