Mtklog 分析(學習)


常見log異常類型: JE  NE KE EE(external(modem) exception)

一、常見應用異常搜索關鍵信息

1. 常見應用crash的(系統提示***已停止運行) ,可以在main log中或crash_log中直接搜索“ fatal exception” ;也可以在event_log中搜索am_crash快速定位到問題

2.應用閃退

應用閃退一般有如下三種原因:

1).目前遇到最多的主要是因為low memory killer機制在內存達到一定閾值的時候會將大於對應adj進程給kill掉(這個一般在kernel log中搜索關鍵字“ low memory kill ”就可以確認哪些是因為lmk機制而被kill);一般此情況下跟性能有關……。  【待實驗驗證】

2). 關聯進程被kill導致;

圖片1

一般在進行閃退分析時可以在events log中搜索關鍵字" am_kill "或者" in dying proc "等

3).應用本身邏輯有執行finish動作而出現,比如點擊鎖屏通知進入某個對應界面而界面沒有出現,這種情況需要分析對應的main_log、event_log;

a:根據出現閃退時間點在event_log搜索am_resume_activity等am_*_activity相關判斷這過程中應用是否有啟動和退出的動作。 【待實驗驗證】

b: 在main_log或sys_log搜索“ACT-AM_”相關信息查看對應activy生命周期相關信息。【待實驗驗證】

其次就根據log跟蹤對應代碼流程……

二、ANR (Application Not Responding)

1.ANR種類

1). Key Dispatch Timeout (8s)

按鍵或觸摸事件在特定時間內無響應(origin:5s)

KEY_DISPATCHING_TIMEOUT = 8*1000

2) .Broadcast Timeout

BroadcastReceiver在特定時間內無法處理完成

BROADCAST_FG_TIMEOUT: 10s

BROADCAST_BG_TIMEOUT: 60s

按鍵和廣播事件時間內未響應,時間限定定義在ActivityManagerService.java類中

3).Service Timeout (20s)——-小概率類型

Service在特定的時間內無法處理完成

service時間內未響應時間限定在ActiveServices.java類中

SERVICE_TIMEOUT = 20*1000;

2.ANR產生原因 【不是很懂】

1)應用進程有一個主線程(main thread)和一個信息隊列(main message queue) main thead == activity thread

2)主線程負責處理像Draw、Listen、receive等UI事件

3)主線程負責從消息隊列中取出信息並分發它

4)主線程在完成當前信息處理之前,不會再取信息隊列中的信息

5)如果主線程在處理當前信息時卡住,沒有及時分發,ANR就會出現

3.如何避免ANR

1):UI線程盡量只做跟UI相關的工作

2):耗時的工作(比如數據庫操作,I/O,連接網絡或者別的有可能阻礙UI線程的操作)把它放入單獨的線程處理

3):盡量用Handler來處理UIthread和別的thread之間的交互

4.UI線程主要包括哪些?

1).Activity:onCreate(), onResume(), onDestroy(), onKeyDown(), onClick()等

2).AsyncTask: onPreExecute(), onProgressUpdate(), onPostExecute(), onCancel等

3).Mainthread handler: handleMessage(), post*(runnable r)等

4).other

5.分析ANR需要的log

1). MTKlog,主要是其中的Aee_exp和MobileLog

2). Trace.txt文件(data/anr目錄下)或者bugreport日志(使用adb bugreport > bugreport.txt或者GAT工具輸出)

一般當出現異常(JE\SWT\NE\KE等)時,會在手機中的/data/aee_exp目錄下保存異常的db。 對於異常的類型和具體信息,需要通過GAT工具解析db檔案。

6.ANR分析流程

圖片2

1

1

2

3

4

5

6

7

8


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM