Обнаруживать, когда эмулятор Android полностью загружен
Я хочу создать script, где я запускаю эмулятор, и после полной загрузки системы я хочу установить .apk.
Как узнать, когда эмулятор полностью загружен, поэтому я могу запустить команду установки? Здесь http://developer.android.com/guide/developing/tools/adb.html сказано, что adb wait-for-device install <app>.apk
неверно.
Итак, как я могу это достичь? Является ли это возможным? Является ли мой единственный вариант спать в течение нескольких минут, пока я не буду уверен, что эмулятор запущен?
Ответы
Ответ 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 для получения дополнительной информации.