作者:徐建祥(netpirate@gmail.com)
日期:2010/03/06
網(wǎng)址:http://www.anymobile.org
Android 開(kāi)機(jī)會(huì)出現(xiàn)3個(gè)畫(huà)面:
a. Linux 系統(tǒng)啟動(dòng),出現(xiàn)Linux小企鵝畫(huà)面(reboot);
b. Android平臺(tái)啟動(dòng)初始化,出現(xiàn)"A N D R I O D"文字字樣畫(huà)面;
c. Android平臺(tái)圖形系統(tǒng)啟動(dòng),出現(xiàn)含閃動(dòng)的ANDROID字樣的動(dòng)畫(huà)圖片(start)。
1/ 開(kāi)機(jī)圖片(Linux小企鵝)
Linux Kernel引導(dǎo)啟動(dòng)后,加載該圖片。
/kernel/trunk/drivers/video/fbmem.c
/kernel/trunk/drivers/video/fbmem.h
/kernel/trunk/drivers/video/logo/logo.c
/kernel/trunk/drivers/video/logo/logo.h
/kernel/trunk/drivers/video/logo/Kconfig
/kernel/trunk/include/linux/linux_logo.h
2/ 開(kāi)機(jī)文字("A N D R I O D")
Android 系統(tǒng)啟動(dòng)后,讀取 /initlogo.rle(一張565 rle壓縮的位圖),如果讀取成功,測(cè)在/dev/graphics/fb0顯示Logo圖片;如果讀取失敗,則將/dev/tty0設(shè)為T(mén)EXT模式,并打開(kāi)/dev/tty0,輸出文本“A N D R I O D”字樣。
相關(guān)代碼:
/system/core/init/init.c
/system/core/init/init.h
/system/core/init/init.rc
/system/core/init/logo.c
*.rle文件的制作步驟:
a. 使用GIMP或者Advanced Batch Converter軟件,將圖象轉(zhuǎn)換為RAW格式;
b. 使用android自帶的rgb2565工具,將RAW格式文件轉(zhuǎn)換為RLE格式(如:rgb2565 -rle < initlogo.raw > initlogo.rle)。
3/ 開(kāi)機(jī)動(dòng)畫(huà)(閃動(dòng)的ANDROID字樣的動(dòng)畫(huà)圖片)
Android的系統(tǒng)登錄動(dòng)畫(huà)類似于Windows系統(tǒng)的滾動(dòng)條,是由前景和背景兩張PNG圖片組成,這兩張圖片存在于/system/framework/framework-res.apk文件當(dāng)中。前景圖片(android-logo-mask.png)上的Android文字部分鏤空,背景圖片(android-logo-shine.png)則是簡(jiǎn)單的紋理。系統(tǒng)登錄時(shí),前景圖片在最上層顯示,程序代碼控制背景圖片連續(xù)滾動(dòng),透過(guò)前景圖片文字鏤空部分滾動(dòng)顯示背景紋理,從而實(shí)現(xiàn)動(dòng)畫(huà)效果。
相關(guān)代碼:
/frameworks/base/libs/surfaceflinger/BootAnimation.h
/frameworks/base/libs/surfaceflinger/BootAnimation.cpp
/frameworks/base/core/res/assets/images/android-logo-mask.png
Android默認(rèn)的前景圖片,文字部分鏤空,大小256×64
/frameworks/base/core/res/assets/images/android-logo-shine.png
Android默認(rèn)的背景圖片,有動(dòng)感效果,大小512×64
參考文檔:
圖說(shuō)Android開(kāi)機(jī)畫(huà)面和開(kāi)機(jī)動(dòng)畫(huà)
http://www.shudoo.com/09/1030/15/13418431.html
initlogo.rle: display an image on boot
http://forum.xda-developers.com/showthread.php?t=443431
分析Android 根文件系統(tǒng)啟動(dòng)過(guò)程(init守護(hù)進(jìn)程分析)
http://crazier9527.javaeye.com/blog/454635
posted on 2010-03-06 13:06
Xu Jianxiang 閱讀(625)
評(píng)論(0) 編輯 收藏 所屬分類:
Android