2017-10-05 26 views
3

隨着運行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

回答

1

您需要將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