android開機啓動會有3個logo出現:
1. bootable啓動,出現Android機器人圖像;
修改目標:用自定義的ppm圖片替代/drivers/video/logo/logo_linux_clut224.ppm,同時刪除logo_linux_clut224.c logo_linux_clut224.o文件這樣才能使編譯的使用logo_linux_clut224.ppm重新編譯 ppm圖片的生成: 準備一個PNG格式的圖片。
# pngtopnm logo_linux_clut224.png > logo_linux_clut224.pnm
# pnmquant 224 logo_linux_clut224.pnm > logo_linux_clut224.pnm
# pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm
然後重新編譯內核,第一個圖就OK了。
2. Android平臺啓動初始化,出現"A N D R I O D"文字字樣畫面;
Android 系統啓動後,讀取 /bootable/recovery/etc/initlogo.rle(一張565 rle壓縮的位圖),如果讀取成功,則顯示Logo圖片;如果讀取失敗,則將/dev/tty0設爲TEXT模式,並打開/dev/tty0,輸出文本“A N D R I O D”字樣,相關代碼: /system/core/init/init.c 文件 main()中。
3. c. Android平臺圖形系統啓動,出現含閃動的ANDROID字樣的動畫圖片。
Android 的系統登錄動畫類似於Windows系統的滾動條,是由前景和背景兩張PNG圖片組成,這兩張圖片存在於/system/framework /framework-res.apk文件當中。前景圖片(android-logo-mask.png)上的Android文字部分鏤空,背景圖片(android-logo-shine.png)則是簡單的紋理。系統登錄時,前景圖片在最上層顯示,程序代碼控制背景圖片連續滾動,透過前景圖片文字鏤空部分滾動顯示背景紋理,從而實現動畫效果。
相關代碼:
/frameworks/base/libs/surfaceflinger/BootAnimation.h
/frameworks/base/libs/surfaceflinger/BootAnimation.cpp
/frameworks/base/core/res/assets/images/android-logo-mask.png7
Android默認的前景圖片,文字部分鏤空,大小256×64
/frameworks/base/core/res/assets/images/android-logo-shine.png
Android默認的背景圖片,有動感效果,大小512×64