2012年10月16日 星期二

製作自創的開機動畫


把玩"魔術師" -- 製作自創的開機動畫

This document is provided as is. You are welcomed to use it for non-commercial purpose.
Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu

請勿轉貼
看其他教材

使用過 Android 的使用者都知道,在手機開機過程除了第一個開機畫面是靜止的 之外(大多呈現公司的名稱或者 logo),第二個開機畫面大多是以動畫的方式 呈現。刷過機的人也都知道,刷機後的第二個開機畫面都跟原廠提供的不同, 也就是說,第二個開機畫面是可以自製的,所以這份文件就是在說明如何自製 開機動畫。請留意,我本人不是一個藝術創造者,所以在文件中,我找了一個 網友製作的動畫進行修改,而且修改的部分是以文字為主;有創作天份的網友 可以自行修改畫面的其他部分。
自己加裝開機動畫,能不能在沒有 root 的情形下進行,我不 知道。需要 root,或許有些風險;這些風險要自行承擔。
首先,先說一個簡單的作法(或者說測試方式)。請到第二個參考資料的網頁去下載 一個現成的開機動畫檔。例如,我下載的是 Boing by Qteknology;如果想先看看 動畫是什麼樣子,請在 "preview Boing" 點一下即可觀賞。把檔案下載完成後, 請將檔案名稱更改為 bootanimation.zip,並確保你的手機與電腦已經 連結,並且可以經由 adb devices 看到該設備的名稱;然後請下:
adb remount
adb push bootanimation.zip /data/local
這些指令;執行完成後,請重新啟動你的手機並觀賞你剛剛設定的開機動畫。 如果有一天你厭倦了該動畫並希望用原先預設的開機動畫呢?很簡單,只要把 bootanimation.zip 從手機內的 /data/local 目錄內 移除即可。另一種常見的測試方式是把手機原有的 bootanimation.zip 取代掉, 如果你想到採用這種方式,那麼我建議先把原有的 bootanimation.zip 備份下來, 備份的方式為:
adb pull /system/media/bootanimation.zip orig-bootanimation.zip
這個指令會把原有的檔案備份到電腦上並命名為 orig-bootanimation.zip; 完成備份後,你就可以把 bootanimation.zip 放到手機上來取代原來的檔案, 指令如下:
adb remount
adb push bootanimation.zip /system/media
以上的作法都是把現有的開機動畫檔放到手機上,可是要如何自製開機動畫呢? 在說明之前,必須先說明 bootanimation.zip 的檔案格式。讓我們依照參考資料 的第二項,下載了 Waving Droid Animation with ERIS logo,其檔案名稱為 eris-waving-bootanimation.zip,將其解壓縮之後,我們會發現其包含了一個 名為 desc.txt 的檔案,以及三個目錄,每一個目錄中包含了許多個圖檔; 仔細看看這些圖檔,很容易的就可以看出這些圖檔只是開機動畫中的一個一個 畫面,經由不斷的播放這些圖案,我們就看到了動畫的感覺。可是是哪一個 檔案告訴手機播放程式要如何播放呢?其實,大概可以猜的出來,那就是 desc.txt 了。


我們可以使用任意的文字編輯器來打開該 desc.txt 檔,打開後其內容為:
320 480 15
p 1 30 eris
p 1 0 peeking
p 1 45 eris
p 2 30 waving
p 1 15 eris
設定檔中第一行說明了即將使用 320x480 大小的圖檔,並以每秒鐘顯示一個 圖檔的方式(fps)來播放動畫。第二行到第六行都是由 p 帶頭,它們代表 即將播放的規則:p 之後的第一個數字代表播放次數,如果該數字為 0,即代表 不限次數的播放;第二個數字代表播放後所需要暫停(pause)的時間,以第二行的 30 為例,由於每秒播放 15 個 frame(圖檔),所以暫停約兩秒; 最後一個代表撥放的圖檔目錄名稱。 有了以上基本的認識之後,我們就可以輕易的製作出我們要的動畫。以 Waving Droid Animation with ERIS logo 為例,我們可以將之前第一個開機畫面,

利用修圖工具(如 Photoshop、小畫家之類的)來取代 ERIS 的 logo,你必須針對每一個 圖檔都進行修改,然後請將所有目錄以及 desc.txt 包成一個 bootanimation.zip 檔即可;但是請務必注意:包的過程千萬不要壓縮, 以 Winrar 為例,請在"壓縮方式"的下拉式選單中選取"僅儲存",否則產生的 bootanimation.zip 是無法正常顯示動畫的。
其他注意事項:以上說明僅提供一般性原則,每一種 ROM 可能有它自己的特別注意 的事項,我把我曾經測試過的情形分享如下:
  • CM6.x 系列的 ROM 應該可以將 bootanimation.zip 直接放置於 /data/local
  • Rogers Magic 2.1 官方的 ROM 作法是將 bootanimation.zip 放置於 /system/etc/customer 內,而且必須藉助 Smoki ROM 中的 /syste/bin/bootanimation 來取代 Rogers 的 /syste/bin/bootanimation

參考資料:



Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu











沒有留言:

張貼留言