【轉(zhuǎn)】Android內(nèi)核開發(fā):如何統(tǒng)計系統(tǒng)的啟動時間

轉(zhuǎn)自:https://my.oschina.net/learnbo/blog/789645并表示感謝拱撵!

這里所說的統(tǒng)計系統(tǒng)的啟動時間逢防,并不是簡單地用秒表和肉眼來統(tǒng)計犀农,而是通過分析系統(tǒng)輸出的log信息來統(tǒng)計龄广,這樣才顯得更加專業(yè)硫眯。

首先了解2個概念:

(1)Android是基于Linux內(nèi)核的系統(tǒng),因此Android的啟動過程是分為兩個階段的择同,第一個階段就是Linux內(nèi)核的啟動两入,第二個階段就是Android框架的啟動(包括核心服務(wù)和程序)。

(2)Android的log系統(tǒng)是獨(dú)立于Linux內(nèi)核的log系統(tǒng)的敲才。Linux內(nèi)核通過printk打印的log信息裹纳,這些log寫入到了/dev/kmsg文件中,在Shell終端可以通過dmesg命令查看這些log信息紧武。Android框架則是通過Logger驅(qū)動打印log信息剃氧,這些log并沒有歸并到kmesg文件中,而是單獨(dú)存儲的阻星,位于/dev/log目錄下朋鞍,在Shell終端可以通過logcat命令來查看。

下面我們分別從兩種log信息中找到如何統(tǒng)計系統(tǒng)啟動時間的方法妥箕。

1. ?通過dmesg信息統(tǒng)計系統(tǒng)啟動時間

首先番舆,我們通過dmesg命令抓取Linux內(nèi)核的log信息(部分系統(tǒng)可能需要先執(zhí)行 adb root):

$ adb shell dmesg > dmesg.txt

Linux內(nèi)核啟動完成,一般都有如下的標(biāo)準(zhǔn)輸出信息:

<6> [ 6.613861] Freeing init memory: 176K

因此矾踱,只要我們在dmesg.txt文件中找到“Freeing init memory”這一行即可恨狈,從上面的log可以看出,Linux內(nèi)核啟動只用了6.613861s呛讲。

那么禾怠,如何找到Android系統(tǒng)啟動完成的標(biāo)志呢?

很多Android設(shè)備在系統(tǒng)啟動完成后贝搁,會在內(nèi)核log中打印如下信息:

<6>[ 29.913726] init: processing action 0x96bb8 (property:sys.boot_completed=1)

因此吗氏,找到“boot_completed”這一行也就得到了整個系統(tǒng)的啟動時間了,從這一行可以看出雷逆,整個系統(tǒng)啟動用了29.913726s弦讽。

當(dāng)然,并不是所有的Android設(shè)備都會打印出這條log,因此往产,我們一般用下面介紹的方法來專門統(tǒng)計Android系統(tǒng)的啟動時間被碗,

2. ?通過logcat統(tǒng)計系統(tǒng)的啟動時間

文章開頭我們已經(jīng)介紹過,Android的log系統(tǒng)是獨(dú)立于Linux內(nèi)核log系統(tǒng)的仿村,通過在終端輸入adb shell 進(jìn)入Android系統(tǒng)锐朴,cd到/dev/log目錄,你會發(fā)現(xiàn)里面有四個文件蔼囊,分別是:events焚志,main,radio畏鼓,system.

Android系統(tǒng)把Log分為了四類酱酬,不同的類別記錄不同的Log信息:

main - 主要的Log信息,大部分應(yīng)用級別的Log信息都在這里

events - 系統(tǒng)事件相關(guān)的Log信息

radio ? - 無線/電話相關(guān)的Log信息

system - 低級別的系統(tǒng)調(diào)試Log信息

默認(rèn)通過logcat抓取的是main信息云矫,如果想抓取指定類別的log信息的方法岳悟,在logcat命令后加-b參數(shù),例如:

1

2

3

4

$?adb?logcat?-d?-v?time-b?"main">??main.txt

$?adb?logcat?-d?-v?time-b?"events">??events.txt

$?adb?logcat?-d?-v?time-b?"system">??system.txt

$?adb?logcat?-d?-v?time-b?"radio">??radio.txt

關(guān)于Android Log系統(tǒng)的分類泼差,你可以訪問如下頁面詳細(xì)了解:《Android Logging System》

那么,如何統(tǒng)計Android系統(tǒng)的啟動時間呢呵俏?

我們可以重點(diǎn)關(guān)注events類別的log信息堆缘,通過如下命令:

$ adb logcat -d -b events | grep "boot"

如圖所示,這是我在高通的APQ8064開發(fā)板上抓取的log信息:

“boot_progress_start”代表著Android屏幕點(diǎn)亮普碎,開始顯示啟動動畫吼肥,即15.492s開始閃爍Android字樣。

“boot_progress_enable_screen”代表著整個系統(tǒng)啟動結(jié)束麻车,即用了29.986s缀皱,用這個總時間減去Linux Kernel的啟動時間即可得到Android OS部分的時間。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末动猬,一起剝皮案震驚了整個濱河市啤斗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赁咙,老刑警劉巖钮莲,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異彼水,居然都是意外死亡崔拥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進(jìn)店門凤覆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來链瓦,“玉大人,你說我怎么就攤上這事盯桦〈雀” “怎么了渤刃?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長肥卡。 經(jīng)常有香客問我溪掀,道長,這世上最難降的妖魔是什么步鉴? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任揪胃,我火速辦了婚禮,結(jié)果婚禮上氛琢,老公的妹妹穿的比我還像新娘喊递。我一直安慰自己,他們只是感情好阳似,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布骚勘。 她就那樣靜靜地躺著,像睡著了一般撮奏。 火紅的嫁衣襯著肌膚如雪俏讹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天畜吊,我揣著相機(jī)與錄音泽疆,去河邊找鬼。 笑死玲献,一個胖子當(dāng)著我的面吹牛殉疼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捌年,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瓢娜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了礼预?” 一聲冷哼從身側(cè)響起眠砾,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎托酸,沒想到半個月后荠藤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡获高,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年哈肖,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片念秧。...
    茶點(diǎn)故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡淤井,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情币狠,我是刑警寧澤游两,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站漩绵,受9級特大地震影響贱案,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜止吐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一宝踪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碍扔,春花似錦瘩燥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至二拐,卻和暖如春服鹅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背百新。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工企软, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吟孙。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像聚蝶,于是被迫代替她去往敵國和親杰妓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評論 2 354

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,090評論 25 707
  • 1.Android框架介紹 android分為四個層碘勉,從高層到低層分別是應(yīng)用程序?qū)酉锘印?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和...
    android之子閱讀 1,410評論 0 5
  • 現(xiàn)在 最近一些相熟的朋友見我停下了直播,停下了面授課胜嗓,停下了工作高职,四處游走,見人談事辞州,學(xué)習(xí)交流怔锌。 朋友不解地問道:...
    小帥老師閱讀 4,692評論 21 81
  • 老伴屬馬,比較好動。我屬牛埃元,比較喜歡宅在家里涝涤,但又具有好奇心和喜歡探索的雙面性。我高興時也喜歡出去游山玩水岛杀。但每次...
    田覓閱讀 565評論 14 10
  • 第一次階段性考試正在進(jìn)行中阔拳,語文學(xué)科反映出來的主要問題有:答題卡不能通過機(jī)器掃描,共有四名同學(xué)类嗤,有的只填考號不涂卡...
    蝸牛100閱讀 341評論 0 0