一、Android 手机截屏
Android studio 自带截屏工具
在许多 Android 设备上,可以使用组合键截取屏幕截图:同时按住电源和调低音量键。 此外,还可以使用 Android Studio 截取屏幕截图:
- 在连接的设备或模拟器上运行您的应用。如果使用连接的设备,请确保您已启用 USB 调试。
- 在 Android Studio 中,依次选择 View > Tool Windows > Logcat 以打开 Logcat。
- 从窗口顶部的下拉菜单中选择设备和进程。
- 点击窗口左侧的 Screen Capture 图标 。 此时,屏幕截图便会显示在 Screenshot Editor 窗口中。
- (可选)更改图片:
- Recapture:截取新的屏幕截图。
- Rotate Left:将图片逆时针旋转 90 度。
- Rotate Right:将图片顺时针旋转 90 度。
- Frame Screenshot:选择一个设备,以便为屏幕截图加上真实设备的外框效果图。选中 Drop Shadow 和/或 Screen Glare 可以将这些效果添加到您的图片中。
- 点击 Save,指定位置和文件名,然后点击 OK。
adb shell screencap
adb shell screencap /sdcard/xx.png && adb pull /sdcard/xx.png && adb shell rm -f /sdcard/xx.png
adb shell screenrecord
adb shell screenrecord /sdcard/xx.mp4
adb pull /sdcard/xx.mp4
adb shell rm -f /sdcard/xx.mp4
screenrecord 命令仅支持 Android 4.4 及以上版本的系统
二、adb exec-out
在用adb pull从设备拉db之类的二进制文件的过程中,程序会自作主张的将\n转换成\r\n,最终导致得到的文件被修改,exec-out的意思是说,保留原汁原味,不要添加剂
# 截取一张图片并保存在当前目录下,其中exec-out命令声明原样输出数据,p参数即指定保存图片为 png 格式
adb exec-out screencap -p > screencap.png
# 录制 Android 设备屏幕,视频时长为15秒,分辨率为 720p,比特率为6Mbps,视频数据保存在 SD 卡的 screenrecord.mp4 文件里
adb shell screenrecord --time-limit 15 --size 1280x720 --bit-rate 6000000 /mnt/sdcard/screenrecord.mp4
三、adb run-as
run-as 可以用某个用户的权限来执行命令,这可以解决没有访问权限的问题,在不带这个参数时执行:
adb push sample.db /data/data/com.sample.foo/databases/sample.db
sample.db就不能被com.sample.foo访问,因为文件的用户和所在的组与com.sample.foo不一致,必须要经过chown修改用户和组后才能访问,而且由于每次app安装后获得的用户名不一致,没法将chown命令的参数批处理化,这是个很重要的缺陷。
带上run-as执行:
adb shell "run-as com.sample.foo sh -c 'cp /sdcard/sample.db /data/data/com.sample.foo/databases/sample.db'"
sample.db就变成com.sample.foo亲生的。如果你没有root权限,执行pull或者push时又提示Permission denied,不妨加上run-as参数看看。