问题描述
我正在尝试编写一个外壳脚本,该脚本将使用android模拟器并重新安装一个应用程序(以准备进行appium测试)。这是我的脚本:
#!/bin/sh
adb "kill-server"
adb emu kill
sleep 5
adb "start-server"
emulator "@api-29" &
adb "wait-for-device"
adb install -r com.mycompany.myapp.apk
问题在于,在执行adb emu kill
之后,终端会收到一条OK消息,这会导致执行继续。但是,仿真器实际上需要更长的时间才能关闭。如果我增加5秒钟的睡眠时间,则一切正常。但是,我要动态等待模拟器关闭超过5秒的时间。
我对Shell脚本非常陌生,因此感谢您的耐心配合。谢谢!
解决方法
尝试监视 adb devices
以确保设备列表在您的 adb emu kill
之后变空。
模拟器在从列表中消失之前会经历“离线”状态。在此期间,模拟器仍在运行,并且会干扰其他 emulator @api-29
调用。
不知道shell是怎么写的,顺序是:
-
获取
adb devices
个序列号 -
运行
Adb -s [serial number] emu kill
-
迭代直到找不到序列号