ANR 記錄

參考:

http://rayleeya.iteye.com/blog/1955652
https://codezjx.github.io/2017/08/06/anr-trace-analytics/

如何導(dǎo)出 /data/anr/traces.txt文件

先在c盤中建立好1.txt文件浓若;
執(zhí)行導(dǎo)出anr日志命令:
adb pull /data/anr/traces.txt C:/1.txt

記錄anr日志卓舵,可通過以下開源框架

https://github.com/SalomonBrys/ANR-WatchDog

說明:
關(guān)于ANR traces的保存時(shí)長:
traces.txt:只保留最近一次發(fā)生ANR時(shí)的信息同规,位置:/data/anr/traces.txt
DropBox:會保留歷史上發(fā)生的所有ANR的logs友题,位置:/data/system/dropbox拇泣,保存時(shí)長3天;

1. 卡住主線程分析例子

1. 1創(chuàng)建一個(gè)主線程的耗時(shí)操作

 Toast.makeText(getApplicationContext(), "卡死UI", Toast.LENGTH_SHORT).show();
        SystemClock.sleep(10 * 10000);

1.2 logcat 中的打印

基本上彩届,可以看到問題所在拾并,那就是 reason

PID: 25719
Reason: Input dispatching timed out (Waiting to send non-key event because the touched window has not finished processing certain input events that were delivered to it over 500.0ms ago. Wait queue length: 17. Wait queue head age: 8816.9ms.)
Load: 28.45 / 28.73 / 28.92
CPU usage from 103375ms to 0ms ago (2017-11-13 16:48:13.231 to 2017-11-13 16:49:56.606) with 99% awake:
5.5% 1264/system_server: 3.9% user + 1.5% kernel / faults: 1300 minor
5.1% 442/surfaceflinger: 2.5% user + 2.6% kernel / faults: 526 minor
2.9% 1519/com.android.systemui: 2.5% user + 0.4% kernel / faults: 1186 minor
2.2% 624/cameraserver: 0.9% user + 1.3% kernel

1.3 traces 文件說明

  1. 介于----- pid 0000 xxx -----與----- end 0000 -----之間的為進(jìn)程0000的所有線程堆棧信息混埠;
  2. "main" prio=5 tid=1 Sleeping 分為為線程名怠缸、線程優(yōu)先級(默認(rèn)值5)、線程ID钳宪、線程狀態(tài)揭北;主線程之后會接著打印進(jìn)程中其他線程的信息;

// 開頭顯示進(jìn)程號、ANR發(fā)生的時(shí)間點(diǎn)和進(jìn)程名稱
----- pid 25719 at 2017-11-13 16:49:56 -----
Cmd line: better.anr
Build fingerprint: 'HUAWEI/NXT-AL10/HWNXT:7.0/HUAWEINXT-AL10/C00B592:user/release-keys'
ABI: 'arm64'
Build type: optimized
Zygote loaded classes=4418 post zygote classes=508
Intern table: 77119 strong; 174 weak
JNI: CheckJNI is off; globals=502 (plus 124 weak)
Libraries: /system/lib64/libandroid.so /system/lib64/libcompiler_rt.so /system/lib64/libhwaps.so /system/lib64/libjavacrypto.so /system/lib64/libjnigraphics.so /system/lib64/libmedia_jni.so /system/lib64/libwebviewchromium_loader.so libjavacore.so libopenjdk.so (9)
Heap: 28% free, 4MB/6MB; 32412 objects
Dumping cumulative Gc timings
Start Dumping histograms for 1 iterations for partial concurrent mark sweep
.....

還有很多信息
.....
直接定位到這里
//依次是:線程名吏颖、線程優(yōu)先級搔体、線程創(chuàng)建時(shí)的序號、線程當(dāng)前狀態(tài)
"main" prio=5 tid=1 Sleeping
//依次是:線程組名稱半醉、suspendCount疚俱、debugSuspendCount、線程的Java對象地址缩多、線程的Native對象地址
| group="main" sCount=1 dsCount=0 obj=0x785d3dd0 self=0x7d2d8a1a00
//sysTid是線程號呆奕,主線程的線程號和進(jìn)程號相同
| sysTid=25719 nice=-10 cgrp=default sched=0/0 handle=0x7d319e3a98
| state=S schedstat=( 374569801 11467189 513 ) utm=31 stm=6 core=2 HZ=100
| stack=0x7ff8020000-0x7ff8022000 stackSize=8MB
| held mutexes=
at java.lang.Thread.sleep!(Native method)
-sleeping on <0x0a871b14> (a java.lang.Object)
at java.lang.Thread.sleep(Thread.java:379)
-locked <0x0a871b14> (a java.lang.Object)
at java.lang.Thread.sleep(Thread.java:321)
at android.os.SystemClock.sleep(SystemClock.java:120)
at better.anr.MainActivity.anrMainThread(MainActivity.java:33)
at better.anr.MainActivity.onClick(MainActivity.java:25)
at android.view.View.performClick(View.java:5646)
at android.view.View$PerformClick.run(View.java:22459)
at android.os.Handler.handleCallback(Handler.java:761)
at android.os.Handler.dispatchMessage(Handler.java:98)
.....
還有很多信息
.....
----- end 25719 -----

2. 另外一個(gè)例子 dispatching timeout

logcat 打印如下:

Reason: Input dispatching timed out (Waiting to send non-key event because the touched window has not finished processing certain input events that were delivered to it over 500.0ms

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末养晋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子梁钾,更是在濱河造成了極大的恐慌绳泉,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姆泻,死亡現(xiàn)場離奇詭異零酪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拇勃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門四苇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人潜秋,你說我怎么就攤上這事蛔琅。” “怎么了峻呛?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵罗售,是天一觀的道長。 經(jīng)常有香客問我钩述,道長寨躁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任牙勘,我火速辦了婚禮职恳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘方面。我一直安慰自己放钦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布恭金。 她就那樣靜靜地躺著操禀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪横腿。 梳的紋絲不亂的頭發(fā)上颓屑,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機(jī)與錄音耿焊,去河邊找鬼揪惦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛罗侯,可吹牛的內(nèi)容都是我干的器腋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蒂培!你這毒婦竟也來了再愈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤护戳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后垂睬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體媳荒,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年驹饺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钳枕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赏壹,死狀恐怖鱼炒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蝌借,我是刑警寧澤昔瞧,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站菩佑,受9級特大地震影響自晰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜稍坯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一酬荞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瞧哟,春花似錦混巧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至雄可,卻和暖如春凿傅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背数苫。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工聪舒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人虐急。 一個(gè)月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓箱残,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子被辑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評論 2 355

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

  • ANR問題盼理,相信是每位開發(fā)日常都會遇到的問題谈山,對于這類問題的分析,按照官方的推薦宏怔,或網(wǎng)絡(luò)博客的總結(jié)思路能解決一定的...
    tiger桂閱讀 17,918評論 5 28
  • ==================================================== 一:什么...
    愛情小傻蛋閱讀 9,754評論 3 31
  • 什么是ANR ANR(Application Not Responding)就是應(yīng)用在規(guī)定的時(shí)間內(nèi)沒有響應(yīng)用戶輸入...
    lbtrace閱讀 3,388評論 3 9
  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光劍書架上的書閱讀 3,884評論 2 8
  • Log 在Android中的地位非常重要奏路,要是作為一個(gè)android程序員不能過分析log這關(guān),算是android...
    雷哥說閱讀 940評論 0 6