David.Ko

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

          日歷

          <2010年6月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          公告

          大家可以通過我的QQ:398956598MSN:wjmjhfs@hotmail.com 和我聯系!!

          相冊

          積分與排名

          • 積分 - 91030
          • 排名 - 636

          最新評論

          android開機過程

          Posted on 2010-06-25 15:03 David.Ko 閱讀(1308) 評論(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

          主站蜘蛛池模板: 磐安县| 开封市| 瑞安市| 新余市| 德兴市| 兰考县| 长沙县| 腾冲县| 神池县| 太康县| 杂多县| 张家口市| 江油市| 平南县| 砚山县| 和平县| 新津县| 青州市| 正镶白旗| 临泉县| 阳泉市| 榕江县| 安徽省| 延寿县| 琼结县| 闽侯县| 多伦县| 宜昌市| 漾濞| 清远市| 达拉特旗| 郸城县| 武冈市| 岳普湖县| 莱阳市| 平邑县| 汝州市| 滨州市| 西峡县| 新昌县| 柳州市|