,Android Debug Bridge,包含在 Google 的(de) Android SDK 中,可用于從計算(suan)機控制您的(de) Android 設備。以下是您可以與 一起(qi)使用的(de)一些最常(chang)見的(de)命令及其用法
:-- | -- |
---|---|
adb devices | 列出連接的設備 |
adb devices -l | 列出連接的設備和種類 |
adb root | 以 root 權限重新啟動 adbd |
adb start-server | 啟動 adb 服務器 |
adb kill-server | 殺死 adb 服務器 |
adb remount | 重新掛載具有讀/寫訪問權限的文件系統 |
adb reboot | 重啟設備 |
adb reboot bootloader | 將設備重新啟動到快速啟動 |
adb disable-verity | 將設備重新啟動到快速啟動 |
wait-for-device
可以在 adb
之后指定,以確保該命令在設備連接后運行-s
可用于在多個連接時將命令發送到特定設備$ adb wait-for-device devices
List of devices attached
somedevice-1234 device
someotherdevice-1234 device
$ adb -s somedevice-1234 root
:-- | -- |
---|---|
adb logcat | 開始將日志消息打印到標準輸出 |
adb logcat -g | 顯示當前日志緩沖區大小 |
adb logcat -G <size> | 設置緩沖區大小(K 或 M) |
adb logcat -c | 清除日志緩沖區 |
adb logcat *:V | 啟用所有日志消息(詳細) |
adb logcat -f <filename> | 轉儲到指定文件 |
$ adb logcat -G 16M
$ adb logcat *:V > output.log
V
詳細(最低優先級)D
調試I
信息W
警告E
錯誤F
嚴重錯誤S
靜默(最高優先級)過濾器表達式顯示了優先級不低于 警告
的所有(you)(you)標記的所有(you)(you)日志消息:
$ adb logcat *:W
:-- | -- |
---|---|
adb push <local> <remote> | 將本地復制到遠程設備 |
adb pull <remote> <local> | 將遠程設備從設備復制到本地 |
$ echo "This is a test" > test.txt
$ adb push test.txt /sdcard/test.txt
$ adb pull /sdcard/test.txt pulledTest.txt
:-- | -- |
---|---|
adb shell <command> | 在設備上運行指定的命令(大多數 unix 命令在這里工作) |
adb shell wm size | 顯示當前屏幕分辨率 |
adb shell wm size WxH | 將分辨率設置為 WxH |
adb shell pm list packages | 列出所有已安裝的包 |
adb shell pm list packages -3 | 列出所有已安裝的 3rd 方包 |
adb shell monkey -p app.package.name | 啟動指定包 |
:-- | -- |
---|---|
adb shell install <apk> | 安裝應用程序 |
adb shell install <path> | 手機路徑安裝應用 |
adb shell install -r <path> | 手機路徑安裝應用 |
adb shell uninstall <name> | 刪除應用程序 |
:-- | -- |
---|---|
/data/data/<package>/databases | 應用程序數據庫 |
/data/data/<package>/shared_prefs/ | 共享偏好 |
/data/app | 用戶安裝的apk |
/system/app | 預裝的 APK 文件 |
/mmt/asec | 加密的應用程序|App2SD |
/mmt/emmc | 內部 SD 卡 |
/mmt/adcard | 外部/內部 SD 卡 |
/mmt/adcard/external_sd | 外置 SD 卡 |
:-- | -- |
---|---|
adb shell ls | 列出目錄內容 |
adb shell ls -s | 每個文件的打印尺寸 |
adb shell ls -R | 遞歸列出子目錄 |
:-- | -- |
---|---|
adb get-statе | 打印設備狀態 |
adb get-serialno | 獲取序列號 |
adb shell dumpsys iphonesybinfo | 獲取 IMEI |
adb shell netstat | 列出 TCP 連接 |
adb shell pwd | 打印當前工作目錄 |
adb shell dumpsys battery | 電池狀態 |
adb shell pm list features | 列出電話功能 |
adb shell service list | 列出所有服務 |
adb shell dumpsys activity <package>/<activity> | 活動信息 |
adb shell ps | 打印進程狀態 |
adb shell wm size | 顯示當前屏幕分辨率 |
dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp' | 打印當前應用程序的打開活動 |
:-- | -- |
---|---|
adb shell list packages | 列出包名稱 |
adb shell list packages -r | 列出包名 + apks 的路徑 |
adb shell list packages -3 | 列出第三方包名稱 |
adb shell list packages -s | 僅列出系統包 |
adb shell list packages -u | 列出包名稱 + 已卸載 |
adb shell dumpsys package packages | 列出所有應用程序的信息 |
adb shell dump <name> | 列出一個包裹的信息 |
adb shell path <package> | apk文件的路徑 |
:-- | -- |
---|---|
adb reboot-recovery | 重啟設備進入恢復模式 |
adb reboot fastboot | 重啟設備進入恢復模式 |
adb shell screencap -p "/path/to/screenshot.png" | 截圖 |
adb shell screenrecord "/path/to/record.mp4" | 錄制設備屏幕 |
adb backup -apk -all -f backup.ab | 備份設置和應用程序 |
adb backup -apk -shared -all -f backup.ab | 備份設置、應用程序和共享存儲 |
adb backup -apk -nosystem -all -f backup.ab | 僅備份非系統應用程序 |
adb restore backup.ab | 恢復以前的備份 |
adb shell am start -a android.intent.action.VIEW -d URL | 打開網址 |
adb shell am start -t image/* -a android.intent.action.VIEW | 打開畫廊 |
:-- | -- |
---|---|
adb shell permissions groups | 列出權限組定義 |
adb shell list permissions -g -r | 列出權限詳細信息 |
:-- | -- |
---|---|
adb logcat [options] [filter] [filter] | 查看設備日志 |
adb bugreport | 打印錯誤報告 |
$ adb push example.apk /mnt/Download/
$ adb shell pm list packages -f
$ adb pull /mnt/Download/example.apk
$ adb shell install example.apk
$ adb shell install /mnt/Download/example.apk
$ adb shell settings put global http_proxy <address>:<port>
$ adb shell settings put global http_proxy :0
$ adb devices
$ adb -s 7f1c864e shell
7f1c864e
是設備 ID
$ adb connect 192.168.56.101:5555
我們可以通過 wifi
或專門使用 tcp
連接使用 adb
。 要通過 wifi
使用 adb
,首先通過 usb
連接手機并啟用 usb
調試(shi)。然后列出所有設(she)備:
$ adb devices
# 這(zhe)應該給出這(zhe)樣的輸出:
# device_id device
現在檢查 android
設備的 ip
:
$ adb shell ifconfig
# 輸出(chu):
wlan0 Link encap:UNSPEC Driver icnss
inet addr:XXX.XXX.X.XX Bcast:XXX.XXX.X.XXX
記下 inet addr
后面的 ip
地址。我們稍后會需要它。現在在某個端口重新啟動 tcpip
:
$ adb tcpip $port
例如 5555:
$ adb tcpip 5555
您現在(zai)(zai)可以斷開(kai)使(shi)用。 現在(zai)(zai)連接到設備只需給出以下(xia)命令:
$ adb connect $ip:$port
like:
$ adb connect 192.168.1.4:5555
$ adb install /Users/dev/projects/myapp.apk
$ adb shell pm path com.example.myapp
將 com.example.myapp
替換為您自己的應用程序包(bao)名稱
$ adb shell pm list package | grep app_name
$ adb pull /data/app/com.example.myapp.apk ./
$ adb push path/to/local/file /sdcard/foo.txt
$ adb shell input swipe 300 300 500 1000 # 上(shang)
$ adb shell input swipe 500 1000 300 300 # 下
使用虛擬鍵盤(pan)發送文(wen)本:
$ adb shell input text "Hello World"
$ adb shell input keyevent 66
# 66 是回車鍵碼
點擊又名點擊屏幕:
$ adb shell input tap x y
$ adb shell 'logcat --pid=$(pidof -s <package_name>)'
查看特定包的日志