Android系統的啟動時間

來源:互聯網
上載者:User

標籤:核心   android   

這裡所說的Android系統的啟動時間,並不是簡單地用秒錶和肉眼來統計,而是通過分析系統輸出的log資訊來統計,這樣才顯得更加專業、準確。


首先瞭解2個概念:


(1) Android是基於Linux核心的系統,因此Android的啟動過程是分為兩個階段的,第一個階段就是Linux核心的啟動,第二個階段就是Android架構的啟動(包括核心服務和程式)。


(2)Android的log系統是獨立於Linux核心的log系統的。Linux核心通過printk列印的log資訊,這些log寫入到了/dev/kmsg檔案中,在Shell終端可以通過dmesg命令查看這些log資訊。Android架構則是通過Logger驅動列印log資訊,這些log並沒有歸併到kmesg檔案中,而是單獨儲存的,位於/dev/log目錄下,在Shell終端可以通過logcat命令來查看。


下面我們分別從兩種log資訊中找到如何統計系統啟動時間的方法。


1.  通過dmesg資訊統計系統啟動時間


首先,我們通過dmesg命令抓取Linux核心的log資訊(部分系統可能需要先執行 adb root):


$ adb shell dmesg > dmesg.txt


Linux核心啟動完成,一般都有如下的標準輸出資訊:


[    3.838682]Freeing initrd memory: 1844K (ffffffc003600000 - ffffffc0037cd000)


因此,只要我們在dmesg.txt檔案中找到“Freeing initrd memory”這一行即可,從上面的log可以看出,Linux核心啟動只用了 3.838682s。


那麼,如何找到Android系統啟動完成的標誌呢?


很多Android裝置在系統啟動完成後,會在核心log中列印如下資訊:


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


因此,找到“boot_completed”這一行也就得到了整個系統的啟動時間了,從這一行可以看出,整個系統啟動用了29.913726s。


當然,並不是所有的Android裝置都會列印出這條log,因此,我們一般用下面介紹的方法來專門統計Android系統的啟動時間,


2.  通過logcat統計系統的啟動時間


文章開頭我們已經介紹過,Android的log系統是獨立於Linux核心log系統的,通過在終端輸入adb shell 進入Android系統,cd到/dev/log目錄,你會發現裡面有四個檔案,分別是:events,main,radio,system.


Android系統把Log分為了四類,不同的類別記錄不同的Log資訊:


main - 主要的Log資訊,大部分應用層級的Log資訊都在這裡

events - 系統事件相關的Log資訊

radio   - 無線/電話相關的Log資訊

system - 低層級的系統調試Log資訊


預設通過logcat抓取的是main資訊,如果想抓取指定類別的log資訊的方法,在logcat命令後加-b參數,例如:

 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

那麼,如何統計Android系統的啟動時間呢?


我們可以重點關注events類別的log資訊,通過如下命令:


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


,這是我在高通的msm8953開發板上抓取的log資訊:


650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/55/wKioL1V5fk2zyWfUAAHv186gKeI487.jpg" title="1.png" alt="wKioL1V5fk2zyWfUAAHv186gKeI487.jpg" />


“boot_progress_start”代表著Android螢幕點亮,開始顯示啟動動畫,即15.492s開始閃爍Android字樣。


“boot_progress_enable_screen”代表著整個系統啟動結束,即用了29.986s,用這個總時間減去Linux Kernel的啟動時間即可得到Android OS部分的時間。



本文出自 “帆布鞋也能走貓步” 部落格,請務必保留此出處http://9409270.blog.51cto.com/9399270/1971774

Android系統的啟動時間

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.