我正在研究一个有根的Android设备。我正在尝试捕获屏幕并将结果存储在1) "00125500:2"
2) "00128500:4"
中供以后使用。
Bitmap
我在这里做的是为新图像命名路径并使用命令String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath();
path += "/img.png";
Process sh = Runtime.getRuntime().exec("su", null,null);
OutputStream os = sh.getOutputStream();
os.write(("/system/bin/screencap -p " + path).getBytes("ASCII"));
os.flush();
os.close();
sh.waitFor();
final Bitmap x = BitmapFactory.decodeFile(path);
捕获屏幕。然后我读取存储在该文件中的图像,并在位图中使用它。
我当前代码的问题是它很慢(不适合实时应用程序)。我现在正试图让它更快。我想直接从/system/bin/screencap -p FILEPATH
在命令screencap的描述中,我发现我可以在不指定输出文件名的情况下使用它,在这种情况下,结果将打印到stdout。
我尝试了几个代码来读取结果字节数组,直接在我的代码中使用它
Runtime.getRuntime().exec(...)
但是这些代码都不适合我。
如何使用final Bitmap x = BitmapFactory.decodeByteArray(resultArrayByte, 0, resultArrayByte.length);
的输入/输出流直接获取结果字节数组而不将输出保存到文件中然后再次加载?
答案 0 :(得分:0)
Take a Look here, in this link you can find a library called ASL
a lot of questions in this post, i'm confused :)
i hope this link is useful for your requirements.