David.Ko

          Follow my heart!
          posts - 100, comments - 11, trackbacks - 0, articles - 0
             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          android開機過程

          Posted on 2010-06-25 15:03 David.Ko 閱讀(1309) 評論(0)  編輯  收藏 所屬分類: Android

          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

          主站蜘蛛池模板: 虎林市| 乌拉特前旗| 垦利县| 四川省| 祁东县| 丰城市| 南澳县| 玉门市| 宁津县| 汨罗市| 高要市| 绩溪县| 渭南市| 胶南市| 呈贡县| 乐都县| 岳西县| 德安县| 武义县| 望城县| 封开县| 壶关县| 运城市| 钟山县| 新乡县| 苍南县| 台中县| 苗栗县| 凤台县| 健康| 新宁县| 五家渠市| 大渡口区| 海林市| 咸宁市| 灵台县| 太湖县| 苍山县| 宜良县| 察雅县| 壶关县|