使用 ADB 捕获屏幕

我正试图尽快拍摄电话屏幕的快照。
目前我这样做:


adb shell screencap -p /sdcard/screencap.png && adb pull /sdcard/screencap.png


但是,它太慢并且占用了 3 秒。
有没有更好的方法来做呢? 我打算使用非心绞车手机使用此功能。

此外,我可以使用什么不同的参数 screencap?

谢。

EDIT /附加信息/: 我打算使用这种方法能够在电脑上获得直播屏幕广播。 目前的方法有效,但它太慢了。 我不能使用
adb shell screenrecord

, 因为我在录制期间无法访问视频文件。
已邀请:

窦买办

赞同来自:

使它工作 @ OSX 和 Linux


adb exec-out screencap -p > screen.png

小姐请别说爱

赞同来自:

答案停止为我工作 Android 7 不知何故。 因此,我必须手动做到,所以我想分享这个。

如何安装程序

将此代码片段放入您的文件中。
~/.bash_profile

或者
~/.profile

:


snap_screen// {
if [ $# -eq 0 ]
then
name="screenshot.png"
else
name="$1.png"
fi
adb shell screencap -p /sdcard/$name
adb pull /sdcard/$name
adb shell rm /sdcard/$name
curr_dir=pwd
echo "save to `pwd`/$name"
}


遵循命令
source ~/.bash_profile

或者
source ~/.profile

,


如何使用

在不指定文件名的情况下使用:


$ snap_screen
11272 KB/s /256237 bytes in 0.022s/
Saved to /Users/worker8/desktop/screenshot.png


与文件名一起使用:


$ snap_screen mega_screen_capture
11272 KB/s /256237 bytes in 0.022s/
Saved to /Users/worker8/desktop/mega_screen_capture.png


希望它会有所帮助!

** 如果连接了多个设备,它将无法工作

小明明

赞同来自:

要开始编写设备的屏幕,请运行以下命令:


adb shell screenrecord /sdcard/example.mp4


此命令将使用默认设置开始编写设备的屏幕,并将接收的视频保存到文件到地址。 /sdcard/example.mp4 file 在您的设备上。

完成记录后,单击 Ctrl+C 在命令提示符窗口中停止屏幕条目。 然后,您可以在您指定的位置找到屏幕条目文件。 请注意,屏幕条目保存在设备的内部内存中,而不是在计算机的内存中。

默认值是您设备的标准屏幕分辨率,使用比特率的视频编码 4 Mbit. / C并设置最大屏幕记录时间 180 秒。 有关可以使用的命令行参数的更多信息,请运行以下命令:


adb shell screenrecord --help


它有效而不强化设备。 我希望它会有所帮助。

奔跑吧少年

赞同来自:

您可以从中读取二进制文件 stdout 而不是保护 png 在SD卡上,然后将其拉出:


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


它应该节省一点时间,但不是太多。

来源:
https://coderoad.ru/13578416/

三叔

赞同来自:

使用一些关于这个和其他几个帖子的知识,我找到了最适合我的方法::


adb shell 'stty raw; screencap -p'


我发表了一个非常简单的脚本 Python 在 GitHub, 基本上反映了通过连接的设备的屏幕 ADB:

https://github.com/baitisj/android_screen_mirror

诸葛浮云

赞同来自:

对不起,我告诉你
screencap

只是一个简单的团队只接受几个争论,但其中没有一个人可以节省你的时间,这是参考的结论
-h

.


$ adb shell screencap -h
usage: 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

, 还有另一个团队
screenshot

, 我不知道为什么
screenshot

被删除了
Android 5.0

, 但它可在下面有
Android 4.4

, 您可以从这里检查源 . 我没有自己的比较,这两个团队之间的比较更快,但你可以尝试在你的真实环境中并做出最终决定。

要回复问题请先登录注册