【问题标题】:Android: It there a way to read screenshot from memory without saving to internal/external storage?Android:有没有办法从内存中读取屏幕截图而不保存到内部/外部存储?
【发布时间】:2025-12-24 16:35:10
【问题描述】:

我知道有办法以编程方式截取屏幕截图。
1.通过ADB使用MonkeyRunner,使用USB线连接PC和Android设备。
http://developer.android.com/tools/help/MonkeyDevice.html#takeSnapshot
2. 只为你开发的APP从绘图缓存中获取
https://*.com/a/24280494/2080233
3. 从帧缓冲区获取,但不适用于许多应用程序。
http://www.pocketmagic.net/android-native-screen-capture-application-using-the-framebuffer/
4. root使用/system/bin/screencap,但需要写入存储。
https://*.com/a/15208592/2080233

我想知道是否有办法直接从内存中截取屏幕截图并且效果很好。

【问题讨论】:

    标签: android image screenshot root


    【解决方案1】:

    您对#4 的分析并不十分准确,正如screencap 的使用信息所述:

    如果没有给出FILENAME,结果将打印到标准输出

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

    我相信这就是 DDMS 中的屏幕截图按钮最终的作用,通过 adb 连接将数据传回。但是请注意,如果您通过 ADB 的标准输出传递二进制数据,您可能不得不撤消插入的 CRLF 转换,因为 Windows 用户对此存有疑虑。

    【讨论】:

      最近更新 更多