android - 获取 Activity 经理的状态

标签 android python bash android-emulator adb

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

相关文章:

Bash在执行前将引号插入字符串

android - 如何检测 WiFi 网络共享状态

python - 如何旋转数据框?

python - 在 plotly 中添加组条形图作为子图

bash - 每次提交的提交中的所有文件的列表

linux - tar 在脚本中返回 1,但不以交互方式返回

android - 为什么 XML 元素在我的 android studio 模拟器上不可见?

android - Android音频输出上通常的最大输出频率是多少?

android - GridView.setOnItemClickListener 在 GridView 中不起作用

python - 如何快速对扁平化的 "jagged"numpy 数组重新排序