启动app
有的时候app不是预先安装的,也不能从界面start一个app,这时需要后台拉起app。
$adb shell am start package.name/Activity.name
例如,android原生camera app, 包名为com.android.camera2, mainActivity名为com.android.camera.CameraActivity。手动拉起命令行输入:
adb shell am start com.android.camera2/com.android.camera.CameraActivity
关闭app
$adb shell am force-stop package.name
例如,关闭原生相机:
$adb shell am force-stop com.android.camera2
录制屏幕
在Android开发或者调试中,使用ADB(Android Debug Bridge)录制屏幕是一种高效的方式,无需依赖第三方应用。
需要注意:录制格式为MP4, 编码未H.264/AAC。录制的内容中无有效音频数据,即adb screenrecord不支持录制系统音频,需要通过其他方式捕获。
基本录屏命令
$adb shell screenrecord /sdcard/demo.mp4
录制内容保存在设备/sdcard/demo.mp4,ctrl+c 终止录制。
常用的录参数选项
1.设置录制时长(单位:秒)
$adb shell screenrecord --time-limit 30 /sdcard/demo.mp4
默认最长180秒(3分钟)。
2.指定分辨率
$adb shell screenrecord --size 1280x720 /sdcard/demo.mp4
设置的分辨率需要是设备支持的分辨率,尽量使用标准分辩率(如1920x1080, 1280x720)。
3.设置比特率
$adb shell screenrecord --bit-rate 8000000 /sdcard/demo.mp4
比特率越高画质越好,但文件越大(单位:bps, 例如 8000000 = 8Mbps)。
4.显示触摸操作
$adb shell screenrecord --show-touches /sdcard/demo.mp4
这个录制参数,用于显示用户触摸轨迹。
5.竖屏模式修复
$adb shell screenrecord --verbose --rotate /sdcard/demo.mp4
部分设备竖屏录制后视频旋转,此参数可修正方向。
截屏
基本截屏命令
$adb shell screencap /sdcard/screenshot.png
截图保存在设备的/sdcard/screenshot.png。可以通过adb pull将截图拉取到pc查看。
直接截屏并保存到pc (无需暂存设备)
$adb exec-out screencap -p > screenshot.png
-p:表示输出为PNG格式(也是默认格式)。
若在Windows上执行,需要使用PowerShell或Git Bash(避免换行符问题)。若截图损坏,尝试使用adb shell screencap -p | sed 's/\r$//' > screenshot.png (Linux/macOS)。
常用截屏参数
1.指定截图格式
$adb shell screencap -p /sdcard/screenshot.jpeg
默认格式为PNG,部分设备可能支持其他格式(具体需要测试),一些设备支持直接保存为JPG。
2.自动时间戳命名
$adb shell screencap /sdcard/screenshot_$(data +%Y%m%d_%H%M%S).png
3.截取特定屏幕区域(需要Root)
$adb shell screencap --crop 100,200-500,800 /sdcard/cropped.png
--crop:设置截取区域(左上角x,左上角y-右下角x,右下角y)。
注意:并不是所有设备都支持截图区域设置,需要看设备能力。
4.使用实例
for i in {1..5}; do
adb exec-out screencap -p > screenshot_$i.png
sleep 2
done
screencrop和screenrecord的替代方案 - scrcpy
使用scrcpy截屏
$scrcpy --screenshot screenshot.png #截屏并直接保存到pc
使用scrcpy录制
$scrcpy --record screen.mp4