隨筆-1  評論-68  文章-98  trackbacks-0
          作者:徐建祥(netpirate@gmail.com)
          日期:2010/03/06
          網址:http://www.anymobile.org

          Android 開機會出現3個畫面:
          a. Linux 系統啟動,出現Linux小企鵝畫面(reboot);
          b. Android平臺啟動初始化,出現"A N D R I O D"文字字樣畫面;
          c. Android平臺圖形系統啟動,出現含閃動的ANDROID字樣的動畫圖片(start)。

          1/ 開機圖片(Linux小企鵝)

          Linux Kernel引導啟動后,加載該圖片。
          /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/ 開機文字("A N D R I O D")

          Android 系統啟動后,讀取 /initlogo.rle(一張565 rle壓縮的位圖),如果讀取成功,測在/dev/graphics/fb0顯示Logo圖片;如果讀取失敗,則將/dev/tty0設為TEXT模式,并打開/dev/tty0,輸出文本“A N D R I O D”字樣。

          相關代碼:

          /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軟件,將圖象轉換為RAW格式;
          b. 使用android自帶的rgb2565工具,將RAW格式文件轉換為RLE格式(如:rgb2565 -rle < initlogo.raw > initlogo.rle)。

          3/ 開機動畫(閃動的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.png
          Android默認的前景圖片,文字部分鏤空,大小256×64
          /frameworks/base/core/res/assets/images/android-logo-shine.png
          Android默認的背景圖片,有動感效果,大小512×64

          參考文檔:

          圖說Android開機畫面和開機動畫
          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 根文件系統啟動過程(init守護進程分析)
          http://crazier9527.javaeye.com/blog/454635

          posted on 2010-03-06 13:06 Xu Jianxiang 閱讀(631) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 博白县| 麻城市| 茶陵县| 交城县| 扶风县| 邹城市| 黄龙县| 昌图县| 廉江市| 尉犁县| 玉龙| 鹤岗市| 常州市| 当阳市| 铜山县| 清流县| 高碑店市| 辽阳县| 香河县| 麦盖提县| 铜川市| 揭西县| 泰顺县| 定兴县| 丹棱县| 临泉县| 赞皇县| 广汉市| 莱西市| 东乌| 岳池县| 石景山区| 孝昌县| 桑日县| 昆山市| 井冈山市| 临高县| 从江县| 璧山县| 孟连| 湟中县|