Android系統移植與調試之------->如何修改開機動畫的兩種方式剖析


首先,我們先來分析一下源碼:

frameworks/base/cmds/bootanimation/BootAnimation.cpp

首先看一下定義的常量:

BootAnimation::readyToRun()

進入一個if判斷語句

BootAnimation::threadLoop()

==> BootAnimation::Android()會加載"images/android-logo-mask.png"和"images/android-logo-shine.png"

==> BootAnimation::movie()會加載bootanimation.zip中的內容

我們下載的源碼里默認是沒有那些個.zip動畫的,所以總會跳到android字體閃動的畫面

所以如果你系那個用.zip的動畫那么把你做好的動畫拷貝到編譯好對應的目錄下即可,然后執行make snod整合進img包就可以看到效果了

如果你想修改android閃動的那兩張圖片的話,最簡單的方法是直接替換圖片,如果你懂openGL的話也可以自己做酷炫的動畫

那兩張圖片放在./frameworks/base/core/res/assets/images  目錄下,一張鏤空的android圖,一張發光效果,動畫效果就是下面那張發光的效果圖不斷左右移動。

 

方法1

直接修改/frameworks/base/core/res/assets/images目錄下的圖片即可(這個動畫是由android-logo-mask.png和android-logo-shine.png合成的)。

 

方法2:

 

Android開機動畫有兩種修改方法,android 2.0及之后,使用bootanimation程序顯示開機畫面,如需修改開機畫面,不用修改代碼,只需按格式要求做bootanimation.zip包,放在系統的/system/media目錄中,或/data/local目錄中即可,兩個目錄下都存在時,優先使用/data/local下的。android 2.0之前,則需要修改源碼。
 開機畫面主要是由一個zip格式的壓縮包bootanimation.zip組成,壓縮包里面包含數張png格式的圖片,還有一個desc.txt的文本文檔,開機時按desc.txt里面的指令,屏幕上會按文件名稱順序連續的播放一張張的圖片,就像播放原始的膠帶影片一樣,形成動畫。

(1)動畫圖片制作。將自己的png或者jpg圖片按照數字編號后統一放在一個文件夾下,文件夾只能用英文加數字,例:part0。              

(2)動畫屬性描述文件。desc.txt是一個保存形式為ANSI格式的文件,用於設置這個動畫像素(大小),幀數,閃爍次數,文件夾名稱等。內容如下: 480 427 30 (圖片像素寬、圖片像素高、每秒播放圖片數)

p 1 0 part0 (標志、只播放一次、播放完part0文件夾的文件后暫停0張圖片的時間、保存圖片的文件夾)

p 0 0 part1 (標志、循環播放、播放完part1文件夾的文件后暫停0張圖片的時間、保存圖片的文件夾)

480 427 30  ---這里的480代表圖片的像素(大小)寬度,427代表圖片的像素(大小)高度,30代表幀數;  p 1 0 part0 ---這里的p代表標志符,1代表循環次數為1次,0代表階段間隔時間為0,part0代表對應的文件夾名,為第一階段動畫圖片目錄;  p 0 0 part1---這里的p代表標志符,0代表本階段無限循環,0代表階段間隔時間為0,part1代表對應的文件夾名,為第二階段動畫圖片目錄;

階段切換間隔時間:單位是一個幀的持續時間,比如幀數是30,那么幀的持續時間就是1秒/30 = 33.3毫秒。階段切換間隔時間期間開機動畫進程進入休眠,把CPU時間讓給初始化系統使用。也就是間隔長啟動會快,但會影響動畫效果。     part0和part1文件夾內包含的是兩個動畫的系列圖片,圖片為PNG格式。系列圖片文件的加載刷新按文件名的名稱排序。必須注意的是,在屬性描述完成后要有換行符(回車跳入下一行),已確保指令都已完成。 (3)圖片和desc.txt文檔都准備好后,開始打包為bootanimation.zip。選中圖片文件夾part0和desc.txt(提醒一下:打包前將圖片文件夾中的Thumbs.db刪除),然后右鍵選擇WINRAR的"添加到壓縮文件"進入自定義壓縮文件設置:壓縮文件格式選擇:ZIP,壓縮方式選擇:存儲,然后點擊確定即可。  

 

 

注意:/system/media是在/out/target/product/TBDG1073/system/media/下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM