monkey - 使用应用程序中的猴子测试一次设备冻结屏幕
问题描述
我刚刚制作了一个 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 和使用之间有什么区别。
有人可以帮助我吗?提前谢谢^
解决方案
我找到了 !缓冲区无法释放。
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 次触摸。
推荐阅读
- ios - 使用 URL Scheme 从 iOS 应用导航到 LinkedIn-Learning iOS 应用
- c# - 从 stdout 或 stderr 异步读取
- json - json 是否应该采用特定格式才能在 neo4j 中加载?
- facebook - 隐私问题发生变化后,是否可以从 facebook api 中提取用户详细信息?
- nestjs - NestJS @Injectable 在全局对象中使用:使用“new injectionable”还是“app.use(injectable)”?
- java - java.io.NotSerializableException:Kafka 中的 org.apache.kafka.clients.consumer.ConsumerRecord
- rally - 使用拉力赛 java api 列出拉力赛中 Parent 的所有子项目
- asp.net-mvc - HTML to PDF itextSharp - 处理多种字体和 unicode
- php - 通过 ksort 排序数组不起作用,在数组输出“1”上运行 ksort
- r - 根据列名和第二个值之间的匹配更改值