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

Cat*_*san 31 scripting android emulation

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

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

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

neu*_*ron 38

adb shell getprop init.svc.bootanim

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

  • 注意:如果启用了“-no-boot-anim”标志,则此功能不起作用。 (2认同)

Seb*_*ebo 20

while [ "`adb shell getprop sys.boot_completed | tr -d '\r' `" != "1" ] ; do sleep 1; done
Run Code Online (Sandbox Code Playgroud)

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

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


dac*_*009 14

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

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

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


小智 7

只需使用标志运行模拟器-delay-adb,然后运行adb wait-for-deviceadb模拟器启动时将退出。