6

您如何通过 ADB for 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
4

3 回答 3

2

我无法screepcapAndroid Things Developer Preview中工作。该命令生成一个 0 大小的文件。

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

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

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

    ffmpeg -f rawvideo -pix_fmt rgb565 -s 800x480 -i screenshot screenshot.png
    
于 2017-01-22T19:35:53.417 回答
1

似乎,由于 Android Things 中旧的有限 OpenGL 版本,由Tatsuhiko Arai描述, 这里不可能通过 ADB 获取屏幕截图,但是您可以录制视频(例如从 Android Studio 或通过ADB 命令),然后从中抓取帧,例如通过ffmpeg

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

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

于 2017-01-23T18:15:40.153 回答
0

我已经完全尝试了这段代码,如下所示(但没关系),它运行良好。该图像现在位于我的平台工具目录中。

adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png screen.png
adb shell rm /sdcard/screen.png
于 2020-02-25T04:26:27.687 回答