Подтвердить что ты не робот

Обнаруживать, когда эмулятор Android полностью загружен

Я хочу создать script, где я запускаю эмулятор, и после полной загрузки системы я хочу установить .apk.

Как узнать, когда эмулятор полностью загружен, поэтому я могу запустить команду установки? Здесь http://developer.android.com/guide/developing/tools/adb.html сказано, что adb wait-for-device install <app>.apk неверно.

Итак, как я могу это достичь? Является ли это возможным? Является ли мой единственный вариант спать в течение нескольких минут, пока я не буду уверен, что эмулятор запущен?

4b9b3361

Ответ 1

оболочка adb getprop init.svc.bootanim

Это покажет вам, запущена ли загрузочная анимация. Это то, что мы используем на нашем сервере для создания головок, чтобы проверить, работает ли эмулятор. Sys.boot_completed from dac2009 - вот что привело меня к обнаружению этого флага. Вместо этого мы используем init.svc.bootanim, потому что boot_completed имеет тенденцию запускать слишком рано.

Ответ 2

Я не уверен, что это работает на всех устройствах, но работает на те, которые я тестировал.

Если вы войдете в оболочку, вы можете ввести getprop и получить список свойств телефона. Должно быть одно имя "sys.boot_completed".

Если вы наберете "getprop sys.boot_completed", он ответит "1", если система загрузится, и пустая строка, если система не загружена.

Ответ 3

while [ "`adb shell getprop sys.boot_completed | tr -d '\r' `" != "1" ] ; do sleep 1; done

Этот код получает информацию из sys.boot_completed, если системная загрузка завершена, удаляет новую строку и сравнивает результирующее значение с 1. Если его неравный 1/не загружается полностью/он будет просто спать 1 секунду и снова пытается.

Просто поместите свою adb install... после этой строки кода.

Ответ 4

Вы можете установить широковещательный приемник, который может уведомить, что загрузка устройства завершена.

android:name="android.intent.action.BOOT_COMPLETED"

Ответ 5

Вы можете разобрать вывод stdout эмулятора, если вы запустите его с помощью "-logcat VERBOSE" и дождитесь сообщения, которое указывает, что эмулятор загружен.

Я не видел хорошего сообщения прямо сейчас на выходе, но вы можете написать приложение, которое прослушивает "android.intend.action.BOOT_COMPLETED" и записывает что-то в журнал.

Обратитесь http://developer.android.com/guide/developing/tools/emulator.html для получения дополнительной информации.