首页  /  世界杯意大利  /  测试基础【ADB 命令攻略】多设备操控到端口优化

测试基础【ADB 命令攻略】多设备操控到端口优化

世界杯意大利 8512

ADB 命令使用指南 | 多设备操作详解

📌 命令语法基础

ADB 命令的标准格式:

adb [-d|-e|-s <设备序列号>] <具体指令>

👉 单设备场景:直接使用 adb <指令>

👉 多设备场景:必须通过参数指定目标设备!

🔍 指定设备的 3 种方式

参数

含义

-d

指定当前唯一通过 USB 连接的 Android 设备为命令目标

-e

指定当前唯一运行的模拟器为命令目标

-s

指定相应 serialNumber 号的设备/模拟器为命令目标

精准指定特定设备 (最常用)

📱 如何查看设备序列号?

执行命令: adb devices

输出格式:

固定格式:

[serialNumber] [state]

输出示例:

cf264123 device # USB连接的手机

demo-5555 device # demo示例

192.168.1.1:5555 device # 无线设备/第三方模拟器

无设备连接:

List of devices attached

💡 实战案例演示

场景 1️⃣:获取指定手机的屏幕分辨率

adb -s cf264123 shell wm size

场景 2️⃣:无线设备安装 APK

adb -s 192.168.1.1:5555 install test.apk

⚡ 注意事项

带 IP 地址的序列号(如 192.168.1.1:5555)通常表示:

通过 adb connect 连接的无线设备

Genymotion 等第三方模拟器

多设备操作忘记指定参数?ADB 会随机选择设备执行!

🔧 ADB 服务管理 | 版本查询技巧

▶️ 启动 ADB 服务

adb start-server

📌 小贴士:

99% 的场景无需手动执行!运行任意 adb 命令时会自动唤醒服务

适用场景:极少数情况出现 adb: no devices/emulators found 报错时,可尝试强制重启服务

adb-server端口:5037

🛑 终止 ADB 服务

adb kill-server

💡 典型使用场景:

设备列表长时间未刷新(如切换 USB 连接/Wi-Fi 调试模式)

ADB 进程卡死无响应

需要彻底重置 ADB 连接状态

❗ 操作后影响:

所有已连接的设备会断开

再次执行 adb 命令会自动重启服务

📦 查看 ADB 版本

adb version

🔍 示例输出解析:

Android Debug Bridge version 1.0.41 #主版本号

Version 35.0.2-12147458 # 构建版本号(用于定位特定版本)

Installed as /opt/homebrew/bin/adb #安装包位置

Running on Darwin 24.2.0 (arm64) #系统架构

🔌 自定义 ADB 服务端口 | 解决端口冲突必备技巧

🎯 为什么要修改默认端口?

ADB 默认使用 5037 端口进行通信,但在以下场景需要自定义端口:

1️⃣ 端口被其他进程占用导致 ADB 报错

2️⃣ 多用户开发环境隔离(如团队协作时)

3️⃣️ 企业网络策略限制特定端口

📡 指定端口启动服务

adb -P <新端口号> start-server

实操案例:改用 5038 端口

先停止现有服务 adb kill-server

指定新端口启动 adb -P 5038 start-server

✅ 预期输出:

tcp6 0 0 :::5038 :::* LISTEN

⚠️ 关键注意事项

必须与 start-server 联用:仅启动命令有效,其他命令的-P 参数无效

Root 权限需求:在 Linux/Mac 系统修改 1024 以下端口需加 sudo

全命令一致性:修改端口后,所有后续 adb 命令需带-P 参数

adb -P 5038 devices

💡 故障排查指南

场景:执行命令报错 cannot bind to port

解决方案:

查找占用端口的进程:

lsof -i :5037

2.终止冲突进程或更换更高位的端口(如 6000 以上)

注:

1、纯属个人收集资料整理后分享

2、不是原创资料,网上可以搜索