Как я могу перезагрузить Android Emulator с помощью monkeyrunner? - PullRequest
1 голос
/ 11 февраля 2011

Что не так с этим скриптом?

# Imports the monkeyrunner modules used by this program 
 from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
# Connects to the current device, returning a MonkeyDevice object 
device = MonkeyRunner.waitForConnection() 
#Reboot 
device.reboot('None')

Я также попытался изменить тип bootloadType. Записан из последней строки, которую я пробовал, device.reboot («загрузчик») и device.reboot («восстановление»), но он также не работал

1 Ответ

0 голосов
/ 07 марта 2011

Сообщение от разработчика Android здесь говорит следующее:

"перезагрузка" - это фактически аппаратное обеспечение перезагрузка, пока «стоп» / «старт» перезапуск программного обеспечения.

В идеале для эмулятора вы должны использовать:

device.shell('stop');
device.shell('start');

... но здесь возникла ошибка против запуска / остановки для эмуляторов> = 2.2.

Лично я использую небольшой неприятный скрипт оболочки, чтобы убить все экземпляры эмулятора, а затем снова запустить эмулятор:

#!/bin/bash

pgrep -x "emulator" > /dev/null
until [  $? -eq 1 ]; do
  kill `pgrep -x "emulator" | cut -c 1-6`
  sleep 2
  pgrep -x "emulator"
done

# start emulator normally...
exit 0

Этот сценарий можно усовершенствовать, передав серийный номер определенного эмулятора для уничтожения (можно получить серийный номер с помощью "adb get-serialno")

Мне было бы интересно узнать, что другие думают / как они автоматизируют перезапуск эмулятора.

...