2

armeabi-v7aエミュレーターを起動し、gradle connectedAndroidTestタスクを実行してアプリを対象とした Android デバイス テストを実行するスクリプトを開発しようとしています。

必要なエミュレーターのターゲットを正常にチェックし、見つからない場合はダウンロードしてインストールし、エミュレーターを起動するスクリプトを作成しました。これらすべての点がうまく機能します。しかし、エミュレータを起動した後、完全に起動するまで待たなければなりません。

私の問題は、エミュレーターがブート操作を完全に終了し、アプリをインストールする準備ができていることを正当に検出できないことだと思います。

Web の提案によると、次の 2 つのシステム プロパティを使用して完全な起動を検出できます。

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)
...

でも、ちょっと待てば完成。これは、テストアプリをインストールする前に何かを待たないことを意味すると思います。

エミュレーターの起動を待っている間、何を頼りにできるか考えていますか?

4

0 に答える 0