Экран зависания устройства один раз с помощью теста обезьяны из приложения
Я только что сделал приложение для Android в качестве системного приложения для запуска команды Monkey для пакета Calculator. Мое приложение имеет кнопку, и оно будет запускать обезьяну после нажатия.
public void onClick(View v) {
try {
Runtime.getRuntime().exec("monkey -p com.google.android.calculator --throttle 200 -v 10000");
} catch (IOException e) {
// to do something
}
}
==> все работало нормально с касаниями = 1000, но если я увеличу до 10000, обезьяна будет работать около 1 минуты, затем остановит экран, и я ничего не смогу сделать.
==> Я пытаюсь использовать ту же команду обезьяны в оболочке Adb, и хотя увеличение числа касаний до 50000 все равно работает нормально. Я не знаю, почему мое устройство зависает на экране, и в чем разница между adb shell monkey
и используя runtime.exec.
Кто-то может мне помочь? Заранее спасибо
1 ответ
Я нашел это! буфер не может быть освобожден.
Process process;
String rd;
process = Runtime.getRuntime().exec("monkey -p com.google.android.calculator --
throttle 200 -v 10000");
BufferedReader reader = new BufferedReader(new
InputStreamReader(process.getInputStream()));
while((rd = reader.readLine()) != null){
Log.d(TAG,"ip: " + rd);
}
process.waitFor();
reader.close();
=> Теперь я могу попробовать до 50000 касаний.