Android 安卓:有没有办法从内存中读取屏幕截图而不保存到内部/外部存储?

Android 安卓:有没有办法从内存中读取屏幕截图而不保存到内部/外部存储?,android,image,screenshot,root,Android,Image,Screenshot,Root,我知道有很多方法可以通过编程方式拍摄屏幕截图。 1.通过ADB使用MonkeyRunner,并使用USB电缆连接PC和Android设备。 2.仅从已开发应用的绘图缓存中获取 3.从帧缓冲区获取,但不适用于许多应用程序。 4.按root用户使用/system/bin/screencap,但需要写入存储。 我想知道是否有一种方法可以直接从内存中抓取屏幕截图,效果很好。您对#4的分析不太准确,因为screencap的使用信息说明: 如果未给出文件名,结果将打印到标准输出 因此,如果您可以以具

我知道有很多方法可以通过编程方式拍摄屏幕截图。
1.通过ADB使用MonkeyRunner,并使用USB电缆连接PC和Android设备。

2.仅从已开发应用的绘图缓存中获取

3.从帧缓冲区获取,但不适用于许多应用程序。

4.按root用户使用/system/bin/screencap,但需要写入存储。

我想知道是否有一种方法可以直接从内存中抓取屏幕截图,效果很好。

您对#4的分析不太准确,因为
screencap
的使用信息说明:

如果未给出文件名,结果将打印到标准输出

因此,如果您可以以具有足够权限的用户身份调用
screencap
,则可以捕获流程的输出,并对该数据执行任何您喜欢的操作

我相信DDMS中的屏幕截图按钮最终就是这样做的,通过adb连接将数据传回。但是,请注意,如果您通过ADB的标准输出传递二进制数据,您可能必须撤销在Windows用户怀疑的情况下插入的CRLF转换