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

我們在接觸一個新的項目或入職新公司接手項目,特別是大型項目,對項目不熟悉,有些小伙伴經(jīng)常去找同事幫忙找這個頁面對應(yīng)是那個Activity或Fragment時,如果是長時間去問這些問題,會大量浪費同事的時間,同時對我們自己的成長不是很好。我們要學(xué)會怎么去找切入口。下面分享自己在日常開發(fā)使用的adb命令(基于windows平臺),我平時怎么快速定位頁面對應(yīng)的Activity或Fragment,打印日志信息也很關(guān)鍵的實戰(zhàn)所用到的,希望幫到大家。

ADB查看APP的常用命令

查看當(dāng)前界面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ù)過濾出最后一條記錄,也就是當(dāng)前界面(頂層top)activity

查看當(dāng)前界面Fragment:

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

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

adb shell dumpsys activity top
命令 描述
adb shell ps 查看進(jìn)程
adb shell dumpsys activity 獲取當(dāng)前 Android 系統(tǒng) Activity 棧中 Activity 信息
adb shell dumpsys activity top 獲取當(dāng)前 Android 系統(tǒng) 中與用戶交互的 Activity 的詳細(xì)信息
adb shell dumpsys meminfo 應(yīng)用包名 查看應(yīng)用的內(nèi)存使用情況
adb shell dumpsys package 應(yīng)用包名 獲取手機(jī)里面某個 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 顯示當(dāng)前所有在運(yùn)行的任務(wù)棧,并可查看棧中所有的 Activity 的列表
adb shell wm size 手機(jī)屏幕分辨率
adb shell wm density 手機(jī)屏幕密度
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標(biāo)志
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標(biāo)志
  • path_to_apk:指apk的絕對路徑

卸載 APK

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

Logcat常用命令

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

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

如果需要精準(zhǔn)到某他APP上,則在其后面添加上 " | findstr app進(jìn)程ID"

注意:

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

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

adb logcat TagName:I *:S | findstr app進(jìn)程ID

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

adb logcat TagName:E *:S | findstr app進(jìn)程ID

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

adb logcat TagName:E Tag:E *:S | findstr app進(jìn)程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)容

  • 原文鏈接:m.itdecent.cn 1、查看最上層成activity名字: adb shell dumps...
    SmileToLin閱讀 988評論 0 1
  • 1. adb devices 主要作用:查看當(dāng)前已連接的設(shè)備,連接到計算機(jī)的Android設(shè)備或者模擬器將...
    C1R2閱讀 1,753評論 0 1
  • 不同操作系統(tǒng)關(guān)鍵字: 版權(quán)聲明:本文為CSDN博主「熱愛學(xué)習(xí)的吉吉」的原創(chuàng)文章,原文鏈接:https://blog...
    呵呵豆閱讀 2,917評論 0 0
  • ADB 即Android 調(diào)試橋(Android Debug Bridge),作為一個 Android 開發(fā)在日常...
    暄落丶閱讀 650評論 0 0
  • adb 常用命令 adb shell pm list packages -3 // 查看手機(jī)里的包名adb p...
    thanksdanny閱讀 2,913評論 0 0

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