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

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

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

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

Ответы [ 6 ]

36 голосов
/ 30 января 2013

adb shell getprop init.svc.bootanim

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

18 голосов
/ 11 августа 2016
while [ "`adb shell getprop sys.boot_completed | tr -d '\r' `" != "1" ] ; do sleep 1; done

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

Просто поставьте вашу установку adb ... после этой строки кода.

14 голосов
/ 07 ноября 2012

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

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

Если вы введете «getprop sys.boot_completed», он ответит «1», если система загружена, и пустой строкой, если система не загружена.

0 голосов
/ 29 мая 2019

Просто запустите эмулятор с флагом -delay-adb и затем запустите adb wait-for-device.adb выйдет при загрузке эмулятора.

0 голосов
/ 03 сентября 2010

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

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

Подробнее см. http://developer.android.com/guide/developing/tools/emulator.html.

0 голосов
/ 03 сентября 2010

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

...