scripting - adb emu Kill - 等待模拟器被完全杀死

标签 scripting android-emulator adb

我正在尝试编写一个 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/

相关文章:

android - 在手机上更改设置或执行任务的 adb shell 命令

shell - 双击执行shell脚本

windows - POWERSHELL - Get-service 中的变量 -Name $Var

Android Studio 未在“运行”选项卡上显示任何日志

android - 通过 PC (Eclipse) 在物理设备上模拟来电

android - 如何使用 ADB 终止所有 Activity 任务/应用程序?

linux - "RUNNINGAS=`/usr/bin/id -un`"是做什么的?

javascript - 是否有用于文本字段的 jQuery 自动增长插件?

android - Eclipse 无法连接到模拟器上的 Activity 管理器 - HelloWorld 未出现

android - 如何访问 Android 应用程序的 ActionBar?