在进行安卓应用开发、自动化测试或深度调试时,与模拟器的顺畅交互是至关重要的环节,而安卓调试桥作为连接开发机与安卓设备(包括物理设备和模拟器)的强大工具,其工作的基础就在于准确地找到并连接到目标设备的端口号,掌握如何查看模拟器端口号是每一位安卓开发者和测试工程师的必备技能,本文将系统地介绍多种有效的方法,帮助您轻松完成adb查看模拟器的端口号这一任务。
使用 adb devices
命令:最直接的标准方法
这是最常用、最官方,也是最推荐的方法。adb devices
命令会列出所有当前连接到 adb
服务器的设备及其序列号,而模拟器的序列号本身就包含了端口号信息。
操作步骤:
-
确保您的安卓模拟器已经启动并运行完毕。
-
打开终端(Windows上是命令提示符或PowerShell,macOS或Linux上是Terminal)。
-
输入以下命令并按回车:
adb devices
输出结果解析:
执行命令后,您会看到类似以下的输出:
List of devices attached
emulator-5554 device
这里的 emulator-5554
就是模拟器的序列号,它的格式是固定的:emulator-<端口号>
,在这个例子中,模拟器的控制台端口是 5554
,需要注意的是,adb
实际连接的端口通常是这个端口号加1,即 5555
,在绝大多数 adb
命令中,我们直接使用 emulator-5554
这个标识符即可,adb
会自动处理端口映射。device
状态表示模拟器已成功连接。
查看模拟器窗口标题:最直观的图形方法
对于不习惯频繁使用命令行的用户,通过模拟器自身的图形界面来获取端口号同样简单快捷。
操作步骤:
启动您的安卓模拟器(无论是Android Studio自带的,还是第三方如夜神、雷电等),将鼠标悬停在模拟器窗口的标题栏上,通常标题会显示关于模拟器的详细信息,其中就包含端口号。
Android Studio模拟器的标题栏可能会显示:
5554:Nexus_5X_API_30
或者
emulator-5554 (Android 11.0)
这里的 5554
或 emulator-5554
就明确指出了该模拟器实例所使用的端口号。
使用 netstat
命令:面向高级用户的排查方法
在某些情况下,adb
服务出现异常,adb devices
无法正确列出模拟器时,我们可以借助系统级的网络状态查询工具 netstat
来手动查找端口,这种方法更为底层,但非常有效。
操作步骤(以Windows为例):
-
打开命令提示符(CMD)并以管理员身份运行。
-
输入以下命令,查找所有由
emulator.exe
进程监听的TCP端口:netstat -ano | findstr "emulator.exe"
输出结果解析:
您可能会看到类似这样的输出:
TCP 127.0.0.1:5554 0.0.0.0:0 LISTENING 12345
TCP 127.0.0.1:5555 0.0.0.0:0 LISTENING 12345
这里的 5554
和 5555
就是模拟器使用的端口,最后一列的 12345
是进程ID(PID),可以进一步通过任务管理器确认它就是模拟器进程,在macOS或Linux上,可以使用 lsof -i | grep "emulator"
或 netstat -tulpn | grep "emulator"
来实现类似功能。
端口规则与多实例管理
理解模拟器的端口分配规则对于管理多个模拟器实例至关重要,adb为模拟器预留了5555开始的连续端口,当一个模拟器启动时,它会占用两个端口:一个控制台端口(偶数)和一个ADB端口(后续的奇数)。
下表清晰地展示了这种对应关系:
实例顺序 | 控制台端口 | ADB 连接端口 | ADB 设备标识符 |
---|---|---|---|
第一个实例 | 5554 | 5555 | emulator-5554 |
第二个实例 | 5556 | 5557 | emulator-5556 |
第三个实例 | 5558 | 5559 | emulator-5558 |
当您同时运行多个模拟器时,使用 adb devices
会列出所有实例,若要对特定模拟器执行命令(如安装APK),就必须通过其标识符来指定:
adb -s emulator-5556 install my-app.apk
此命令会将 my-app.apk
安装到第二个模拟器实例上。
adb查看模拟器的端口号的方法多样且各具优势。adb devices
是日常工作的首选,图形界面方法直观便捷,而 netstat
则是解决疑难杂症的利器,熟练掌握这些技巧,将使您在安卓开发与测试的道路上更加得心应手,显著提升工作效率。