Android 模拟器命令行不会终止

Android emulator command line will not terminate

我有一个像这样的简单 shell 脚本(运行ning on Mac):

/Users/abcdef/Library/Android/sdk/tools/emulator -avd Pixel_API_23
./gradlew assembleDebug assembleAndroidTest
fastlane screengrab

问题是在第一行 运行 之后,它可以很好地启动模拟器,但是命令停止,它不会完成,因此无法执行下一行。我试图强制停止它,但这甚至不起作用。如果我关闭那个终端,启动一个新终端,然后再次 运行 脚本,第一个命令将退出(模拟器已经 运行ning),其余的将被执行。
我想自动截取一系列设备,所以我想使用单个 shell 脚本。

模拟器命令在模拟器退出时结束。

如果模拟器没有退出,则模拟器命令没有完成。

您不想等待命令完成而继续,您可以通过 运行在后台运行它来实现:

/Users/abcdef/Library/Android/sdk/tools/emulator -avd Pixel_API_23 &

但是,脚本现在会立即继续,所以当您 运行 下一行时,模拟器还没有完成加载。您需要等到模拟器准备好接受命令。

一个简单的方法是使用 adb:

进行投票
until adb shell true; do sleep 1; done

总而言之:

/Users/abcdef/Library/Android/sdk/tools/emulator -avd Pixel_API_23 &
until adb shell true; do sleep 1; done
./gradlew assembleDebug assembleAndroidTest
fastlane screengrab