如何启动16个以上的Android模拟器

问题描述:

随着运行16个模拟器,adb devices显示如何启动16个以上的Android模拟器

List of devices attached 
emulator-5584 
emulator-5582 
emulator-5580 
emulator-5578 
emulator-5576 
emulator-5574 
emulator-5572 
emulator-5570 
emulator-5568 
emulator-5566 
emulator-5564 
emulator-5562 
emulator-5560 
emulator-5558 
emulator-5556 
emulator-5554 

要启动17仿真器,我运行:

emulator -avd Nexus_4_API_19_17 -ports 5586,5587 

但后来我得到以下警告

模拟器:警告:请求的adb端口(5587)超出建议范围[5555,5586]。 ADB可能无法正常运行模拟器。有关详细信息,请参阅-help-port。

adb devices不显示新的模拟器。运行emulator -help-port不提供任何有用的信息:

在启动时,仿真器试图将其控制在控制台的* 端口从5554开始结合,以两个增量(即5554,然后5556, 5558,这允许多个仿真器实例在同一台机器上同时运行 ,每个仿真器使用不同的控制台端口号 。使用'-port'强制仿真器实例使用给定的控制台端口注释 ,该注释必须是包含5554和5584之间的整数,甚至整数 。 +1也必须是免费的,并且 将被保留给亚行。如果这些端口中的任何一个已经被使用,那么 模拟器将无法启动。

有没有办法使adb可以使用16个以上的仿真器?

+2

你想通过运行17个仿真器来做什么?我只是好奇。 –

+0

我在学术界,正在进行一项实验。致力于Android应用程序的自动测试生成。 – FlyingPumba

您需要将adb/transport_local.cpp中的ADB_LOCAL_TRANSPORT_MAX增加到所需值并重新编译adb二进制。

+0

谢谢,我会试试看。 – FlyingPumba

+0

看起来这不是唯一需要的改变。在Android SDK的qemu捆绑版本中,有16个仿真器的限制:https://android.googlesource.com/platform/external/qemu/+/gingerbread-release/android/qemu-setup.c#322 – FlyingPumba