adb启动Android虚拟机的核心答案是:先通过命令行工具启动模拟器,再用adb connect或adb devices建立连接,两步缺一不可。整个过程涉及环境变量配置、设备识别和端口通信,许多开发者第一次操作时报错“device not found”,问题多半出在连接步骤而非启动环节。
准备工作:下载并配置adb环境
Android虚拟机启动前,先确保电脑里有adb工具,Android Studio用户不需要额外下载,因为SDK自带adb,路径通常在Android/Sdk/platform-tools。
检查adb是否已存在
打开终端或命令提示符,输入以下命令验证:
adb version
能输出版本号说明环境已就绪,提示“command not found”的,需要手动配置。
配置环境变量(Windows/macOS/Linux通用思路)
把platform-tools目录加到系统PATH里,这样在任意目录都能直接调用adb:
- Windows:设置 → 系统 → → 高级系统设置 → 环境变量,在Path中新增platform-tools路径
- macOS/Linux:在
~/.bashrc或~/.zshrc中添加export PATH=$PATH:/你的路径/platform-tools,然后执行source生效
路径配置完成后,重新打开终端验证adb version能否正常输出版本信息。
启动虚拟机的两种方式与adb的关联
Android虚拟机启动方式和adb的关系常被忽略,这里把常见场景拆开说明。
Android Studio图形界面启动
点击Android Studio工具栏的Device Manager,选择已创建的虚拟设备,点击运行按钮,模拟器窗口出现后,adb会自动连接。
命令行启动模拟器
适用于远程开发、脚本自动化等无图形界面的场景,先找到模拟器安装路径,然后执行:
# 列出可用虚拟设备 emulator -list-avds # 启动指定设备 emulator -avd 你的设备名称
模拟器启动需要一段时间,窗口出现后不代表adb已经识别设备,必须手动确认连接状态。
adb连接虚拟机的核心命令详解
启动模拟器后,关键步骤在于建立adb与模拟器之间的通信链路。
第一步:确认设备是否被识别
adb devices
正常状态下列表会出现emulator-5554 device这样的条目,常见异常包括:
unauthorized状态:模拟器弹窗询问“允许USB调试吗”,先在模拟器里勾选“一律允许”,再点允许offline状态:文件同步出现问题,执行adb kill-server后重新adb start-server- 列表为空:模拟器端口未被adb自动扫描,需要手动连接
第二步:手动建立连接(解决自动识别失败)
adb connect 127.0.0.1:5555
绝大多数Android模拟器默认监听端口5555,这是adb的默认调试端口,平板、TV模拟器可能使用不同端口,具体参考对应模拟器文档。
第三步:检查设备名和其他调试参数
adb devices -l
该命令展示详细信息,包括设备型号、系统版本等,用于确认连接的是不是目标虚拟机。
adb找不到模拟器怎么解决高频故障排查
adb找不到模拟器,通常不是adb本身的问题,而是设备连接状态和端口配置存在冲突,以下按出现频率排序:
| 故障现象 | 核心原因 | 解决办法 |
|---|---|---|
adb devices为空 |
adb server未启动 | 执行adb kill-server再adb start-server |
unauthorized |
权限弹窗未确认 | 在模拟器内允许USB调试授权 |
device offline |
模拟器响应超时 | 重启adb或重启模拟器 |
| 连接失败 | 端口号不正确 | 查看模拟器日志确认实际监听端口 |
排查场景一:模拟器启动了两三个小时,adb突然失效
模拟器休眠或系统休眠导致adb连接中断,多数情况下adb kill-server和adb start-server能恢复连接,仍无法恢复就重启模拟器。
排查场景二:同时启动多个虚拟机设备
多个模拟器同时运行时,端口会递增分配,如5555、5557、5559。
adb devices能列出全部在线设备,操作具体设备时加-s参数指定:
adb -s emulator-5557 shell
Android Studio自带模拟器启动慢的优化设置
不少开发者反映,Android Studio自带模拟器启动慢,有时等了五分钟窗口才出现,业内专家指出,这个现象主要与虚拟化技术未启用有关。
启用硬件加速
模拟器本质是一个完整系统镜像,需要CPU虚拟化技术支撑,检查电脑的BIOS设置:
- Intel芯片需要VT-x开启
- AMD芯片需要SVM Mode开启
操作系统任务管理器中查看“虚拟化”是否为“已启用”状态。
调整模拟器性能参数
打开Device Manager,编辑虚拟设备配置,把以下参数调低:
- 内存:建议2048 MB以上,低于此值启动时间明显增加
- 存储空间:预留至少4 GB可用空间
- 图形渲染:选择“Hardware – GLES 2.0”而非软件渲染
使用快照功能
模拟器创建快照后,下次启动可以从快照恢复,速度明显提升,首次启动时创建快照,后续启动时间能缩短到几秒内。
第三方模拟器如何用adb连接
使用夜神、MuMu等第三方Android模拟器时,adb连接夜神模拟器或类似需求很常见,这些模拟器自带adb版本可能与SDK adb版本不兼容,需要手动指定端口。
夜神模拟器
# 连接夜神模拟器 adb connect 127.0.0.1:62001
不同版本夜神端口可能不同,新版通常为62026,旧版为62001,如果连接失败,查看夜神的安装目录bin文件夹中的adb版本,优先保证两端adb版本一致。
MuMu模拟器
adb connect 127.0.0.1:7555
MuMu模拟器的adb端口一般固定为7555,部分新版本使用16384端口,可在MuMu的“设置-其他”中查看调试端口。
各模拟器端口对比
| 模拟器名称 | 默认端口 | 备注 |
|---|---|---|
| Android Studio AVD | 5555 |
官方模拟器标准端口 |
| 夜神 | 62001/62026 | 新版端口变更频繁 |
| MuMu | 7555/16384 | 版本间差异大 |
| 逍遥 | 21503 | 需配合对应adb版本 |
| 蓝叠 | 5555 | 和官方一致 |
adb常用操作命令速查
连接建立后,以下命令覆盖绝大多数调试场景:
adb shell:进入模拟器的Linux命令行环境adb install app.apk:安装应用到模拟器中adb uninstall 包名:卸载应用adb push 本地文件 模拟器路径:推送文件到模拟器adb pull 模拟器文件 本地路径:拉取模拟器中的文件adb logcat:查看实时日志,定位崩溃原因adb reboot:重启模拟器系统
完整操作流程回顾
从零到一台可调试的Android虚拟机,完整命令序列如下:
# 1. 查看可用的虚拟设备 emulator -list-avds # 2. 后台启动模拟器(不依赖Android Studio窗口) emulator -avd 设备名 -no-snapshot-load & # 3. 等待约30-60秒,确认adb连接状态 adb devices # 4. 若设备列表为空,手动连接默认端口 adb connect 127.0.0.1:5555 # 5. 验证设备连接 adb shell getprop ro.build.version.release
最后一条命令输出Android版本号,说明adb已经成功控制这个虚拟机了。
常见问题Q&A
为什么adb devices列表显示“offline”?
设备连接超时或adb版本不匹配,执行adb kill-server后重启adb,再检查模拟器是否响应。
模拟器启动后adb没有自动连接怎么办?
执行adb connect 127.0.0.1:5555手动连接,注意确认模拟器实际使用的端口号。
adb连接第三方模拟器失败如何排查?
检查模拟器调试模式是否开启,端口号是否匹配,两个adb版本是否一致,系统防火墙是否拦截了adb端口。
adb端口被占用如何处理?
执行netstat -ano | findstr 5037(Windows)或lsof -i:5037(macOS/Linux)定位占用进程,结束该进程后重启adb。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/626363.html





