1. 程式人生 > >Android5.1開機LOGO與開機動畫

Android5.1開機LOGO與開機動畫

android5.1中,開機LOGO部分和之前版本的並不相同,主要區別在於android LOGO顯示部分。此部落格所講之處若有錯誤,敬請原諒,謝謝!
開機LOGO一般有兩種:靜態的和動態的,Android開機時共有三種LOGO(5.1之前可能算是4種吧)。
1. uboot顯示
2. kernel顯示
3. android開機動畫
一般情況下將前兩幅圖做成一樣的,第三個就是開機動畫部分。(uboot顯示logo一般可以不做,加快android啟動速度)。

一、kernel顯示

1.核心支援
首先在核心中配置支援開機LOGO顯示:

Graphics support  ------>
       [*] Bootup logo ----->
           --- Bootup logo
               [*] Standard black and white Linux logo
               [*] Standard 16-color Linux logo
               [*] Standard 224-color Linux logo

2.LOGO製作
1).使用png格式圖片

pngtopnm linuxlogo.png > linuxlogo.pnm
//linuxlogo.png為原始圖片 pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm pnmtoplainpnm linuxlogo224.pnm > logo_linux_clut224.ppm

2).使用bmp格式圖片

convert logo.bmp linuxlogo.png     //logo.bmp為原始圖片
pngtopnm linuxlogo.png > linuxlogo.pnm
pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm
pnmtoplainpnm linuxlogo224.pnm
> logo_linux_clut224.ppm

其他格式的圖片也可以使用圖片工具另存為png格式的圖片,再按照上述程式碼執行即可。也可以將上述程式碼寫成指令碼,這樣使用更方便。把製作好的logo_linux_clut224.ppm拷貝到核心drivers/video/logo/目錄下面,刪除資料夾下的logo_linux_clut224.o和logo_linux_clut224.c(如果有著兩個檔案就刪除),然後編譯燒錄即可。

二、Android 開機動畫

Android5.1的android字樣貌似是不能單獨更改的,可以用開機動畫替換,和5.1之前的版本相比在init.c程式碼中做了一些改動:

開機畫面顯示的重點函式console_init_action()並沒有呼叫load_565rle_image(INIT_image_FILE),即在呼叫到console_init_action()函式後,指定的開機畫面為ANDROID字樣。
load_565rle_image()函式也是不存在的。這就是android 5.1和之前不同之處,這也就說明了android5.1後,”android開機LOGO”不能替換了,只能通過替換開機動畫來達到效果。將開機動畫替換後,ANDROID字樣也隨之改變,因此通過直接更換開機動畫來達到目的即可。
開機動畫的製作:bootanimation.zip
將該檔案放置在/system/media/目錄下,系統啟動時會自動載入該目錄下的bootanimation.zip。bootanimation.zip壓縮包主要由這幾部分組成:

其中desc.txt的作用就是指導系統如何去執行開機動畫,desc.txt編寫規範:例如開機需要用到兩個資料夾part1和part2,在系統啟動時,會首先將part1裡面的內容播放一遍,再迴圈播放part2裡面的內容,直到要進入launch介面時停止。示例desc.txt內容如下:

1080 1920代表了螢幕的解析度,22表示22幀每秒
p 1 0 part1 :p就是play。1是播放一次,0是無限次。0代表階段間隔幀數為0,也就是幀動畫形式播放圖片。part1指定了要播放的第一個資料夾為part1(也可以取別的名稱,做相應修改即可)
p 0 0 part2:第一個0表示迴圈播放。第二個0表示每張圖片間隔幀數為0(和上面指令一樣)。part2表示要迴圈播放的資料夾

將製作好的檔案打包成bootanimation.zip即可,注意:必須是zip格式,且包的大小最好不要超過3M。然後放入/system/media/目錄下即可。

最近在製作開機動畫過程中發現新增開機動畫後其一直不能顯示,經過千辛萬苦的尋找最終得出如下結論:
開機動畫zip的壓縮儘量在linux環境下進行,在windows或者ubuntu的UI介面下壓縮 bootanimation.zip可能會造成開機動畫不能顯示,在linux下,進入素材目錄,執行壓縮命令:

zip -Z store bootanimation.zip part0/*.png part1/*.png desc.txt

Windows下打包ZIP也需要進入素材目錄。例如:選中part0,part1,desc.txt三個檔案,右鍵選擇”新增到壓縮檔案”,選擇”ZIP”壓縮,“儲存”模式即可。