Экран зависания устройства один раз с помощью теста обезьяны из приложения

Я только что сделал приложение для 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 касаний.

Другие вопросы по тегам