使用背景
- adb shell可正常使用
- 僅適用於Android4.4(API level 19)以上
- .mp4格式 支持指定時長與分辨率
使用方法
官話:
白話
白話快速上手版:
# 開始錄製
adb shell screenrecord [options] filename
# 結束錄製 方法一
Conntrl + C
# 結束錄製 方法二
使用參數 --time-limit設置時間限制,不設置默認錄製3分鐘
# 從手機上傳視頻到PC
adb pull 錄屏在手機的存儲路徑
舉個🌰
# 切換進入adb shell
$ adb shell
# 開始視頻錄製 screenrecord後緊跟存儲路徑與視頻名稱
shell@ $ screenrecord /sdcard/demo.mp4
# 結束視頻錄製 不執行以下操作3分鐘後自動停止
(press Control + C to stop)
# 退出adb shell
shell@ $ exit
# 上傳視頻到PC端
$ adb pull /sdcard/demo.mp4
當然也可以直接使用adb shell screenrecord命令直接開始視頻錄製
白話版option解讀:
option | 說明 |
---|---|
- -help | 查看詳細文檔 |
- - size width*height | 設置視頻分辨率,默認值爲設備原聲分辨率,若設備不支持則使用1280*720分辨率 |
- -bit-rate 數值 | 設置比特率,默認值爲4Mbps,爲了提升視頻質量可增加比特率,對應文件較大,同理爲了節省存儲空間可減小比特率,例如screenrecord --bit-rate 6000000 /sdcard/demo.mp4 需注意比特率單位 |
- -time-limit time 時長 | 設置最大錄製時長,單位爲秒,默認值/最大值均爲180s,即3分鐘 |
- -rotate | 旋轉90度錄製視頻 |
- - verbose | 在cmd中顯示日誌信息,不加此參數後臺靜默運行 |
再舉個🌰
# 指定比特率爲1Mpbs,分辨率爲1280x720,存儲路徑爲手機的/sdcard/demo.mp4
$ adb shell screenrecord --bit-rate 1000000 --size 1280x720 /sdcard/demo.mp4
這裏沒有設置視頻錄製時長,那麼需要通過Ctrl + C手動結束,或3分鐘後自動結束
封裝使用
在真的的app自動化測試過程中,將視頻錄製封裝成了可直接調用的method,監測到一個test開始時,調用start方法開始視頻錄製,在視頻結束時調用end方法結束視頻錄製,以下爲start方法,可供參考
/**
* <p>
* Start screen record.
* </p>
* @param path Where screen record is saved in mobile devices.
**/
public void startScreenRecord(String path){
String cmd = "adb shell screenrecord --bit-rate 1000000 --size 1280x720" + path;
try{
Runtime.getRuntime().exec(cmd);
logger.info("---------->>>> Start screen record! <<<<---------");
}catch(Exception e){
logger.error("Start screen record occurred exception:{}, please check your method!", e.getMessage(), e);
}
}
提示:如果使用Eclipse編譯器,需要從terminal打開IDE,負責會提示adb命令找不到,影響視頻錄製的使用