ADB 命令使用指南 | 多设备操作详解
📌 命令语法基础
ADB 命令的标准格式:
adb [-d|-e|-s <设备序列号>] <具体指令>
👉 单设备场景:直接使用 adb <指令>
👉 多设备场景:必须通过参数指定目标设备!
🔍 指定设备的 3 种方式
参数 | 含义 |
---|---|
-d | 指定当前唯一通过 USB 连接的 Android 设备为命令目标 |
-e | 指定当前唯一运行的模拟器为命令目标 |
-s <serialNumber> |
指定相应 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、不是原创资料,网上可以搜索