2012-07-03 58 views
2

我在写一个调用adb来执行JUnit测试的python脚本。我已经使用'adb get-state'和'adb wait-for-device'来等待模拟器启动并准备就绪,但由于某些原因,这两种模式都会启动得太早。经过这些函数返回,我当我开始运行我的测试中得到这个错误:获取活动管理器的状态

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

有没有一种方法,我可以得到活动管理的现状如何?如果我能够调查那个应该足够的状态。

谢谢!

回答

2

adb等待设备告诉你设备上的adbd是否有响应。然而,它是设备上的一个linux级守护进程,远低于通常在启动之后的android平台的级别(除非在设置菜单中刚刚启用了ADB)。

特别是在模拟器上,启动java级别的android运行时间是一个漫长的过程,因此adbd响应时可能会有几秒到几分钟的时间,但没有ActivityManager可以与之通话。在adb等待服务器之后,试图做任何你想要做的事(大概运行'am'命令)在一个延迟一秒的循环中并检查输出可能是最简单的解决方案。

+0

对不起这个双重问题,但它引起了你的注意:)这是我最终做的工作。我只是想找到一个更确切的方式来让这个工作(因为在我放弃之前循环的时间可能是相当可变的)。 – ZacAttack