我正在编写一个Python脚本,该脚本调用adb以执行JUnit测试。我已经使用了“ adb get-state”和“ adb wait-for-device”来等待仿真器启动并准备就绪,但是由于某些原因,这两者都为时过早。这些函数返回后,当我开始运行测试时出现此错误:
android.util.AndroidException: Can't connect to activity manager; is the system running?
有什么方法可以获取活动经理的身份?如果我可以轮询那个状态,那应该足够了。
谢谢!
最佳答案
adb wait-for-device告诉您设备上的adbd是否响应。但是,它是设备上的linux级别的守护程序,远低于通常在其后启动的android平台的级别(除非刚从设置菜单启用了ADB的情况)。
特别是在仿真器上,启动Java级android运行时是一个漫长的过程,因此adbd响应时可能需要几秒钟到几分钟,但是没有ActivityManager可以与之对话。
在adb wait-for-server之后,尝试以一秒钟的延迟循环尝试执行您想做的任何事情(大概运行“ am”命令)并检查输出可能是最简单的解决方案。