博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
截取framebuffer中数据
阅读量:4155 次
发布时间:2019-05-25

本文共 670 字,大约阅读时间需要 2 分钟。

一般情况下用两种方法都可以:

1.  sudo adb shell gsnap /data/fb.jpg /dev/graphics/fb0

截取当前显示的framebuffer(前台buffer),并且转换成fb.jpg保存起来。推荐使用这种方式。

2. sudo adb shell "cat /dev/graphics/fb0 > /data/fb0"

截取framebuffer(包括前台和后台buffer)保存到文件。需要看截图内容的话需要执行下面命令将文件写回/dev/graphics/fb0设备文件来查看截图效果。如下:

sudo adb shell "cat  /data/fb0 > /dev/graphics/fb0"

3. 可以使用第三方工具比如豌豆夹等。

需要注意的是,上面两种方法截图的内容不能保证完全正确,例如gsnap,有可能是截取的是后台buffer的内容,当然这种错误几率比较的低。原因是gsnap截图时,首先查看当前是显示前buffer还是后buffer,然后拷贝这些buffer数据并且转换成图片文件,不过由于没有同步机制,在这两个操作之间有可能android已经切换了前后buffer,这样gsnap截取出来的图片实际上是后台正在绘制的buffer。

如果要截取完全正确的图片的话,一般需要修改代码,可以在显示驱动中refresh调用之前进行阻塞的gsnap截图则可以保证截取的图片时正确的。

4

adb shell screencap -p | sed 's/\r$//' > screen.png

转载地址:http://fiwxi.baihongyu.com/

你可能感兴趣的文章
NEXO代币持有者获得20,428,359.89美元股息
查看>>
Piper Sandler为EverArc收购Perimeter Solutions提供咨询服务
查看>>
JavaSE_day14 集合中的Map集合_键值映射关系
查看>>
异常 Java学习Day_15
查看>>
Mysql初始化的命令
查看>>
MySQL关键字的些许问题
查看>>
浅谈HTML
查看>>
css基础
查看>>
Servlet进阶和JSP基础
查看>>
servlet中的cookie和session
查看>>
过滤器及JSP九大隐式对象
查看>>
软件(项目)的分层
查看>>
【Python】学习笔记——-7.0、面向对象编程
查看>>
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>
git中文安装教程
查看>>
虚拟机 CentOS7/RedHat7/OracleLinux7 配置静态IP地址 Ping 物理机和互联网
查看>>
Jackson Tree Model Example
查看>>
常用js收集
查看>>