检测Android模拟器何时完全启动

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

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

那我该怎么做呢? 可能吗? 我可以选择只睡几分钟,直到我可以确定模拟器已启动?

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

adb shell getprop init.svc.bootanim

这将告诉您启动animation是否正在运行。 这是我们在无头构建服务器上使用的,用于检查模拟器是否已启动。 来自dac2009的sys.boot_completed是让我find那个标志的原因。 我们使用init.svc.bootanim,因为boot_completed有过早触发的倾向。

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

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

只需将您的adb install …放在这行代码之后。

我不确定这是否适用于所有设备,但它适用于我测试过的设备。

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

如果键入“getprop sys.boot_completed”,它将在系统引导时响应“1”,如果系统未引导则返回空字符串。

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

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

如果使用“-logcat VERBOSE”启动它,则可以解析模拟器的stdout输出,并等待指示模拟器已启动的消息。

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

有关详细信息,请参阅http://developer.android.com/guide/developing/tools/emulator.html 。