2

我尝试开发脚本来启动armeabi-v7a模拟器并执行gradle connectedAndroidTest任务以运行针对我的应用程序的 android 设备测试。

我编写了脚本,成功检查了所需的模拟器目标,如果错过了下载并安装它,然后启动模拟器。所有这些点都运作良好。但是在我启动模拟器后,我必须等到它完全启动。

我想我的问题是我无法正确检测到模拟器已完全完成他的启动操作并且也准备好安装应用程序。

根据网上的建议,我们可以使用以下两个系统属性来检测完全启动,它是

init.svc.bootanim- 开机动画 sys.boot_completed状态 - 开机操作的系统状态

我们可以通过调用来修改它们

adb -e shell getprop init.svc.bootanimadb -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)
...

但是,如果我等待一段时间,它就会完成。我猜这意味着我在安装测试应用程序之前不会等待。

在等待模拟器启动时,您有什么想法可以依靠吗?

4

0 回答 0