如何通过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
答案 0 :(得分:2)
我无法让screepcap
在 Android Things Developer Preview 中工作。该命令产生一个0大小的文件。
也就是说,我建议使用以下两个选项:使用帧缓冲或录制视频(screenrecord
似乎有效)并稍后通过适当的工具将其转换为图像。我会考虑第一个选项,所以步骤将是:
将帧缓冲区拉到主机 。请注意,您需要以root身份启动adbd
才能通过权限检查:
adb root
adb pull /dev/graphics/fb0 screenshot
通过您喜欢的工具将原始二进制文件转换为图像。我正在使用ffmpeg。由于屏幕分辨率或像素格式不同,下面的命令可能不适合您。如果是这样,请进行适当的更改。
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