是否有任何简洁的方法来访问 android 设备的屏幕截图 以编程方式。我正在寻找大约 15-20fps。
我找到了一个代码
android\generic\frameworks\base\services\surfaceflinger\tests\screencap\scr eencap.cpp
,
我构建了可执行文件并将其放入/data 并更改了模式 777
但是当我尝试使用 adb shell 执行它时,它给出了以下错误。
# chmod 777 test-screencap
chmod 777 test-screencap
# ./test-screencap test
./test-screencap test
screen capture failed: Function not implemented
我也知道我们可以访问 fb0 但它不是建议的正确方法 由安卓团队。是否可以访问框架中的屏幕截图 层。我相信 Surface Flinger 组成了各个层并将其提供给 framebuffer.Where 究竟是这样做的?应用程序是否可以访问 这样的代码。
还有一些 java 应用程序也使用 ddms 来实际捕获这个 没有根访问权限的帧缓冲区数据。但是fps真的很差。
我相信应该有一些或其他方式来完成上述工作。 请建议我一些巧妙的方法。欢迎提出建议。
最佳答案
如果您没有 root 手机,您将无法执行您正在尝试执行的操作,那里有一个应用程序可以执行您正在尝试的操作,Screenshot ER .最新的 OEM 正在将其放入他们的/system/apps 中......因此您可以使用他们的应用程序,查看此 article对于已启用此功能的设备。除此之外,你真的卡住了,但启用屏幕截图会产生影响,因为这可能会导致应用程序保存屏幕截图并发送该信息,从而启用病毒类型的应用程序......
其他人的信息 ...通过 Eclipse,您可以使用 DDMS 透视图获取屏幕截图。如果您看一下 Eclipse DDMS 代码库,它实际上也是一个独立的应用程序。届时您也许可以使用此 Java 代码。
AdbHelper.getFrameBuffer(AndroidDebugBridge.getSocketAddress(), this);
关于Android 屏幕截图 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7552088/