Android和iOS设备截图优化的一点总结

常规的截图方式

在日常需要截图的工作中,常规的处理方式是手机自带的截图功能,完成后再通过工具发送到PC设备,整个过程分为两步,比较的麻烦
另一种方式是直接在PC端使用adb 命令或者tidevice工具对目标设备进行截图,然后手动去拉取
Android:
截图:
adb shell screencap -p /sdcard/screen.png
拉取:
adb pull /sdcard/screen.png ~/desktop/screen.png

iOS:
依赖tidevice工具:
tidevice screenshot ~/Desktop/screen.png

对于日常截图的需求也是足够的,比较的方便

组合截图方式

我们可以将以上的两个步骤组合起来,实现比较的方便的截图和查看图片一步到位
Android:adb shell screencap -p /sdcard/screen.png && adb pull /sdcard/screen.png ~/desktop/screen.png && open ~/desktop/screen.png

iOS :
tidevice screenshot ~/Desktop/screen.png && open ~/Desktop/screen.png
组合起来之后,再分别为两个组合命令加个别名到zsh, 用起来也是非常的方便,但对于某些时候,我们需要进行比较多的截图工作的时候,这种方式并不很好用,因为每次截图保存的图片名称都是一样的,会导致下一次截图覆盖上一次截图,导致不能同时保存多张截图,除非手动修改

脚本实现随机名称命名截图

于是我们可以写个shell 脚本,对文件名进行随机命名优化
1.新建一个shell 脚本,获取当前的时间作为图片的名称,它是绝对随机的,不会出现重复的情况
2.在拉取到PC端时再为其命名,不用管它之前是什么名称
Android:

#!/bin/sh
file_name=$(date +%s)
adb shell screencap -p /sdcard/screen.png && adb pull /sdcard/screen.png ~/Desktop/$file_name.png  && open ~/Desktop/$file_name.png

iOS:

#!/bin/sh
file_name=$(date +%s)
tidevice screenshot ~/Desktop/$file_name.png && open ~/Desktop/$file_name.png

两个脚本都写好之后,chmod 777 为其增加可执行权限
然后分别为Android和iOS的截图工具的脚本执行命令增加别名到zsh, 就可以方便的使用了
a_screen=“sh ~/a_screenshot.sh”
i_screen=“sh ~/i_screenshot.sh”