1. 程式人生 > 實用技巧 >adb 命令小結

adb 命令小結

Android 除錯橋 (adb)

Android 除錯橋 (adb) 是一種功能多樣的命令列工具,可讓您與裝置進行通訊。adb 命令可用於執行各種裝置操作(例如安裝和除錯應用),並提供對 Unix shell(可用來在裝置上執行各種命令)的訪問許可權。

在裝置上啟用 adb 除錯

要在通過 USB 連線的裝置上使用 adb,您必須在裝置的系統設定中啟用USB 除錯(位於開發者選項下)。

在搭載 Android 4.2 及更高版本的裝置上,“開發者選項”螢幕預設情況下處於隱藏狀態。如需將其顯示出來,請依次轉到設定 > 關於手機,然後點按版本號七次(注意不同的裝置開啟方法可能不同)。返回上一螢幕,在底部可以找到開發者選項

adb的下載安裝

官方下載平臺,請點這裡

一、軟體安裝與解除安裝

檢視連結的裝置:

adb devices

查手機包名

adb shell pm list packages -3 查系統除了第三方應用包名

adb shell pm list packages -s 查系統應用所有包名

adb shell pm list packages 查手機裝的所有app包名

將當前手機視窗上正在使用的App包名和Activity名稱顯示出來(例如進入到樂讀某個頁面)

adb shell dumpsys activity | grep "mResumedActivity"

安裝app(樂讀為例):

adb install apk 地址/電腦也可以直接拖過去自動生成地址

小米手機可能會失敗並且提示 Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]

解決方案:

進去開發者選項開啟USB除錯和USB安裝,手機出現彈框時點選允許安裝

解除安裝app:

adb uninstall 包名(樂讀為例)

二、日誌服務

1.檢視日誌

adb logcat

2.退出日誌介面

ctrl+c

3.清空日誌資訊:

adb logcat -c

4.過濾器查日誌:

adb logcat [選項] [過濾項],其中 選項 和 過濾項是可選的

(1) 選項解析

"-s"選項 : 設定輸出日誌的標籤, 只顯示該標籤的日誌;

"-f"選項 : 將日誌輸出到檔案, 預設輸出到標準輸出流中, -f 引數執行不成功;

"-r"選項 : 按照每千位元組輸出日誌, 需要 -f 引數, 不過這個命令沒有執行成功;

"-n"選項 : 設定日誌輸出的最大數目, 需要 -r 引數, 這個執行 感覺 跟 adb logcat 效果一樣;

"-v"選項 : 設定日誌的輸出格式, 注意只能設定一項;

"-c"選項 : 清空所有的日誌快取資訊;

"-d"選項 : 將快取的日誌輸出到螢幕上, 並且不會阻塞;

"-t"選項 : 輸出最近的幾行日誌, 輸出完退出, 不阻塞;

"-g"選項 : 檢視日誌緩衝區資訊;

"-b"選項 : 載入一個日誌緩衝區, 預設是 main, 下面詳解;

"-B"選項 : 以二進位制形式輸出日誌;

(2)過濾日誌級別

優先順序是下面的字元,順序是從低到高:

V — 明細 verbose(最低優先順序)

D — 除錯 debug

I — 資訊 info

W — 警告 warn

E — 錯誤 error

F — 嚴重錯誤 fatal

S — 無記載 silent

詳情請檢視這裡

5.常用日誌過濾

(1)adb logcat -s 級別標籤

(2)輸出日誌到指定的檔案:

adb logcat [選項][過濾項]>指定的檔案

(3)輸出指定App日誌adb logcat [過濾項]:find “包名”:

三、螢幕操控以及複製操作

1.截圖到手機:

adb shell screencap /路徑 /檔名

2.錄製手機視訊adb shell screenrecord /sdcard/demo.mp4

如需開始錄製裝置螢幕,請執行screenrecord命令以錄製視訊。然後,執行pull命令以將視訊從裝置下載到主機. 按 Ctrl + C 鍵(在 Mac 上,按 Command + C 鍵)可停止螢幕錄製;如果不手動停止,到三分鐘或--time-limit設定的時間限制時,錄製將會自動停止

3.拷貝圖片或者檔案到電腦上:

adb pull 手機檔案路徑 電腦路徑

你可以使用pull和push命令將檔案複製到裝置或從裝置複製檔案。與install命令(僅將 APK 檔案複製到特定位置)不同,使用pull和push命令可將任意目錄和檔案複製到裝置中的任何位置。

4.如需從裝置中複製某個檔案或目錄(及其子目錄),請使用以下命令:

adb pull remote local

5.如需將某個檔案或目錄(及其子目錄)複製到裝置,請使用以下命令:

adb push local remote

6.將local和remote替換為開發機器(本地)和裝置(遠端)上的目標檔案/目錄的路徑。例如:

adb push foo.txt /sdcard/foo.txt

7.檢視手機解析度:

adb shell wm size

四、CPU及記憶體操作

top命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表.該命令可以按CPU使用.記憶體使用和執行時間對任務進行排序.

1.檢視top幫助

adb shell –help

2.檢視裝置cpu和記憶體佔用情況:

adb shell top

PID 程序id

USER 程序所有者的使用者名稱

PR 優先順序

NI 負值表示高優先順序,正值表示低優先順序

VIRT 程序使用的虛擬記憶體總量,單位kb

RES 程序使用的、未被換出的實體記憶體大小,單位kb

%CPU 上次更新到現在的CPU時間佔用百分比

%MEM 程序使用的實體記憶體百分比

TIME+ 程序使用的CPU時間總計

3.列印每個程序使用CPU詳情輸出至cpu.txt:

adb shell top > D:\CPU.txt

3. adb shell top -d 2 //每2s重新整理一次

-m num Maximum number of processes to display. // 最多顯示多少個程序

-n num Updates to show before exiting. // 重新整理次數

-d num Seconds to wait between updates. // 重新整理間隔時間(預設5秒)

-s col Column to sort by (cpu,vss,rss,thr). // 按哪列排序

-t Show threads instead of processes. // 顯示執行緒資訊而不是程序

-h Display this help screen. // 顯示幫助文件

4.獲取某個應用的CPU資料

adb shell top | grep "package資訊"

例如檢視樂讀app的時時cpu佔用情況

10秒重新整理一次顯示CPU佔用情況:adb shell top -d 10 | grep com.youdao.yread

五、其他

1.檢視電池資訊:

adb shell dumpsys battery

2.呼叫 Activity 管理器 (am)

在 adb shell 中,您可以使用 Activity 管理器 (am) 工具發出命令以執行各種系統操作,如啟動 Activity、強行停止程序、廣播 intent、修改裝置螢幕屬性,等等。在 shell 中,相應的語法為:amcommand

您也可以直接從 adb 發出 Activity 管理器命令,無需進入遠端 shell。例如:

adb shell am start -a android.intent.action.VIEW

詳情請看官方文件

3.裝置連結

硬體裝置連結類問題請點選這裡