adb shell读取返回值_android – 从adb shell读取二进制stdout数据?

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

adb shell screencap -p /sdcard/foo.png

adb pull /sdcard/foo.png

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

adb shell "screencap -p > /sdcard/foo2.png"

adb pull /sdcard/foo2.png

这工作同样好。但是,如何读取ADB的输出呢?我想做的是以下:

adb shell screencap -p > foo3.png

并避免中间写入SD卡。这产生的东西看起来像一个PNG文件(运行字符串foo3.png生成一些与IHDR,IEND等),并且大致相同的大小,但文件被损坏,就图像读者而言。

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

有可能做到这一点吗?

编辑:这是六个文件的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 |.PN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值