@shixue33 用 adb 去截图不太好用,得到的截图文件大小为 0,执行 screencap 命令后得到的输出流为空
好棒的帖子,学习!!
@shixue33 多谢!! 看到有人说用 adb 去实现, 后续再试下
@lihuazhang @monkey 多谢!!另 截图只能这样了吗 ? 有没有好的解决办法没
@caikaibai 多谢指点。这个我也试过,让它等待一段时间,但是加个等待之后一闪而过,打出的日志显示 swipe 操作是失败的,报错信息就是上面贴出来的东西,所以我想是哪个地方出错了,但是也搞不明白
@eurekasaber 说的对, 这个坐标应该是某次我把坐标改错了
@testly driver.swipe(x/43, y/10*i, x/4*2, y/10*i, 0); 这行代码我也试过了,还是跟帖子里面的异常一样
不过调试的时候倒是可以滑动,但是执行完 swipe 后一样抛出异常
支持一下下, qq:410933185
对于 best1196 提出的这个问题,还是自己来解答下。
代码里需要添加 InputStream is = process.getErrorStream(); // 获取错误输出流
由于错误输出流一直没有被清空导致程序被阻塞,添加这行代码之后错误输出流就被清空了,当然就不会被阻塞了。
详细的内容可参考 http://249wangmang.blog.163.com/blog/static/52630765201261334351635/
多谢大神 @testly 不吝赐教,:D
hi,大神
我在尝试着用 adb shell top -d 1 | grep + packagename 命令去读取特定 app 的 cpu 使用率。大致的想法是这样的:通过这条命令,把所有的输出写到一个文件里,然后在汇总 cpu 占用的情况。
代码是这样的:
String path = "e:/cpu.txt";
int i = 0;
/*if(! haveDevices())
{
System.out.println("device not existing,please check ");
return ;
}
*/
try
{
Runtime rt = Runtime.getRuntime();
File myFilePath = new File(path);
if (! myFilePath.exists())
myFilePath.createNewFile();
FileWriter file = new FileWriter(myFilePath,true);
Process proc = rt.exec("adb shell top -d 1 | grep " + packagename ); //得到的 CPU 信息写到文件中
try{
if(proc.waitFor() != 0)
{
System.err.println("exit value = " + proc.exitValue()); //waitfor 返回值 0 正常结束
}
BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line;
StringBuffer strBuff = new StringBuffer();
while((line = reader.readLine()) != null)
{
//if(line != null)
//file.write(line + "\n") ; //仅保存含包名的
System.out.println(line);
}
}
运行之后发现 cpu.txt 为空,应该是 reader 也为空,不知道是什么鬼