設定安卓開機動畫、開機logo

來源:互聯網
上載者:User

標籤:des   android   style   http   color   io   os   使用   ar   

我們要修改的是system>media檔案夾下的bootanimation.zip(手機開機動畫)這個檔案
先來講講這個檔案結構:該zip解壓後得到兩個檔案,
第一個目錄存放了開機時播放的圖片(圖為佳域G3原廠的動繪圖片包),見:

圖片編號001,002,.......010這些是用來控製圖片播放順序的
。第二個 desc. txt的文字文件存放的資料和文字用來控制播放圖片的速度(幀速)和播放方式,見:
以下解說這些文字資料的含義:720表示圖片像素寬為720像素點
1280表示圖片高為1280像素點
10表示以10幀每秒的速度播放這些圖片
P是play的首字母,意味著播放
第一個0表示動畫迴圈播放,直到開機(假設此處為1表示僅僅播放一遍)
第二個0表示一組圖片播放完到下一組圖片延時為0秒(此處不用管,由於一般一組圖片就
行了,後面會再講)
folder1為存放圖片的目錄名稱。

總之,通俗講,就是開機logo顯示完以後,系統以10張每秒的速度播放folder1目錄中的圖片,圖片大小為720*1280,並不斷迴圈播放這組圖片直到開機。

講完了結構,能夠來開工了!(強烈建議,直接把自己要用的圖片組命名為001,002, 003, 004.........格式為png或jpg都行,大小必須為720*1280,把圖片直接複製進bootanimation.zip的folder1目錄中,並刪掉原來的10張圖片, 控制文本desc. txt直接改動即可,不要自己建立!避免帶來不必要麻煩!由於安卓基於linux系統,windows下編碼不同,直接編寫的desc.txt是無法控製圖片播放的)。




 Android 開機事實上總共會出現3個畫面:

1、第一個就是 linux 系統啟動,出現Linux小企鵝畫面(reboot);

2、當android系統從Linux核心啟動後,將會運行anddroid平台的初始化過程,螢幕上將會出現”A N D R I O D”文字字樣畫面(可是在我的系統裡這個介面並不沒有出現;或者說是肉眼沒有看到這個畫面的出現,這裡依舊送上這個畫面的改動方法);

3、開機動畫:這個階段就是大家能看到的系統啟動過程中,顯示完"A N D R O I D"字樣後顯示的圖片,類似進度條一樣,圖片內容也是“A N D R O I D”字樣。

 

第一個(小企鵝)畫面的改動:

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

 

讓核心中加入此開機logo的過程例如以下:

1、讓核心支援啟動LOGO


        在核心檔案夾中 make menuconfig

        Device Drivers ---->   Graphics support ---->

        選中 Bootup logo ----> Standard 224-color Linux logo

2、製作開機logo的圖片       

         將要當作開機LOGO的圖片依照你螢幕的大小進行裁減,並將其儲存為bmp格式 或 png格式; 比如linuxlogo.bmp 或 linuxlogo.png

         在linux下輸入下面命令(for bmp):

          #bmptoppm linuxlogo.bmp > linuxlogo.ppm                             //產生ppm
          #ppmquant 224 linuxlogo.ppm > linuxlogo224.ppm                   //轉換成224顏色
          #pnmnoraw linuxlogo224.ppm > linuxlogo224.ppm                   //轉換成ascii格式

        在Linux下輸入下面命令(for png):

         # pngtopnm linuxlogo.png > linuxlogo.pnm
         # pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm 
         # pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm

        註:上述命令須要安裝netpbm的工具包 sudo apt-get install netpbm

 3、將LOGO檔案放入核心中


           複製到製作好的LOGO檔案到  /drivers/video/logo 目錄

           替換 logo_linux_clut224.ppm 檔案,還要刪除該目錄下的logo_linux_clut224.o和logo_linux_clut224.c

4、又一次編譯核心就OK了!這裡就不詳說。

 

 

