Android模拟器完全启动时检测

我想创build一个脚本,在我启动一个模拟器,系统完全启动后,我想要安装一个.apk。

如何知道模拟器何时完全启动,以便我可以运行安装命令? 这里http://developer.android.com/guide/developing/tools/adb.html据说adb wait-for-device install <app>.apk是不正确的。

那么我怎么能做到这一点呢? 可能吗? 是我唯一的select睡几分钟,直到我可以确定模拟器启动?

Solutions Collecting From Web of "Android模拟器完全启动时检测"

adb shell getprop init.svc.bootanim

这会告诉你是否启动animation正在运行。 这是我们使用我们的无头生成服务器来检查仿真器是否启动。 dac2009的sys.boot_completed是什么让我find那个标志。 我们使用init.svc.bootanim来代替,因为boot_completed有一个过早触发的倾向。

林不知道这是否适用于所有设备,但它在我testing过的。

如果你进入shell,你可以inputgetprop,并获得一个手机属性列表。 应该有一个名为“sys.boot_completed”。

如果input“getprop sys.boot_completed”,系统启动时会回应“1”,如果系统没有启动,会回应一个空的string。

 while [ "`adb shell getprop sys.boot_completed | tr -d '\r' `" != "1" ] ; do sleep 1; done 

如果系统启动完成,此代码将从sys.boot_completed获取信息,删除一个换行符并将结果值与1进行比较。如果其不相等1 /未完全引导,则将只hibernate1秒钟并再次尝试。

只要把你的adb安装在这行代码之后。

您可以设置一个可以通知设备启动完成的广播接收器

 android:name="android.intent.action.BOOT_COMPLETED" 

你可以parsing模拟器的标准输出,如果你用“-logcat VERBOSE”启动它,并等待显示模拟器被启动的消息。

在输出中我没有看到任何好的消息,但是你可以编写一个正在监听“android.intend.action.BOOT_COMPLETED”的应用程序,并在日志中写入内容。

请参阅http://developer.android.com/guide/developing/tools/emulator.html了解更多信息&#x3002;