我正在编写一个 python 脚本,该脚本调用 adb 来执行 JUnit 测试。我使用了“adb get-state”和“adb wait-for-device”来等待模拟器启动并准备就绪,但由于某种原因,这两个命令都启动得太早了。这些函数返回后,当我开始运行测试时,我收到此错误:
android.util.AndroidException: Can't connect to activity manager; is the system running?
有什么方法可以获取 Activity 管理器的状态吗?如果我可以轮询该状态就足够了。
谢谢!
最佳答案
adb wait-for-device 告诉您设备上的 adbd 是否有响应。然而,它是设备上的 Linux 级别的守护进程,远低于通常在之后启动的 Android 平台的级别(除非刚刚从设置菜单启用了 ADB)。
特别是在模拟器上,启动 java 级 android 运行时是一个漫长的过程,因此 adbd 可能会响应几秒到几分钟,但没有 ActivityManager 可以与之通信。
在 adb wait-for-server 之后,尝试在一个延迟一秒的循环中执行您想要执行的任何操作(可能运行“am”命令)并检查输出可能是最简单的解决方案。
关于android - 获取 Activity 经理的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11316354/