我遇到了我不完全理解的奇怪问题。我尝试从终端启动 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 启动到终端。然后所有 3 个 AVD 同时启动并成功启动。它也适用于 4 个 AVD。
如果我尝试按顺序启动,它将不允许我启动 2 个以上的 AVD。所以我为 Nexus-5 设置了第一个发射通道。我等到它完全启动。然后我为 Nexus-7 设置了第二个启动通道 - 它也成功启动。然后,如果我尝试启动更多 AVD,我就会冻结 - 启动时黑屏冻结。
知道为什么会发生这种情况吗?为什么我可以同时启动多个AVD,但无法一一启动?
问题与 HAXM 设置的内存限额有关。我的 HAXM RAM 默认使用量为 2GB。重新安装 HAXM 后
https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager
并为其分配 6GB 内存,我可以依次启动 4 个 AVD。
我猜测它之前起作用的原因是:因为所有 AVD 都是同时启动的 - 在同一时刻,它们都通过了内存限制检查,因此它们被允许运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)