You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ADB在Windows Subsystem for Android上实现截图操作?

WSA通过ADB完成截图的可行方案

问题原因

Windows cmd/PowerShell的默认输出重定向会自动对ADB返回的二进制流做文本编码转换,破坏PNG文件结构,最终导致生成全白的损坏图片,部分场景下也可能是WSA硬件加速导致的渲染层捕获失败。

可用解决方案

  • 方案1:使用PowerShell的二进制输出参数直接写入文件
    不使用原生>重定向,指定编码格式直接接收二进制流写入本地,命令如下:
    adb exec-out screencap -p | Set-Content "screenshot.png" -Encoding Byte
    
    如果是PowerShell 7+版本,也可以使用更简洁的写法:
    adb exec-out screencap -p -f /dev/stdout > screenshot.png
    
  • 方案2:先存到WSA内部存储再pull到本地(兼容性最高)
    先将截图保存到WSA的可读写目录,再通过adb pull拉取到Windows,不会涉及跨系统的流编码问题,命令如下:
    adb shell screencap -p /sdcard/screenshot.png
    adb pull /sdcard/screenshot.png .
    
    不需要保留WSA内临时文件的话可以追加删除命令:
    adb shell rm /sdcard/screenshot.png
    
  • 方案3:临时关闭WSA硬件加速
    上述两个方案执行后仍然得到白图的话,可进入WSA设置→高级设置,关闭「硬件加速」选项,重启WSA后再执行截图命令即可。

内容的提问来源于stack exchange,提问作者weareblahs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:54:02