Тестирование Android-приложений на чистом эмуляторе

Когда я хочу протестировать приложение для Android, я создаю новый AVD, запускаю его в эмуляторе, жду завершения загрузки эмулятора, а затем использую ADB для установки приложения, а когда я закончу, удаляю AVD. Существуют ли какие-либо инструменты, которые автоматизируют все эти шаги? Я попытался написать свой собственный, но не смог определить, полностью ли загрузился эмулятор, поскольку на веб-сайте Android SDK указано, что не следует использовать «adb wait-for-device install file.apk».


person None    schedule 15.05.2011    source источник
comment
Eclipse делает это, хотя и не в чистом эмуляторе, но не выдает ошибок об уже установленных приложениях, так что это нормально. Как Eclipse это делает?   -  person None    schedule 15.05.2011


Ответы (1)


Вы правы, что не используете wait-for-device. Он не ждет, пока будет доступен менеджер пакетов, что вам и нужно. Я не уверен, как это делает eclipse, но вы можете опросить эмулятор, пока менеджер пакетов не будет доступен, используя команду adb shell pm path android. Команда должна вернуть «пакет: что-то». Ознакомьтесь с этим скриптом Python, в котором используется этот метод: www.netmite.com/android/mydroid/1.6/.../adb_interface.py. Он довольно большой, но если вы выполните поиск команды выше, вы найдете соответствующую часть скрипта.

Почему вы хотите каждый раз удалять AVD?

Если вы удаляете его каждый раз, потому что команда установки выдает ошибку из-за того, что приложение уже существует на AVD, вы можете сделать это: adb install -r file.apk. Часть -r используется для переустановки приложения. Вот полные инструкции по использованию для adb.

Вы удаляете его, чтобы удалить тестируемое приложение и вернуться к «чистому» эмулятору? Если это так, нет необходимости каждый раз удалять AVD. Вы можете указать опцию -wipe-data при запуске эмулятора. Это эффективно сбрасывает AVD в то состояние, в котором оно было при его создании. Вот документация по эмулятору.

Надеюсь, это поможет упростить ваш сценарий.

person Gyan aka Gary Buyn    schedule 15.05.2011
comment
Я использовал adb shell pm path android, и это сработало отлично. Спасибо! - person None; 16.05.2011