Android BOOT Time 最佳化

來源:互聯網
上載者:User

Android BOOT Time 最佳化
Rocky@20110317

 Android的啟動和大多數的智能手機裝置都一個通病,都是啟動比較慢。這裡的速度最佳化並不是從原始碼的角度來最佳化,因為我相信Google已經做了非常多的工作。但是每個人的機器是不一樣的。特別是我們做MID,產品差別很大,有必要針對自己的產品做一些裁剪工作,用這個裁剪來最佳化我們的開機速度。
 
Android開機流程:
 
 Bootloader
 kernel
 Init
 Zygote
 Service manager

具體分析:
 Bootloader一般比較難操作,這裡也可以盡量少的做一些不必要的延遲操作。
 
 Kernel:
 這個地方分兩塊:
 1:減少你系統不需要的Driver。這樣Kernel的大小自然就小了。載入速度自然就快了。
 2:減少不必要的列印資訊。在正式版本中,我們需要把一些調試的資訊全部刪掉。具體要刪除那些,要看情況。這裡推薦一篇文章。
 http://www.elinux.org/Boot_Time
 其中說到的Kernel speedups ,方法有:
 Disable Console - Avoid overhead of console output during system startup.
 Disable bug and printk - Avoid the overhead of bug and printk. Disadvantage is that you loose a lot of info.

 ....
 
 個人發現這兩點在我們的機器上表現是最為明顯的。
 隨意,在kernel command string 中添加quiet,可以節約kernel啟動的10s的啟動時間。

具體位置:
/kernel/ make menuconfig
【Boot Options】、【Default kernel command string 】
末尾添加一句
quiet

Init:實際上就是做一些初始化的工作。包括load service ,zygote,下面是具體的介紹
Zygote:
    它的原始碼在android_tcgit/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
    會做一些preloadClasses ,preloadResources的動作。我們可以通過在開機的時候
    adb shell logcat -s Zygote I
    查看這個部分的列印資訊。可以看出在preloadClasses的時候耗時也是蠻長的。但是不建議修改。否則就是牙膏效益,後面的載入時間更長。有很多的文章講在這裡節約時間。
    我奉勸各位還是不要去動它,之所以說到這裡,是因為很多的都會說。

Service Manager.
    這個裝載分成兩個部分,一個是frameworks/base/services/java/com/android/server代碼裝載,一個是在init.rc類似的檔案中裝載。
    記住,刪除我們不需要的東西。例如,我們這雷根本沒有BlueTooth。所以刪除和藍芽相關的項目。
   
   
   
   
總之,android的啟動結構已經最佳化了很好的了。我們關鍵的一點就是去掉一些沒有必要的東西,例如列印資訊,不需要的驅動和服務啟動項。
   
參考資料:

http://www.elinux.org/Boot_Time

http://elinux.org/Improving_Android_Boot_Time

http://blog.csdn.net/jackyu613/archive/2010/11/30/6044297.aspx

http://elinux.org/Improving_Android_Boot_Time_Outline

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.