我正在尝试编写一个 shell 脚本,它将运行 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 秒 sleep ,那么一切都会正常。但是,我想在模拟器关闭时间超过 5 秒的情况下动态等待。
我对 shell 脚本非常陌生,所以非常感谢您的耐心等待。谢谢!
最佳答案
在 adb emu Kill
后,尝试监控 adb devices
以使设备列表变空。
模拟器在从列表中消失之前会经历“离线”状态。在此期间,模拟器仍在运行,并且会扰乱其他emulator @api-29
调用。
不知道shell是怎么写的,但是顺序是:
获取
adb devices
序列号运行
Adb -s [序列号] emu Kill
迭代直到找不到序列号
关于scripting - adb emu Kill - 等待模拟器被完全杀死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63361120/