adb命令總結

laity0828發表於2019-07-30

ADB是什麼

adb(全稱Android Debug Bridge):Android除錯橋樑。用來協助相關人員更快更好的除錯apk,adb具有安裝解除安裝apk、拷貝推送檔案、檢視裝置硬體資訊、檢視應用程式佔用資源、在裝置執行shell命令等功能。

ADB架構

ADB是一個C/S架構的應用程式,由三部分組成:

  1. 執行在pc端的adb client:
    命令列程式"adb"用於從shell或指令碼中執行adb命令。首先,"adb"程式嘗試定位主機上的ADB伺服器,如果找不到adb伺服器,"adb"程式自動啟動一個ADB伺服器。接下來,當裝置的adbd和pc端的ADB server建立連線後,adb client就可以向ADB server傳送服務請求;
  2. 執行在pc端的abd server:
    ADB Server是執行在主機上的一個後臺程式。它的作用在於檢測USB埠感知裝置的連線和拔除,以及模擬器例項的啟動或停止,ADB Server還需要將adb client的請求通過usb或者tcp的方式傳送到對應的adbd上;
  3. 執行在裝置端的常駐程式adb demon(adbd):
    程式"abdb"作為一個後臺程式在Android裝置或者模擬器系統中執行。它的作用是連線ADB伺服器,並且為執行在主機上的客戶端提供一些服務;

adb命令總結

ADB基本用法

adb能做什麼? 答案是所有能對手機的操作都能用adb實現。

adb命令的基本語法如下: adb [-d|-e|-s ]

單一裝置/模擬器連線

如果只有一個裝置/模擬器連線時,可以省略掉[-d|-e|-s ] 這一部分,直接使用adb

多個裝置/模擬器連線

如果有多個裝置/模擬器連線,則需要為命令指定目標裝置,下表是指定目標裝置的命令選項:

引數 含義
-d 指定當前唯一通過USB連線的Android裝置為命令目標
-e 指定當前唯一執行的模擬器為命令目標
-s 指定相應裝置序列號的裝置/模擬器為命令目標

adb shell

Android的核心本身就是Linux,所有Android本身也支援Linux命令。 在手機中執行Shell命令,每次都加上adb shell來進行命令的傳送和執行。

adb常用命令

用途 命令
檢視adb的版本資訊 adb version
啟動adb服務 adb start-server
停止adb服務 adb kill-server
查詢已連線的裝置/模擬器列表 adb devices
指定adb server的網路埠 adb -P start-server,adb的預設埠為:5037
以root許可權執行adbd adb root

Activity Manager

用途 命令
獲得應用的啟動時間 adb shell am start -W<package_name>/.<activity_class_name>
啟動activity adb shell am start -n<package_name>/.<activity_class_name>
殺掉APP adb shell am force-stop <package_name>

dump

用途 命令
檢視版本號 adb shell dumpsys package com.youxiang.soyoungapp
獲取系統資料 adb shell dumpsys

Package Manager

用途 命令
安裝應用 adb install
直接安裝應用 adb install test.apk
覆蓋安裝 adb install -r test.apk
解除安裝應用 adb uninstall
直接解除安裝 adb uninstall test.apk
保留資料解除安裝 adb uninstall -k test.apk
列印apk路徑 adb shell pm path
清除應用快取 adb shll pm clear

File Manager

用途 命令
從Android裝置下載檔案到pc adb pull [local] adb pull /sdcard/test.png c:\user
把pc檔案放到Android裝置 adb push
列出目錄內容 adb shell ls [option]
進入資料夾 adb shell cd
刪除檔案或目錄 adb shell rm [options]
建立資料夾 adb shell mkdir[options]
複製檔案 adb shell cp [options] <source>
移動或者更名檔案 adb shell mv [options] <source>

Logcat

用途 命令
列印日誌檔案 adb logcat [options] [filter-specs]

Screenshot

用途 命令
截圖儲存為test.png adb shell screencap /sdcard/test.png
錄屏儲存為test.mp4 adb shell screencord /sdcard/test.mp4

裝置管理連線

USB 連線

通過 USB 連線來正常使用 adb 需要以下步驟:

  1. 確認硬體狀態正常(包括 Android 裝置處於正常開機狀態,USB 連線線和各種介面完好)。
  2. Android 裝置的開發者選項和 USB 除錯模式已開啟(可以在「設定」-「開發者選項」-「USB除錯」開啟USB除錯)。
  3. 確認裝置驅動狀態正常(安裝ADB驅動程式)。
  4. 通過 USB 線連線好電腦和裝置後確認狀態。
  5. 通過 adb devices 命令檢視裝置連線情況。

WLAN 連線(需要 USB 線)

藉助 USB 通過 WiFi 連線來正常使用 adb 需要以下步驟:

  1. 將 Android 裝置與要執行 adb 的電腦連線到同一個 WiFi。
  2. 將裝置與電腦通過 USB 線連線(可通過 adb devices 命令檢視裝置連線情況)。
  3. 通過 adb tcpip 5555 命令讓裝置在 5555 埠監聽 TCP/IP 連線。
  4. 斷開 USB 連線。
  5. 找到裝置的 IP 地址(可以在「設定」-「關於手機」-「狀態資訊」-「IP地址」檢視 IP 地址)。
  6. 通過 adb connect 命令使用 IP 地址將 Android 裝置與電腦連線。
  7. 通過 adb devices 命令檢視裝置連線情況。
  8. 使用完畢後可通過 adb disconnect 命令斷開無線連線。

WLAN 連線(無需藉助 USB 線)

注:需要 root 許可權。不借助 USB 通過 WiFi 連線來正常使用 adb 需要以下步驟:

  1. 在 Android 裝置上安裝一個終端模擬器(可通過Terminal Emulator for Android Downloads下載)。
  2. 將 Android 裝置與要執行 adb 的電腦連線到同一個 WiFi。
  3. 開啟 Android 裝置上的終端模擬器,在裡面依次執行命令:
su
setprop service.adb.tcp.port 5555
複製程式碼
  1. 找到裝置的 IP 地址(可以在「設定」-「關於手機」-「狀態資訊」-「IP地址」檢視 IP 地址)。
  2. 通過 adb connect 命令使用 IP 地址將 Android 裝置與電腦連線。
  3. 通過 adb devices 命令檢視裝置連線情況。

WiFi 連線轉為 USB 連線

通過adb usb命令以USB模式重新啟動ADB:

adb usb
複製程式碼