为什么启动超过2个AVD只能在特定条件下工作

时间:2016-11-15 09:31:09

标签: android avd

我遇到了一些我不完全理解的奇怪问题。我尝试从终端开始超过2个AVD。它甚至适用于4个AVD,但仅限于特殊条件。

我有一个用于3个AVD的代码:

echo "no" | $ANDROID_HOME/tools/android create avd --name "Test-Emulator-API23-Nexus-5" --target "Google Inc.:Google APIs:23" --abi google_apis/x86_64  --device "Nexus 5" --skin "1080x1920"
echo "no" | $ANDROID_HOME/tools/android create avd --name "Test-Emulator-API23-Nexus-7" --target "Google Inc.:Google APIs:23" --abi google_apis/x86_64  --device "Nexus 7" --skin "1200x1920"
echo "no" | $ANDROID_HOME/tools/android create avd --name "Test-Emulator-API23-Nexus-10" --target "Google Inc.:Google APIs:23" --abi google_apis/x86_64  --device "Nexus 10" --skin "2560x1600"

$ANDROID_HOME/platform-tools/adb kill-server
$ANDROID_HOME/platform-tools/adb start-server

$ANDROID_HOME/tools/emulator -port 5556 -avd Test-Emulator-API23-Nexus-5  -gpu on &>/dev/null &
$ANDROID_HOME/tools/emulator -port 5558 -avd Test-Emulator-API23-Nexus-7  -gpu on &>/dev/null &
$ANDROID_HOME/tools/emulator -port 5560 -avd Test-Emulator-API23-Nexus-10  -gpu on &>/dev/null &

当我复制粘贴最后3个通道时,它会启动AVD到终端AT ONCE。然后所有3个AVD同时启动并成功启动。它也适用于4个AVD。

如果我按顺序执行此操作,则不允许我启动2个以上的AVD。所以我为Nexus-5设置了第一个发射通道。我等到它完全启动。然后我为Nexus-7设置了第二个发射通道 - 它也成功启动了。然后,如果我尝试启动更多AVD,我会冻结 - 启动时黑屏冻结。

知道为什么会这样吗?为什么我可以同时启动多个AVD,但我无法一个接一个地启动它们?

enter image description here

1 个答案:

答案 0 :(得分:1)

问题与设置为HAXM的内存容量有关。默认情况下,我的HAXM RAM使用量为2GB。重新安装HAXM后

  

https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager

并为其分配6gb内存,我能够按顺序启动4个AVD。

我之前猜测它之前的原因是:因为所有AVD都是立即启动的 - 在同一时刻,所有AVD都通过了内存限制检查,因此允许它们运行。