Android系統(tǒng)穩(wěn)定性Log分析

前言:
在平時(shí)我們開發(fā)工作中童番,經(jīng)常會(huì)遇到系統(tǒng)死機(jī)、黑屏卡死、凍屏等各種莫名其妙的問題根蟹,這對(duì)于我們系統(tǒng)開發(fā)工作者是一大挑戰(zhàn),除了我們需要有處理問題經(jīng)驗(yàn)和能力外买决,我們需要借助Google提供的各種log分析,提高我們定位處理問題的能力!


各種常見問題:

1性雄、應(yīng)用凍結(jié)/崩潰

App這里問題比較常見,表現(xiàn)的現(xiàn)象為ANR迁筛、Crash尉桩、OOM等情況,可以通過Log日志分析:

1.捕獲通用日志
logcat log (main, system, event, radio)

2.抓取內(nèi)核日志(Dmesg/kernel logs)
adb shell  " cat  /proc/kmsg "  或者 adb shell dmesg

3.獲取系統(tǒng)ANR日志(Trace file /data/anr) 
adb pull /data/anr/  .\anr

4.獲取系統(tǒng)墓碑日志(tombstones )
adb pull /data/tombstones  .\tombstones

5.過濾運(yùn)行時(shí)異常和DEBUG異常
adb logcat  -s AndroidRuntime,DEBUG > crash.txt
2、系統(tǒng)重啟

這屬于系統(tǒng)的穩(wěn)定系析恋,出現(xiàn)在system server死鎖問題,然后Android的WatchDog看門狗檢測(cè)到了,然后重啟Android相關(guān)進(jìn)程導(dǎo)致哩牍,可以通過以下手段捕獲奔潰日志:

1.捕獲通用日志
logcat log (main, system, event, radio)

2.抓取內(nèi)核日志(Dmesg/kernel logs)
adb shell  " cat  /proc/kmsg "  或者 adb shell dmesg

3.抓取bugreport信息(該信息是Android為了方便開發(fā)人員分析整個(gè)系統(tǒng)平臺(tái)和某個(gè)app在運(yùn)行一段時(shí)間之內(nèi)的所有信息荚孵,專門開發(fā)了bugreport工具)
adb shell bugreport  > bugreport.txt

4.抓取dumpstate信息(dumpstate類似于dumpsys都是android提供給開發(fā)者的幫助了解系統(tǒng)運(yùn)行狀態(tài)的利器)
adb shell dumpstate > dumpstate.txt

5.抓取dumpsate(dumpsys都是android提供給開發(fā)者的幫助了解系統(tǒng)運(yùn)行狀態(tài)的利器)
adb shell dumpsys > dumpsys.txt

6.抓取Binder傳輸日志
adb pull /d/binder/ .\binder

7.獲取系統(tǒng)ANR日志(Trace file /data/anr) 
adb pull /data/anr/  .\anr

8.獲取系統(tǒng)墓碑日志(tombstones )
adb pull /data/tombstones  .\tombstones
3判没、手機(jī)黑屏(Black screen)

終端黑屏(Black screen)這種系統(tǒng)穩(wěn)定性問題,一般出現(xiàn)問題時(shí),此時(shí)power按鍵一般能用臣咖,可以通過adb shell getevent查看到input事件信息酣胀,可以通過如下手段捕獲崩潰日志:

1.捕獲通用日志
logcat log (main, system, event, radio)

2.抓取內(nèi)核日志(Dmesg/kernel logs)
adb shell  " cat  /proc/kmsg "  或者 adb shell dmesg

3.抓取bugreport信息(該信息是Android為了方便開發(fā)人員分析整個(gè)系統(tǒng)平臺(tái)和某個(gè)app在運(yùn)行一段時(shí)間之內(nèi)的所有信息,專門開發(fā)了bugreport工具)
adb shell bugreport  > bugreport.txt

4.抓取dumpstate信息(dumpstate類似于dumpsys都是android提供給開發(fā)者的幫助了解系統(tǒng)運(yùn)行狀態(tài)的利器)
adb shell dumpstate > dumpstate.txt

5.抓取dumpsate(dumpsys都是android提供給開發(fā)者的幫助了解系統(tǒng)運(yùn)行狀態(tài)的利器)
adb shell dumpsys > dumpsys.txt

6.抓取Binder傳輸日志
adb pull /d/binder/ .\binder

7.獲取系統(tǒng)ANR日志(Trace file /data/anr) 
adb pull /data/anr/  .\anr

8.獲取系統(tǒng)墓碑日志(tombstones )
adb pull /data/tombstones  .\tombstones

9.獲取meminfo日志(Meminfo log) 
adb shell cat proc/meminfo >meminfo.txt 

10.獲取Procrank信息 (Procrank log) 
adb shell procrank >procrank.txt 

11 獲取top信息日志(Top log) 
adb shell top -m 10  >top.txt 