第二個(”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檔案的製作步驟:

1). 製作當前螢幕像素的圖片

 使用PS製作一張適合螢幕大小的圖片,儲存時選“儲存為 Web 所用格式”,然後在彈開的表單上,“預設”項選擇“PNG-24”,儲存為android_logo.png(

註:好像僅僅支援png-24,其它格式產生的rle檔案顯示不正常,有興趣大家能夠再驗證一下。

2). 將圖片轉換為raw格式
 使用linux下的ImageMagick內建的convert命令,進行raw格式轉換,命令為:
  convert -depth 8 android_logo.png rgb:android_logo.raw

 註:ubuntu 10.04 預設已經安裝ImgageMagick工具,假設當前系統沒有安裝,能夠運行以下的命令安裝:
  sudo apt-get install imagemagick

3). 將raw格式轉化為rle檔案
 須要用到android編譯後的rgb2565工具,在android/out/host/linux-x86/bin檔案夾下(android為當前原始碼所在檔案夾),轉換命令例如以下:
 rgb2565 -rle < android_logo.raw > initlogo.rle

到眼下為止,啟動須要顯示的映像已經做好了,就是initlogo.rle,注意檔案名稱必須是這個,假設想改檔案名稱,須要改動

android/system/core/init/init.h中的宏:
 #define INIT_IMAGE_FILE "/initlogo.rle"

4).將製作好的initlogo.rle檔案複製到android系統的root檔案夾下,也就是out/target/product/..../root下

最後編譯成檔案系統鏡像   xxx.img又一次燒寫。OK。

 

第三個(開機動畫)畫面

事實上這個部分的動畫是使用兩個圖片顯示出來的,詳細的圖片檔案所在路徑為:frameworks/base/core/res/assets/images,大家看一下就知道了,也就知道怎麼改動了。

和這部分相關的原始碼檔案主要是例如以下幾個:frameworks/base/cmds/bootanimation以下的幾個檔案就是的了,能夠看看BootAnimation.cpp檔案的內容,有例如以下程式碼片段:

bool BootAnimation::android() 

    initTexture(&mAndroid[0], mAssets, "images/android-logo-mask.png"); 
    initTexture(&mAndroid[1], mAssets, "images/android-logo-shine.png"); 
bool BootAnimation::android()
{
    initTexture(&mAndroid[0], mAssets, "images/android-logo-mask.png");
    initTexture(&mAndroid[1], mAssets, "images/android-logo-shine.png");           這就是設定顯示的前景圖片和背景圖片。

 

   接著看還有例如以下代碼:

[cpp] #define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip" 
#define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"  
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip" 
#define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
#define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"          看宏名相信大家就知道了,這就是設定動畫檔案的名稱了。為什麼會又顯示圖片又設定動畫顯示呢,這個Android版本號碼有關。顯示兩個圖片:前景和背景圖片 是在1.5版本號碼用,後來就改為了設定動畫檔案,就是:bootanimation.zip,是zip格式的,這個檔案包括三個內容:兩個檔案夾:part0 和part1,一個檔案desc.txt。
兩個檔案夾用來包括要顯示的圖片,分為第一階段和第二階段。剩下的檔案就是設定關於怎樣顯示的資訊:
示比例如以下:
480 800 15
    p 1 0 part0
    p 0 0 part1

詳細的含義例如以下:
 480--width of the image, 800--height of the image, 15--frames of second
  p 1, display one time
  p 0, display recycling till handset power on finished,相信大家懂了!呵呵。

         你能夠製作自己的bootanimation.zip檔案放置在合適的檔案夾下,這樣能夠取代預設的開機介面:這裡說的合適的檔案夾就是上面的宏定義,大家都懂^_^!
        怎麼製作bootanimation.zip檔案呢?和上面一樣建立兩個檔案夾和一個檔案,然後使用軟體或者是命令列大包就可以
         zip -r -0 bootanimation.zip part0 part1 desc.txt


設定安卓開機動畫、開機logo

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.