Экран зависания устройства один раз с помощью теста обезьяны из приложения - PullRequest
0 голосов
/ 14 февраля 2019

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

0 голосов
/ 16 февраля 2019

Я нашел это!буфер не может быть освобожден.

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 касаний.

...