Android adb 命令使用總結


adb原理

參考文檔

  How ADB works        http://www.cnblogs.com/ifantastic/p/5186362.html        

  http://blog.csdn.net/stpeace/article/details/24933813

 

 

Adb是Android調試橋的縮寫。在看Adb命令前,先弄清楚原理,一圖頂千言。

 

總結下:無論是執行adb命令和還是調用ddmlib庫都是作為adb client連接到pc上的adb server服務(默認端口為5037)。adb server服務再連接到各個設備上運行着的adbd服務(默認監聽端口為5555),建立連接后adb server負責在adb client 和adbd之間轉發信息。

方式一是直接通過TCP連接設備。方式二是通過USB連接設備。

 

Adb命令

help  幫助信息

version  版本信息

 

服務啟停

adb start-server  啟動adb server

adb kill-server   停止adb server

 

設備相關

adb devices  顯示所有設備(格式為 串號和狀態)

  • -l   顯示qulifiers (如: product:MT7-CL00 model:HUAWEI_MT7_CL00 device:hwmt7)

adb wait-for-device  device online前一直阻塞,可以作為不需要系統完全啟動就能執行的命令的前綴使用:如 adb wait-for-device shell getprop

adb get-state

adb get-serialno

adb get-devpath

adb status-window  持續顯示設備狀態(有變化時更新)

 

adb connect <host>[:<port>]  通過TCP網絡連接設備,即上圖中的方式一。(默認端口:5555) 

adb disconnect <host>[:<port>]  斷開通過網絡連接的設備

 

adb root  以root權限重啟設備上的adbd服務

adb usb  重啟adbd服務,監聽USB

adb tcpip <port>  重啟adbd服務,監聽指定的TCP端口

 

adb指定目標設備選項(可以沒有)

-a   所有設備

-d  USB連接的設備

-e  模擬器設備

-s <Serial-No>  按串號指定設備

-p <product name or path>  不清楚

 

-H <server_host> 指定連接的adb server主機

-P <server_port>  指定連接的adb server端口

 

adb remout  重新以讀寫模式掛載/system 和 /vendor 分區

adb reboot  重啟設備

  • bootloader  重啟進入bootloader模式
  • recovery  重啟並進入recovery模式

 

 

文件傳送

adb pull <path-dev> <path-pc>   把設備中的文件或目錄拷貝到PC端

  • -p  顯示進度

adb push <path-pc> <path-dev>  把PC端文件或目錄拷貝到設備

  • -p  顯示進度
  • -a  拷貝時間戳和模式

adb sync [<directory>]     把PC端改動的內容拷貝到設備(默認為/system,/vendor,/data)

  • -l 只列出,不拷貝

 

adb install <apkfile-pc>  安裝應用

  • -r  替換
  • -s  安裝到SD卡

  可能的錯誤信息:

    

 

adb uninstall <package-name>  移除應用

  • -k  保留數據和緩存目錄

 

調用Android shell命令

adb shell  進入shell環境

adb shell [shell-cmd]  執行shell命令

  android shell命令總結:http://www.cnblogs.com/pixy/p/4741532.html

 

網絡相關

adb forward <spec-local> <spec-remote>  socket定向綁定:

  spec格式為: 

    tcp:<port>
    localabstract:<unix domain socket name>
    localreserved:<unix domain socket name>
    localfilesystem:<unix domain socket name>
    dev:<character device name>
    jdwp:<process pid> (remote only)

  --no-rebind  如果local端已經綁定則失敗

adb forward --remove <spec-local>  移除指定的定向綁定

adb forward --remove-all  

 

adb reverse --list  顯示所有從設備發出的反向socket連接

adb reverse <spec-remote> <spec-local>  反向socket綁定

  spec格式為:

    tcp:<port>
    localabstract:<unix domain socket name>
    localreserved:<unix domain socket name>
    localfilesystem:<unix domain socket name>

  --norebind  <spec-remote>已經綁定則失敗

adb reverse --remove <spec-remote>  移除反向綁定

adb reverse --remove-all  移除所有反向綁定

 

adb ppp <tty> [parm]  通過USB運行PPP

 

logcat

adb logcat [option] [FILTER-SPECS]  輸出日志數據。可以重定向到文件:adb logcat>d:\logcat.txt

  options:

-s

沉默默認的過濾器,以下兩種方式等效
logcat -s tagName:I
logcat tagName:I *:s

-v <format>

指定輸出格式,默認為

-f <file>

Log to file

-c

clear(flush) 所有log,然后退出

-d

dump log,退出

-g

獲取log循環緩沖大小,退出

-b <buffer>

請求其他循環緩沖,main(default), radio, events

-B

output log in binary

  FILTER-SPECS:   tagName:[PRIORITY]...

  PRIORITY:

V

Verbose

D

Debug

I

Info

W

Warn

E

Error

F

Fatal

S

Silent (supress all output) 

tagNamepriority都可以用*作為通配符logcat命令中必須使用-s選項或加*:s才能過濾掉無關的log

    

 

調試相關

adb bugreport  顯示dumpsys, dumppstate, logcat信息

adb jdwp  顯示有效地jdwp (java debug wire protocol) 進程

 

其他

adb emu <emu_command>  模擬器控制台命令

adb backup  備份系統數據到文件

  • -f <file>  指定文件名(省確為backup.ab)
  • -apk | -noapk  是否備份.apk(默認為-noapk)
  • -obb | -noobb  是否備份apk擴展文件.obb,默認為noobb
  • -shared | -noshared  是否備份Shared Storeage,SD 卡內容(默認為noshared)
  • -all  備份所有安裝的應用
  • -system|-nosystem  -all是否包括系統應用,(默認為system)
  • [<packages...>]  要備份的應用列表。如果有-all或-shared,可以沒有此項。

adb restore <file>  從備份文件恢復數據。

 

adb disable-verity

adb keygen <file>  生成密鑰對,<file>文件中存放私鑰,<file>.pub中存放公鑰。已存在文件會被覆蓋。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM