常用ADB的命令

快速尋找Activity/Fragmente及打印Logcat信息的ADB常用命令

在接手新項目或新手入職,查看功能所在對應(yīng)的Activity/Fragment時,能快速定位,縮小范圍找到業(yè)務(wù)邏輯實現(xiàn)。
熟悉常用的Logcat查看命令也能快速定位問題

ADB查看APP的常用命令

查看當前界面Activity:

adb shell "dumpsys activity top | grep ACTIVITY | tail -n 1"
  • dumpsys activity top :打印頂層Activity信息
  • grep ACTIVITY:從上個命令結(jié)果中過濾出Activity相關(guān)信息
  • tail -n 1:從上一步過濾結(jié)果中繼續(xù)過濾出最后一條記錄,也就是當前界面(頂層top)activity

查看當前界面Fragment:

adb shell "dumpsys activity top | grep '#0: ' | tail -n 1"
或adb shell "dumpsys activity top | grep '#[0-9]: ' | tail -n 1"
  • grep '#0: ' : 當前第一個Fragment

如果不知道一個Activity里有幾個Fragment,使用這命令,Activity信息棧里顯示有那些相關(guān)的Fragment

adb shell dumpsys activity top
命令 描述
adb shell ps 查看進程
adb shell dumpsys activity 獲取當前 Android 系統(tǒng) Activity 棧中 Activity 信息
adb shell dumpsys activity top 獲取當前 Android 系統(tǒng) 中與用戶交互的 Activity 的詳細信息
adb shell dumpsys meminfo 應(yīng)用包名 查看應(yīng)用的內(nèi)存使用情況
adb shell dumpsys package 應(yīng)用包名 獲取手機里面某個 apk 的應(yīng)用信息、版本信息
adb shell pm list package -3 列出所有的應(yīng)用的包名 (-s:列出系統(tǒng)應(yīng)用 -3:列出第三方應(yīng)用 -f:列出應(yīng)用包名及對應(yīng)的apk名及存放位置 -i:列出應(yīng)用包名及其安裝來源)
adb shell dumpsys activity activities 顯示當前所有在運行的任務(wù)棧,并可查看棧中所有的 Activity 的列表
adb shell wm size 手機屏幕分辨率
adb shell wm density 手機屏幕密度
adb shell getprop ro.product.model 查看設(shè)備型號

獲取連接的設(shè)備列表及設(shè)備狀態(tài)

adb devices

安裝APK

adb install path_to_apk

-l向前鎖定應(yīng)用
adb install -l your.apk #forward lock application
-r替換已存在應(yīng)用
adb install -r test.apk #replace existing application
-t測試package標志
adb install -t test.apk #allow test packages
-s將應(yīng)用安裝到sdcard
adb install -s test.apk #install application on sdcard
-d忽略版本號安裝apk
adb install -d test.apk #allow version code downgrade
-p部分安裝apk標志
  • path_to_apk:指apk的絕對路徑

卸載 APK

adb uninstall 應(yīng)用包名
//使用-k參數(shù):保留安裝包的數(shù)據(jù)和緩存目錄
adb uninstall -k 應(yīng)用包名 

Logcat常用命令

捕捉手機里已經(jīng)發(fā)生過的崩潰日志,bugreport是支持所有手機日志信息

D:\bugreport>adb bugreport > 123.txt

輸出到指定目錄到123.txt文件(過程需要等待幾分鐘時間),會down下一個所有日志的壓縮包。

在此目錄下輸入命令:findstr "FATAL EXCEPTION" .\** 找異常所有的對應(yīng)文件,然后打開對應(yīng)的文件,然后全文搜索FATAL EXCEPTION,就可以找出問題所在。

查看命令幫助, 查看一下一些簡單的數(shù)據(jù)格式

adb logcat --help

使用命令adb logcat的打印:從上而下,優(yōu)先級最高
V - Verbose(lowest priority:優(yōu)先級最低,輸出得最多)
D - Debug
I - Info
W - Warning
E - Error
F - Fatal
S - Silent(highest priority,on which nothing is ever printed:優(yōu)先級最高,啥也不輸出)

清除緩存信息

adb logcat -c
  • 最好的做法的先使用-c清除之前的日志信息,再觸發(fā)事件,查看最近的日志信息。

使用tag以后級別失效的原因是沒有加上*:S。不加靜默所有其他日志的選項就會把其他日志都輸出。

在developers文檔有介紹 Logcat 命令行工具 | Android 開發(fā)者 | Android Developers (google.cn)

打印優(yōu)先級為Error以上的日志信息。

adb logcat *:E
  • *表示任何的Tag
  • E表示優(yōu)先級

顯示所有優(yōu)先級Warning以上的日志

adb logcat *:W *:S

打印時間和優(yōu)先級為Error以上的日志信息:

adb logcat -v time *:E *:S

把日志信息保存到電腦上D盤log.txt文件上

adb logcat -v time *:E *:S > D:\log.txt

如果需要精準到某他APP上,則在其后面添加上 " | findstr app進程ID"

注意:

Window環(huán)境:findstr
Mac或Linux環(huán)境:grep

打印某個APP下,且tag為tagName的info級別以上的信息

adb logcat TagName:I *:S | findstr app進程ID

打印某個APP的某個Tag的logcat信息(級別從E到S)

adb logcat TagName:E *:S | findstr app進程ID

打印某個APP的某些Tag的logcat信息(級別從E到S)

adb logcat TagName:E Tag:E *:S | findstr app進程ID
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容