更多內容請關注個人博客:blog.csdn.net/mtx_03/article/details/69382209
作為一名Android開發的同學,還是測試開發者,adb命令都是工作中必備的技能,今天主要梳理一下adb的初級使用技能。
adb是什么?,我們來看看Google官方給它的解釋:
adb (android debug bridge) 是一個通用命令行工具,其允許你與模擬器實例或連接的 Android 設備進行通信。它可為各種設備操作提供便利,如安裝和調試應用,并提供對 Unix shell(可用來在模擬器或連接的設備上運行各種命令)的訪問。
adb是一個強大的命令行工具,我們通過它可以去操作我們的設備,adb的位置一般在android sdk的platform-tools目錄下。我們看看adb強大的命令。
1.adb devices
devices命令可以檢測當前電腦上連接了那些設備,它的輸出方式為
List of devices attached
serial_number state
serial_number :由adb創建的序列號,用來標示一個設備
state:狀態號,它有三種狀態
offline — 實例未連接到 adb 或不響應。
device — 實例現在已連接到 adb 服務器。請注意,此狀態并不表示 Android 系統已完全啟動且可以運行,因為在此實例連接到 adb 時系統仍在啟動。不過,在啟動后,這將是模擬器/設備實例的正常運行狀態。
no device — 未連接模擬器/設備。
2.adb [-d|-e|-s serial_number] <子命令> 向特定的設備發送命令
如果只有一個設備或者模擬跟電腦相連,adb默認會將命令發送到該設備上,實際工作中我們的工作機上可能不止連接了一臺設備,那如何向一臺特定的設備發送命令呢
-d 將命令發送到真實的android設備上
-e 將命令發送到android的模擬器
-s 設備或者模擬器的序列號
3. install [options] path 安裝應用:例如在一個手機上裝一個apk,adb -d -s 39ad65 install test.apk
path:安裝應用的絕對路徑名稱
[options]:可選項,已有以下幾個:
-l:安裝具有轉發鎖定功能的軟件包。
-r:重新安裝現有應用,保留其數據。
-t:允許安裝測試 APK。
-i installer_package_name:指定安裝程序軟件包名稱。
-s:在共享的大容量存儲(如 sdcard)上安裝軟件包。
-f:在內部系統內存上安裝軟件包。
-d:允許版本代碼降級。
-g:授予應用清單文件中列出的所有權限。
4 uninstall [options] package 卸載應用
默認卸載應用時刪除應用緩存,options 可選參數為-K表示卸載應用后保留數據和緩存目錄,卸載應用的時候指定應用包名即可。
5.adb pull/adb push 命令
adb pull remote local 從設備或者模擬器復制文件到本地
adb push local remote 將文件復制到設備或者模擬器
local 和 remote 指的是開發計算機(本地)和模擬器/設備實例(遠程)上目標文件/目錄的路徑。例如:adb push test.txt /sdcard/test.txt
6.adb forward 端口轉發命令
這個命令也是超級實用的一個命令,這個命令和其他工具配合實用,就可以是實現實時抓取android手機的網絡請求數據
adb forward tcp:8888 tcp:9999 表示從當前主機的8888端口到設備的9999端口的轉發
7.adb kill-server adb start-server
為啥這個兩個命令放到一起說呢,因為一般它們都是配合實用的,這一對命令使用頻率非常高,adb kill-server 殺掉adb進程,當我的手機連接到電腦上,發現adb啟動不了,我們可以先用kill-server命令,再使用adb start-server命令來啟動adb進程。
二.adb shell 命令;
進入adb shell命令也非常簡單,直接在指定的設備上執行adb shell即可
pm命令
install [options] path 安裝應用程序,pm install path 在root手機root情況下可以實現靜默安裝,
-l:安裝具有轉發鎖定功能的軟件包。
-k:移除軟件包后保留數據和緩存目錄。
-r:重新安裝現有應用,保留其數據。
-t:允許安裝測試 APK。
-i installer_package_name:指定安裝程序軟件包名稱。
-s:在共享的大容量存儲(如 sdcard)上安裝軟件包。
-f:在內部系統內存上安裝軟件包。
-d:允許版本代碼降級。
-g:授予應用清單文件中列出的所有權限。
uninstall [options] package 卸載一個應用
-k:移除軟件包后保留數據和緩存目錄
2.clear package 清除目標應用的所有數據
3. am start 命令 例如啟動一個Activity
adb shell am start -n 包名/包名.類名
4. force-stop package
強行停止與 package(應用的包名稱)關聯的所有應用
5. kill [options] package
終止與 package(應用的包名稱)關聯的所有進程。此命令僅終止可安全終止且不會影響用戶體驗的進程。
–user user_id | all | current:指定將終止其進程的用戶;如果未指定,則終止所有用戶的進
6.ps 命令 獲取進程信息
輸出格式:
USER PID PPID VSIZE RSS WCHAN PC NAME
USER : 進程的當前用戶;
PID : process ID的縮寫,也就進程號;
PPID : process parent ID,父進程ID
VSIZE : virtual size,進程虛擬地址空間大?。?/p>
RSS : 進程正在使用的物理內存的大??;
WCHAN : 進程如果處于休眠狀態的話,在內核中的地址;
PC : program counter,
NAME : process name,進程的名稱