100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Android 知识点 250 —— screencap截屏指令

Android 知识点 250 —— screencap截屏指令

时间:2019-12-30 18:33:07

相关推荐

Android 知识点 250 —— screencap截屏指令

文章原文:/p/c2e2b8f8ea0d

返回知识列表:Android知识列表

1 命令介绍

screencap -husage: screencap [-hp] [-d display-id] [FILENAME]-h: this message-p: save the file as a png.-d: specify the display id to capture, default 0.If FILENAME ends with .png it will be saved as a png.If FILENAME is not given, the results will be printed to stdout.

解释:

用法: screencap [-hp] [-d 显示id] [文件名]

-h: 查看帮助信息

-p: 保存文件为png格式

-d: 指定截取的显示id,默认为fb0(fb为framebuffer)

如果文件名以.png结束,将保存为png格式文件

如果没有文件名,将直接打印到标准输出

2 例子:

1、截取fb0界面到sdcard(此路径可以随意设置),文件名为fb0.png

# screencap sdcard/fb0.png

2、截图保存为png格式,与第一相同(疑惑:在RK3288 Android 5.1系统上,screencap -p /sdcard/fb0.jpg 执行也是成功的,可以查看到截图,不懂???)

# screencap -p /sdcard/fb0.png

3、截取fb1界面到sdcard,文件名为fb1.png

# screencap -d /dev/graphics/fb1 sdcard/fb1.png

4、直接执行screencap,打印到显示屏上,常人看不懂。

# screencap

3 使用场景

因为经常遇到黑屏问题,调查手段就是通过截屏的方式。以判断是否是硬件问题黑屏了。

可以判定从SOC出来的图像是OK的。因为从SOC出来后,还有屏幕硬件和驱动等的修改。

SoC:System on Chip的缩写,称为芯片级系统,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。

4 异常情况

1,截图文件size为 0

暂时怀疑是权限问题吧,需要su 。logcat 获取详细信息,假如有如下信息

perrmission failure: android.permission.READ_FRAME_BUFFER from uid=10113 pid=2934

113 PermissionCache D checking android.permission.READ_FRAME_BUFFER for uid=10113 => denied (294 us)

113 SurfaceFlinger E Permission Denial: can’t read framebuffer pid=2934, uid=10113

则表示权限问题。即使您添加READ_FRAME_BUFFER权限,它仍然无法正常工作.通常,这意味着应用程序没有读取帧缓冲区的权限,必须使用系统证书进行编译或使用su获取root权限.

关于Android权限,这里涉及知识 setSecure(true) ,允许截屏。因为有些视频是禁止截屏的,知识产权保护!logcat 中可以搜索 SurfaceFlinger

SurfaceFlinger:FB is protected: PERMISSION_DENIEDSurfaceFlinger:captureScreen failed to readInt32:-1

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。