Android Things:截图

时间:2017-01-08 16:03:29

标签: adb screenshot android-things

如何通过ADB为Android Things拍摄截图?我试过了:

adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png
adb shell rm /sdcard/screen.png

adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

3 个答案:

答案 0 :(得分:2)

我无法让screepcap Android Things Developer Preview 中工作。该命令产生一个0大小的文件。

也就是说,我建议使用以下两个选项:使用帧缓冲或录制视频(screenrecord似乎有效)并稍后通过适当的工具将其转换为图像。我会考虑第一个选项,所以步骤将是:

  • 将帧缓冲区拉到主机 。请注意,您需要以root身份启动adbd才能通过权限检查:

    adb root
    adb pull /dev/graphics/fb0 screenshot
    
  • 通过您喜欢的工具将原始二进制文件转换为图像。我正在使用。由于屏幕分辨率或像素格式不同,下面的命令可能不适合您。如果是这样,请进行适当的更改。

    ffmpeg -f rawvideo -pix_fmt rgb565 -s 800x480 -i screenshot screenshot.png
    

答案 1 :(得分:1)

似乎,因为Android事物中旧的有限OpenGL版本,由Tatsuhiko Arai here描述,不可能通过ADB获取屏幕截图,但您可以录制视频(例如来自Android Studio,或通过ADB commands)而不是从中获取框架,例如通过ffmpeg

ffmpeg -i device-2017-01-23-193539.mp4 -r 1 screen-%04d.png

其中device-2017-01-23-193539.mp4 - 记录的名称(通过Android Studio)文件。

答案 2 :(得分:0)

我已经像下面那样对代码进行了一些尝试(但是没关系),并且效果很好。该图像现在位于我的platform-tools目录中。

adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png screen.png
adb shell rm /sdcard/screen.png