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

问题描述

我正在尝试编写一个外壳脚本,该脚本将使用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

  • 迭代直到找不到序列号

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...