Son*_*yen 3 bash shell android android-emulator
我有一个简单的shell脚本(在Mac上运行),如下所示:
/Users/abcdef/Library/Android/sdk/tools/emulator -avd Pixel_API_23
./gradlew assembleDebug assembleAndroidTest
fastlane screengrab
Run Code Online (Sandbox Code Playgroud)
问题是运行第一行之后,它会很好地启动仿真器,但是命令停顿了,它不会完成,因此无法执行下一行。我试图强行停止它,但是那甚至行不通。如果我关闭该终端,启动一个新终端,然后再次运行脚本,则第一个命令将退出(仿真器已在运行),其余命令将被执行。
我想自动截图一系列设备,所以我想使用一个shell脚本。
模拟器退出时,模拟器命令完成。
如果仿真器没有退出,则仿真器命令不会完成。
相反,您希望继续而不等待命令完成,可以通过在后台运行命令来完成:
/Users/abcdef/Library/Android/sdk/tools/emulator -avd Pixel_API_23 &
Run Code Online (Sandbox Code Playgroud)
但是,脚本现在会立即继续,因此在运行下一行时,仿真器尚未完成加载。您需要等待,直到仿真器准备好接受命令。
一种简单的方法是使用adb以下方法进行轮询:
until adb shell true; do sleep 1; done
Run Code Online (Sandbox Code Playgroud)
总而言之:
/Users/abcdef/Library/Android/sdk/tools/emulator -avd Pixel_API_23 &
until adb shell true; do sleep 1; done
./gradlew assembleDebug assembleAndroidTest
fastlane screengrab
Run Code Online (Sandbox Code Playgroud)