首页 > 解决方案 > 使用应用程序中的猴子测试一次设备冻结屏幕

问题描述

我刚刚制作了一个 android 应用程序作为系统应用程序来启动 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
      }
}

==> 它在 touches = 1000 时运行良好,但如果我增加到 10000,猴子会运行大约 1 分钟,然后冻结屏幕,我什么也做不了。==> 我尝试使用 Adb shell 相同的猴子命令,即使将触摸次数增加到 50000,它仍然可以正常工作。我不知道为什么我的设备冻结屏幕,adb shell monkey以及使用 runtime.exec 和使用之间有什么区别。

有人可以帮助我吗?提前谢谢^

标签: monkey

解决方案


我找到了 !缓冲区无法释放。

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 次触摸。


推荐阅读