ADB常用命令

weixin_33727510發表於2017-09-06

命令分類

1. ADB Debugging

adb devices 輸出連線的模擬器/真機列表
adb forward tcp:8000 tcp:9000 實現PC和Android裝置Socket通訊
adb kill-server 關閉adb服務

2. 連線裝置

adb connect 192.168.0.101 使用WIFI連線裝置,connect裝置的ip地址
adb usb 使用usb連線模式

3. 包管理

adb install

adb install test.apk 安裝應用到裝置
adb install -l test.apk 對應用加鎖
adb install -r test.apk 如果安裝的應用已經存在,解除安裝已經存在的
adb install -t test.apk 允許安裝測試包
adb install -s test.apk 將應用安裝到SD卡
adb install -d test.apk 允許安裝低版本
adb install -p test.apk 安裝應用的區域性

各項引數可以結合使用

adb install -r -t test.apk

adb uninstall

刪除一個應用包

adb uninstall com.test.app 解除安裝應用
adb uninstall -k com.test.app 解除安裝應用,儲存資料和快取目錄

adb shell pm list package

輸出所有應用包名,可以追加選項過濾

adb shell pm list packages 輸出所有應用包名
adb shell pm list packages -f 輸出所有應用包名和應用的安裝位置 例如:package:/data/app/io.github.jiyangg.app/base.apk=io.github.jiyangg.app
adb shell pm list packages -d 輸出禁用的應用包名
adb shell pm list packages -e 輸出可以使用的應用的包名
adb shell pm list packages -s 輸出系統應用包名
adb shell pm list packages -3 輸出第三方應用包名
adb shell pm list packages -i 輸出應用包名和安裝器
adb shell pm list packages -u 輸出包括已經解除安裝的應用包名
adb shell pm list packages --user <USER_ID> 輸出制定使用者空間的應用包名

選項命令可以結合使用

adb shell pm list packages -3 -f 檢視第三方應用的安裝位置和包名

adb shell pm path

根據包名顯示APK存放位置

adb shell pm path com.android.phone

adb shell pm clear

刪除指定包名的所有資料,包括data和cache

adb shell pm clear com.test.abc

4. 檔案管理

adb pull

adb pull <remote> [local]

從裝置下載檔案到電腦

adb pull /sdcard/test.mp4 下載SD卡根目錄test.mp4到電腦的當前目錄下
adb pull /sdcard/test.mp4 d: 下載SD卡根目錄test.mp4到電腦的指定目錄d盤下

adb push

adb push <local> <remote>

從電腦複製檔案到裝置

adb push test.apk /sdcard 將電腦當前目錄下test.apk檔案複製到裝置SD卡根目錄
adb push d:\test.apk /sdcard 將電腦d盤目錄下test.apk檔案複製到裝置SD卡根目錄

adb shell ls

輸出檔案列表

  • ls 輸出檔案列表,不包含隱藏檔案
  • ls -a 輸出檔案列表,包含隱藏檔案
  • ls -i 輸出檔案列表,包含檔案下標
  • ls -s 輸出檔案列表,包含檔案的大小
  • ls -n 輸出檔案列表,包含檔案的UID,GID
  • ls -R 遞迴列出子目錄

adb shell rm

刪除檔案

  • rm -f 強制刪除檔案
  • rm -r 遞迴刪除資料夾的檔案
  • rm -d 刪除資料夾,即使非空.(==rmdir)
  • rm -i 刪除前提示

adb shell mkdir

建立目錄

  • mkdir /sdcard/tmp
  • mkdir -m 777 /sdcard/tmp 建立並設定許可權
  • mkdir -p /sdcard/tmp/sub1/sub2 根據需要建立父目錄

adb shell touch 新建檔案

adb shell pwd 返回當前路徑

adb shell cp 複製檔案

adb shell mv 移動或重新命名檔案

5. 網路

adb shell netstat 網路資訊統計
adb shell netcfg 檢視網路連線資訊,通過配置檔案管理

adb shell ip

ip [ OPTIONS ] OBJECT

OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm |netns | l2tp }

OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |-f[amily] { inet | inet6 | ipx | dnet | link } |-l[oops] { maximum-addr-flush-attempts } |-o[neline] | -t[imestamp] | -b[atch] [filename] |-rc[vbuf] [size]}

adb shell ip -f inet addr show wlan0 顯示WIFI的ip地址

6. Logcat

列印日子到螢幕

adb logcat [option] [filter-specs]

adb logcat 列印所有日誌

根據不同的級別列印日誌,日誌級別:V < D < I < W < E

  • V : Verbose 詳細
  • D : Debug
  • I :Info
  • W :Warn
  • E : Error
adb logcat *:V 顯示V,D,I,W,E級別日誌 
adb logcat *:D 顯示D,I,W,E級別日誌
adb logcat *:I 顯示I,W,E級別日誌
adb logcat *:W 顯示W,E級別日誌
adb logcat *:E 顯示E級別日誌
adb logcat *:F 顯示致命級別日誌
adb logcat *:S 沉默級別,不顯示任何日誌

adb logcat -b <Buffer>

檢視緩衝區資訊

adb logcat -b main 預設,檢視全部緩衝區
adb logcat -b radio 檢視包含無線電/電話相關訊息的緩衝區
adb logcat -b event 檢視包含事件相關訊息的緩衝區
adb logcat -c 清除整個日誌並退出
adb logcat -d  將日誌全部列印到螢幕並退出
adb logcat -f test.logs 將日誌寫入到檔案test.logs
adb logcat -g 輸出日誌緩衝區大小並退出
adb logcat -n <count>
adb logcat -r <kbytes> 日誌檔案每次的輸出,需要結合 -f