有没有一种简便的方法以编程方式访问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,但这不是Android团队建议的正确方法。在框架层面上,是否有可能访问屏幕截图?我相信surface flinger会合成单个图层并将其提供给帧缓冲区。这是在哪里完成的?一个应用程序能否访问这些代码?
有一些Java应用程序也使用ddms来捕获此帧缓冲区数据而无需root访问权限。但帧率真的很差。
我相信应该有一种或另一种方法来完成上述工作。请为我提供一些简洁的方法。 欢迎提出建议。