一、什麼是adb?
adb是Android Debug Bridge的縮寫,即安卓除錯橋;那什麼是安卓除錯橋?簡單來說,就是一個通用命令列工具,允許計算機與模擬器或連線的安卓裝置之間進行通訊,提供各種便利。
adb是一個客戶端-伺服器程式,包括三個元件:
客戶端:在計算機上執行。在終端通過命令列呼叫adb
後臺程式:在模擬器或安卓裝置上作為後臺程式運行,在裝置上執行命令
伺服器:伺服器在計算機上作為後臺程式執行,管理客戶端和後臺程式之間的通訊
官方參考資料:https://developer.android.google.cn/studio/command-line/adb.html
二、adb工具下載
倉庫備份有windows 64位的adb工具,版本 Android Debug Bridge version 1.0.41
倉庫連結:https://gitee.com/shengtudai/adb.git 其它版本自行百度
三、執行adb
解壓工具包,在終端通過命令列呼叫adb工具,如解壓路徑為C:\adb
用cd命令進入目錄
cd C:/adb
在裝置的開發者選項裡開啟usb除錯開關,或進入Recovery,再連線計算機,輸入如下命令查詢裝置
adb devices
若輸出List of devices attached,則識別到裝置
四、adb常用命令及功能
1.安裝軟體
adb install -r path_to_apk
注:-r 為強制替換原來軟體
2.解除安裝軟體
adb uninstall -k --user 0 com.tencent.mm // com.tencent.mm 就是微信的安裝包名
注:解除安裝軟體需要通過包名解除安裝;-k為解除安裝但保留資料,一般不加; --user
指定使用者 id
,Android 系統支援多個使用者,預設使用者只有一個,id=0。該命令可免root解除安裝系統預裝軟體
3.獲取應用包名
上面講到,解除安裝軟體需要通過包名解除安裝,如何獲取包名呢?
①.列出所有包名,找到最像的那個
adb shell
pm list packages
②.在裝置上開啟需要獲取包名的軟體,保持在前臺執行,輸入如下命令
dumpsys window | grep mCurrentFocus
這裡 window{ }
中就是這個介面的包名類名,包名就是:com.tencent.mm
4.截圖和錄屏
adb shell screencap /sdcard/screen.png
adb shell 在裝置執行指令碼命令
screencap 截圖命令
/sdcard/screen.png 截圖儲存路徑
adb shell screenrecord --size 1920x1080 --time-limit 100 /sdcard/demo.mp4 adb shell 在裝置執行指令碼命令 screenrecord 錄製視訊命令 --size 1920x1080 widthxheight 設定視訊大小 --time-limit 100 設定最大錄製時長(以秒為單位)。預設值和最大值均為 180(3 分鐘)。 按 Control + C 停止螢幕錄製
注:
screenrecord 選項說明
--help顯示命令語法和選項
--size widthxheight設定視訊大小:1280x720。預設值是裝置的原生顯示解析度(如果支援),如果不支援,則使用 1280x720。為實現最佳結果,請使用裝置的 Advanced Video Coding (AVC) 編碼器支援的大小。
--bit-rate rate設定視訊的視訊位元率(以兆位元每秒為單位)。預設值為 4Mbps。您可以增加位元率以提升視訊質量,但這麼做會導致影片檔案變得更大。以下示例將錄製位元率設為 6Mbps:screenrecord --bit-rate 6000000 /sdcard/demo.mp4
--time-limit time設定最大錄製時長(以秒為單位)。預設值和最大值均為 180(3 分鐘)。
--rotate將輸出旋轉 90 度。此功能是實驗性的。
--verbose顯示命令列螢幕上的日誌資訊。如果您不設定此選項,則執行時此實用程式不會顯示任何資訊。
5.將檔案複製到裝置/從裝置複製檔案
要從模擬器或裝置複製檔案或目錄
adb pull remote local
要將檔案檔案或目錄(及其子目錄)複製到模擬器或裝置
adb push local remote
注:local 和 remote 指的是開發計算機(本地)和模擬器/裝置例項(遠端)上目標檔案/目錄的路徑