12.Add below information: 
?Adb workable or not, ANR or not 
?CTP workable or not
 -> touch screen and observe the output of
 "adb shell getevent". 
?Display driver workable or not
 -> Use the screencast to see
 if the screen can be displayed 
?Power key/volume key work or not? 
Menu/back/home key work or not? 

13 .查看kernel的線程函數(shù)棧
adb shell "echo t > /proc/sysrq-trigger"
adb shell "cat /proc/kmsg" > ./kmsg_trigger.txt
4、系統(tǒng)卡死/屏幕卡死(System Freeze/ Touch Panel Freeze)

這是Android系統(tǒng)穩(wěn)定性里面最嚴(yán)重的郊霎,此時(shí)一般按Power按鍵土至、菜單鍵等都是失效的,此時(shí)可以通過adb shell getevent查看不到到input事件信息,看不到任何信息了,我們這是可以通過如下手段捕獲日志:

1.捕獲通用日志
logcat log (main, system, event, radio)

2.抓取內(nèi)核日志(Dmesg/kernel logs)
adb shell  " cat  /proc/kmsg "  或者 adb shell dmesg

3.抓取bugreport信息(該信息是Android為了方便開發(fā)人員分析整個(gè)系統(tǒng)平臺(tái)和某個(gè)app在運(yùn)行一段時(shí)間之內(nèi)的所有信息,專門開發(fā)了bugreport工具)
adb shell bugreport  > bugreport.txt

4.抓取dumpstate信息(dumpstate類似于dumpsys都是android提供給開發(fā)者的幫助了解系統(tǒng)運(yùn)行狀態(tài)的利器)
adb shell dumpstate > dumpstate.txt

5.抓取dumpsate(dumpsys都是android提供給開發(fā)者的幫助了解系統(tǒng)運(yùn)行狀態(tài)的利器)
adb shell dumpsys > dumpsys.txt

6.抓取Binder傳輸日志
adb pull /d/binder/ .\binder

7.獲取系統(tǒng)ANR日志(Trace file /data/anr) 
adb pull /data/anr/  .\anr

8.獲取系統(tǒng)墓碑日志(tombstones )
adb pull /data/tombstones  .\tombstones

9.獲取meminfo日志(Meminfo log) 
adb shell cat proc/meminfo >meminfo.txt 

10.獲取Procrank信息 (Procrank log) 
adb shell procrank >procrank.txt 

11 獲取top信息日志(Top log) 
adb shell top -m 10  >top.txt 

12.Add below information: 
?Adb workable or not, ANR or not 
?CTP workable or not
 -> touch screen and observe the output of
 "adb shell getevent". 
?Display driver workable or not
 -> Use the screencast to see
 if the screen can be displayed 
?Power key/volume key work or not? 
Menu/back/home key work or not? 

13 .查看kernel的線程函數(shù)棧
adb shell "echo t > /proc/sysrq-trigger"
adb shell "cat /proc/kmsg" > ./kmsg_trigger.txt

14.抓取窗口信息 (Dumpsys window log)
adb shell dumpsys window > dump_window.txt

15.抓取可以 event信息(Key events log) 
adb shell getevent -rtl /dev/input/event0 按鍵事件

結(jié)語(yǔ)

以上Log分析是針對(duì)不同的Android系統(tǒng)穩(wěn)定性曾雕,提供抓日志方法揩环。有了相關(guān)日志信息我們才能進(jìn)一步進(jìn)行具體日志分析,分析日志需要考研開發(fā)人員的硬實(shí)力了蹦渣,有什么問題歡迎留言探討圃庭!

拓展內(nèi)容:
BugReport分析工具:
google開源
ChkBugReport開源

另一種問題定位分析方式,更精確:Android 系統(tǒng)全局Bug日志監(jiān)聽

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末儒旬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子茶鹃,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肤无,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)笔时,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人骡楼,你說(shuō)我怎么就攤上這事川慌。” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵沛膳,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng)糠排,這世上最難降的妖魔是什么廓俭? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任宽菜,我火速辦了婚禮烈菌,結(jié)果婚禮上诡壁,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布融撞。 她就那樣靜靜地躺著鹏控,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天谤民,我揣著相機(jī)與錄音胞锰,去河邊找鬼吵聪。 笑死块攒,一個(gè)胖子當(dāng)著我的面吹牛趣避,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼括饶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蹦掐!你這毒婦竟也來(lái)了藤滥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤垛贤,失蹤者是張志新(化名)和其女友劉穎坯门,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年轩缤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了征椒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剪芥。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡箭券,死狀恐怖荆永,靈堂內(nèi)的尸體忽然破棺而出骂删,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布蚀狰,位于F島的核電站扮授,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掌呜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦株旷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至英妓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留列赎,地道東北人砖瞧。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓斋扰,卻偏偏與公主長(zhǎng)得像损离,于是被迫代替她去往敵國(guó)和親祖乳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子眷昆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容