2

我正在编写一个 python 脚本,它调用 adb 来执行 JUnit 测试。我已经使用“adb get-state”和“adb wait-for-device”来等待模拟器启动并准备就绪,但由于某种原因,这两个都启动得太早了。在这些函数返回后,当我开始运行测试时出现此错误:

android.util.AndroidException: Can't connect to activity manager; is the system running?

有没有办法获得活动管理器的状态?如果我可以轮询该状态就足够了。

谢谢!

4

1 回答 1

2

adb wait-for-device 告诉您设备上的 adbd 是否响应。但是,它是设备上的 linux 级守护程序,远低于通常在之后启动的 android 平台的级别(除了刚刚从设置菜单启用 ADB 的情况)。

特别是在模拟器上,启动 java 级别的 android 运行时是一个漫长的过程,因此 adbd 响应时可能会有几秒钟到几分钟的时间,但没有 ActivityManager 可以与之交谈。

在 adb wait-for-server 之后,尝试在一个循环中执行您正在尝试执行的任何操作(大概运行“am”命令),延迟一秒并检查输出可能是最简单的解决方案。

于 2012-07-06T19:53:38.350 回答