在进行 Android 开发的时候有时候需要截图,通常我的土办法就是打开 DDMS 然后再截取,这样有点不好就是效率不高每次都需要刷新然后手工去保存。

搜索了下,发现 Linux 下已经有现成的解决方案。原理就是使用使用 Android 自带的命令行 screencap 然后通过 adb 传输过来。

整条 Shell 命令其实很简单

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

但发现在我的 Mac 无法运行。检查了以后发现是 GNU sed 和 BSD sed 命令间有不兼容的情况。我的解决方案就是使用 brew 安装 gsed(有更好的解决方案的同学欢迎指出)。

brew install gnu-sed

然后简单得修改下上面的 Shell 脚本:

adb shell screencap -p | gsed 's/\r$//' > ~/Desktop/`date +%Y%m%d%H%M%S.png`

这样子每次运行这个脚本就能把 Android 设备的截图放到桌面了,并自动命名。

UPDATE .1

原博客的作者也给出了在 Mac 下的解决方案,他是使用 Perl :

adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

这样子对于没有安装 brew 的同学是个好消息。

-- EOF --