相关疑难解决方法(0)

从adb shell读取二进制stdout数据?

是否可以从adb shell命令读取二进制stdout?例如,如何使用screencap的所有示例包括两个步骤:

adb shell screencap -p /sdcard/foo.png
adb pull /sdcard/foo.png
Run Code Online (Sandbox Code Playgroud)

但是,该服务支持写入stdout.例如,您可以执行以下操作:

adb shell "screencap -p > /sdcard/foo2.png"
adb pull /sdcard/foo2.png
Run Code Online (Sandbox Code Playgroud)

这同样有效.但是,如何阅读亚行的产出呢?我想做的是以下内容:

adb shell screencap -p > foo3.png
Run Code Online (Sandbox Code Playgroud)

并避免中间写入SD卡.这会生成看起来像PNG文件的strings foo3.png东西(正在运行生成带有IHDR,IEND等的东西)并且大小大致相同,但就图像阅读器而言,文件已损坏.

我也尝试在java中使用ddmlib来做到这一点,结果是一样的.我很乐意使用任何必要的图书馆.我的目标是减少获取捕获的总时间.在我的设备上,使用双命令解决方案,获取图像大约需要3秒钟.使用ddmlib和捕获stdout需要不到900毫秒,但它不起作用!

是否有可能做到这一点?

编辑:这是两个文件的hexdump.第一个,screen.png来自stdout并且已损坏.第二个,xscreen来自双命令解决方案并且有效.图像应在视觉上相同.

$ hexdump -C screen.png | head
00000000  89 50 4e 47 0d 0d 0a 1a  0d 0a 00 00 00 0d 49 48  |.PNG..........IH|
00000010  44 52 00 00 02 d0 00 00  05 00 08 06 00 00 00 6e  |DR.............n|
00000020  ce …
Run Code Online (Sandbox Code Playgroud)

android adb

60
推荐指数
7
解决办法
3万
查看次数

使用ADB捕获屏幕

我正试图尽快获得手机屏幕的截图.目前,我正在做:

adb shell screencap -p /sdcard/screencap.png && adb pull /sdcard/screencap.png         
Run Code Online (Sandbox Code Playgroud)

但它太慢,需要3秒钟.有没有更好的方法来做到这一点?我打算在没有根据的手机上使用此功能.

还有什么我可以用于screencap的不同论点?

谢谢.

编辑(额外信息):我打算使用这种方法能够将屏幕的实时馈送到我的电脑上.目前的方法有效但速度太慢.我无法使用,adb shell screenrecord因为在录制时我无法访问视频文件.

java android screenshot adb

51
推荐指数
6
解决办法
6万
查看次数

Android 设备上截图使用哪些命令行(screencap 除外)

我想使用命令行截取已 root 的三星设备的屏幕截图。我时间有限,不能超过2秒。所以我的问题是如何使用命令行截取屏幕截图。

screenshot

3
推荐指数
1
解决办法
9074
查看次数

标签 统计

adb ×2

android ×2

screenshot ×2

java ×1