我尝试开发脚本以启动armeabi-v7a
模拟器并执行gradle
connectedAndroidTest
任务来运行针对我的应用程序的Android设备测试。
我写了一个脚本,它成功检查了所需的模拟器目标并下载并安装它,如果它被遗漏,然后启动模拟器。所有这些都很有效。但是在我启动模拟器后,我必须等到它完全启动。
我想我的问题是我无法正确检测到模拟器完全完成了他的启动操作并准备安装应用程序。
根据网络上的建议,我们可以使用以下两个系统属性来检测完整启动,它是
init.svc.bootanim
- 启动动画的状态
sys.boot_completed
- 系统启动操作状态
我们可以通过调用
来修改它们 相应地 adb -e shell getprop init.svc.bootanim
和adb -e shell getprop init.svc.bootanim
我发现sys.boot_completed
比init.svc.bootanim
更可靠,但无论如何我等了他们两个。但它没有帮助,因为如果在等待设备启动后我在运行大约4分钟后启动connectedAndroidTest
任务,它将失败并出现下一个异常
Unable to install /Users/busylee/temp/TestRun/app/build/outputs/apk/debug/app-debug.apk
com.android.ddmlib.InstallException
at com.android.ddmlib.Device.installRemotePackage(Device.java:1011)
at com.android.ddmlib.Device.installPackage(Device.java:911)
...
Caused by: com.android.ddmlib.ShellCommandUnresponsiveException
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:557)
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:383)
...
但如果我等待一段时间它就完成了。我想这意味着我不会在安装测试应用程序之前等待。
在等待模拟器启动时,您有什么想法可以依赖吗?