我尝试开发脚本来启动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
,但无论如何我都在等待它们。但这无济于事,因为如果在等待设备启动后我connectedAndroidTest
在运行大约 4 分钟后启动任务,它会失败并出现下一个异常
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)
...
但是,如果我等待一段时间,它就会完成。我猜这意味着我在安装测试应用程序之前不会等待。
在等待模拟器启动时,您有什么想法可以依靠吗?