app自動化--Android使用adb命令錄屏(上)

使用背景

  • adb shell可正常使用
  • 僅適用於Android4.4(API level 19)以上
  • .mp4格式 支持指定時長與分辨率

使用方法

官話:

Android Developer文檔

白話

白話快速上手版:

# 開始錄製
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命令找不到,影響視頻錄製的使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章