其實大部分的PC開發機與Android設備的操作都是通過adb(android debug bridge)技術完成的,這是一個C/S架構的命令行工具,主要由三個部分組成
運行在PC開發機上的命令行客戶端:可以通過它安裝、卸載並調試應用
運行在PC開發機上的服務器:它管理客戶端到Android設備上adb後台進程的鏈接
運行在Android設備上的在後台執行的adb 後台進程
1.adb命令參考
子命令 說明
devices 列出所有運行的Android設備
logcat 答應Android系統的日志
bugreport 打印dumpsys、dumpstate和logcat的輸出,用在錯誤報告上作為附件輔助開發人員事後分析
install 把一個.apk 文件安裝到指定的設備
uninstall 從指定的設備上卸載一個應用
pull 將Android設備上的文件復制到本地開發機
push 將本地開發機上的文件復制到Android設備
forward 將本地套接字連接轉發到指定設備的端口,可以是套接字端口,也可以是其他端口
ppp 通過USB執行ppp
get-serialno 打印設備的序列號
get-state 打印設備的狀態
wait-for-device 在設備可用之後再執行命令
start-server 啟動adb服務器進程
kill-server 結束adb服務器進程
shell 打開指定Android設備的shell,以執行shell命令
2.adb常用命令
1.列出所有連接到開發機的設備
adb devices
List of devices attached
7f324a28 device
其中7f324a28是序列號,是adb生成的用來唯一標識一個模擬器實例或Android設備的字符串
device是狀態,表示設備已經鏈接到adb服務器了。
還有其他的狀態,如offline,表示設備沒有鏈接到adb服務器,或者因為某種原因沒有響應;no device,表示當前沒有連接任何設備
2.使用adb安裝和卸裝應用
安裝應用
adb install test.apk
卸裝應用
adb uninstall com.test
安裝的參數是需要安裝的.apk 文件的絕對路徑,而卸載時,參數是應用的包名
3.使用adb在設備和PC間傳輸文件
從PC上傳文件到Android
adb push ~/dumpstate.txt /sdcard/
上面表示將pc上dumpstate.txt上傳到Android的sdcard目錄
從Android下載到PC
adb pull /sdcard/dumpstate.txt ~/Desktop/
將Android中sdcard的dumpstate.txt下載到PC的桌面
4.執行Android shell命令
Android是基於Linux系統開發的,因此其也提供了一個Linuxshell以便於程序員運行常見的Linux命令,這些命令都保存在Android系統中的“/system/bin” 文件夾中,可以通過adb啟動遠程Android系統的shell,或者是直接執行某個shell命令.
Android shell命令中包括了很多常見的Linux shell命令(如 ls,cat,ps,kill)等,下面介紹幾個Android附帶的重要命令進行介紹
df
adb shell df
顯示Android系統中各個分區的空間
Filesystem Size Used Free Blksize
/dev 1011.4M 164.0K 1011.2M 4096
/mnt/secure 1011.4M 0.0K 1011.4M 4096
/mnt/asec 1011.4M 0.0K 1011.4M 4096
/mnt/obb 1011.4M 0.0K 1011.4M 4096
/system 1009.3M 413.5M 595.8M 4096
/cache 252.1M 4.3M 247.8M 4096
/data 4.9G 186.4M 4.7G 4096
/mnt/shell/emulated 16.0G 29.2M 16.0G 32768
dumpstate
輸出Android系統當前的狀態,如果不附帶任何參數,則其將輸出打印到屏幕。因為輸出的內容非常多,一般來說都是使用其 “-o”選項輸出到Android設備的一個文件中,有時為了節省空間,也可以使用 “-z”選項告訴dumpstate 已gzip格式將內容壓縮到輸出文件中。
adb shell dumpstate -o /sdcard/dumpstate -z
adb pull /sdcard/dumpstate.txt.gz ~/Desktop
gunzip ~/Desktop/dumpstate.txt.gz
dumpsys
Android系統默認運行了很多系統服務,如監控電池信息的battery 服務等。
dumpsys meminfo ,打印內存使用率情況
dumpsys activity , 打印所有Activity的信息
dumpsys wifi , 打印無線網絡連接信息
dumpsys window ,打印關於鍵盤,所有窗口以及窗口之間的Z軸層疊順序的信息
可以通過一個小技巧列出所有dumpsys子命令
adb shell dumpsys | grep DUMP