掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
眾所周知,日志在應(yīng)用產(chǎn)品的整個(gè)開發(fā)生命周期中發(fā)揮著重要的作用。例如:在軟件開發(fā)過程中,錯(cuò)誤日志可以幫助開發(fā)人員及時(shí)地識(shí)別出程序中的邏輯錯(cuò)誤;而在將產(chǎn)品發(fā)布到市場(chǎng)之后,支持工程師可以通過分析錯(cuò)誤日志,來解決各種疑難雜癥。在我們常用的安卓(Android)系統(tǒng)中,各種日志默認(rèn)是被集中式管理的。當(dāng)然,市場(chǎng)上有許多可用來開發(fā)Android應(yīng)用的工具,能夠讓應(yīng)用開發(fā)程序員們編寫出自定義的日志消息,以及特定日志語(yǔ)句定義的各種過濾器。目前,Android生態(tài)系統(tǒng)提供了不同類型的日志,其中包括:應(yīng)用日志、系統(tǒng)日志、事件日志、以及廣播日志(Radio Logs)。

日志記錄系統(tǒng)的組成包括:內(nèi)核驅(qū)動(dòng)程序和內(nèi)核緩沖區(qū)(用于存儲(chǔ)Android日志消息),可用于創(chuàng)建日志條目和訪問日志消息的C、C++和Java類,可用于查看日志消息(logcat)的獨(dú)立程序,以及具有查看日志和過濾來自主機(jī)的日志消息(通過eclipse或ddms)等組件。
Android系統(tǒng)的Linux內(nèi)核有著四個(gè)不同的日志緩沖區(qū),它們針對(duì)系統(tǒng)的不同部分提供著日志記錄。例如:通過文件系統(tǒng)里/dev/log的設(shè)備節(jié)點(diǎn),我們可以訪問到Android的四個(gè)日志緩沖區(qū):main、event、radio和system。其中main日志用于應(yīng)用程序,event用于系統(tǒng)事件信息,radio用于電話相關(guān)信息,而system則與低級(jí)系統(tǒng)消息和調(diào)試有關(guān)。
日志中的每一條消息都包含有一個(gè)標(biāo)記。通過此類標(biāo)記我們可以獲悉:該消息來自系統(tǒng)或應(yīng)用的哪一部分、時(shí)間戳(該消息何時(shí)到達(dá)的)、消息的日志級(jí)別(或消息所代表的事件優(yōu)先級(jí))、以及日志消息體本身(有關(guān)錯(cuò)誤、異常或信息等詳細(xì)的說明)。
Android系統(tǒng)中的四大日志類型:
1.應(yīng)用日志
2.系統(tǒng)日志
3.事件日志
4.廣播日志
Android上日志格式
在Android系統(tǒng)里常見的日志格式為:tv_sectv_nsec priority pidtid tag messageLen Message。其中:
日志文件位置
原則上,Android的各項(xiàng)日志(包括崩潰日志)可以被存儲(chǔ)在多處,且無(wú)標(biāo)準(zhǔn)化目錄(即:由系統(tǒng)的ROM所特定)的要求。在此,我們介紹一些常用且常見的目錄:
“Log”相關(guān)的命令行工具
在實(shí)際項(xiàng)目中,我們可以通過各種應(yīng)用程序或命令行工具,從設(shè)備或仿真器上捕獲在Android上產(chǎn)生的相關(guān)日志,進(jìn)而將它們共享給各類開發(fā)人員或維護(hù)人員,以便他們開展深入的分析。下面是三個(gè)常用的命令:
實(shí)用的過濾器模式
為了減少數(shù)據(jù)量,您可以通過在adb命令(請(qǐng)參見-- https://www.pcloudy.com/executing-adb-shell-commands/)中使用如下過濾器(filter),來縮減日志的總量。當(dāng)然,您也可以使用此類過濾器,來搜索用戶Android設(shè)備上的日志文件。
日志分析
至此,我們對(duì)Android的日志系統(tǒng)有了基本的了解。在實(shí)際分析中,我們通常會(huì)關(guān)注兩類應(yīng)用日志,它們分別是:
我們可以使用諸如GoogleLogTool和SonyLogTool之類的工具,通過采用過濾器模式,進(jìn)行深入的分析。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流