我们有一个Xamarin测试应用程序,我们从macOS Sierra的命令行自动运行。在此之前,我们会从命令行自动启动Android模拟器。作为Android模拟器,我们使用x86模拟器,使用Intel HAXM加速。模拟器启动的脚本按以下方式查找:
function isEmulatorReady {
pathToSDK=$1
#Check that emulator is booted by checking that boot animation is stopped
$pathToSDK/platform-tools/adb wait-for-device shell getprop init.svc.bootanim | grep -m 1 stopped
}
androidSDK=~/Library/Developer/Xamarin/android-sdk-macosx
$androidSDK/platform-tools/adb kill-server
$androidSDK/platform-tools/adb start-server
$androidSDK/tools/emulator -avd Android_Accelerated_x86 -wipe-data -partition-size 512 &
emulatorPID=$!
until isEmulatorReady $androidSDK; do
sleep 1
done
#launch application and wait for end
kill $emulatorPID
偶尔adb wait-for-device shell getprop
命令挂起,脚本无法检测到模拟器已启动,而Android模拟器已成功启动并正常工作。我不知道如何处理它。在开始时重新启动adb服务器实际上没有帮助。