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)
...
でも、ちょっと待てば完成。これは、テストアプリをインストールする前に何かを待たないことを意味すると思います。
エミュレーターの起動を待っている間、何を頼りにできるか考えていますか?