替換Android手機的開機動畫小結

來源:互聯網
上載者:User

一直都有個心愿就是想自訂自己的G6開機動畫。鼓搗了一陣子後,終於拿下。
按照網上的教程,Linux使用者肯定是一路順風的,很快就搞定了;但如果是Window使用者那可就是不走運的--我就屬於這倒黴的一分子。
參考帖:
http://www.droidforums.net/forum/droid-hacks/9163-desc-txt-boot-animations-works-like.html

這兒先給出系統實現開機動畫的代碼地址:
http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=cmds/bootanimation/BootAnimation.cpp;h=12c9fe502220fb489b0417b0e895d5d8c37d29cf;hb=HEAD

直接進入步驟
1.準備好圖片素材,格式僅限png,並根據播放順序命名圖片檔案。
相關代碼為401→413行。

2.編寫desc.txt。desc.txt檔案描述著開機動畫的播放幀數及圖片源。
在Window下開啟desc.txt會只有一行如“320 480 30■p 1 0 part0■p 0 10 part1■”
如果你全選後複製到其它的文字編輯器,你將會看這些代碼將會重新格式化為:
320 480 30
p 1 0 part0
p 0 10 part1

好了,這兒有兩個問題了,問:
2.1 直接開啟時,那個“■”是什麼意思,ROM的作者為什麼讓Window下的使用者看個"■"呢?
2.2 代碼是什麼意思呢?
答:
2.1 出現"■"表明這個檔案是linux環境下產生的“換行”符。而由於Window下每行結尾是“換行”+“斷行符號”,所以只會讀到一個黑框。
由於android是linux系統,在編寫desc.txt時放進手機內時,Window要刪除“斷行符號”符,否則android會將“斷行符號”與下一行的字元"p"組成一個字串,導致資訊無效,手機啟動時出現黑屏。移除工具我使用的Hex Editor Neo。或者也可以只敲代碼,在換行時直接ctrl+c / ctrl + v就行了。
2.2 代碼的解釋:
“320 480 30”→→“開機時顯示的圖片寬  開機時顯示的圖片高  圖片幀數”
320 480並非螢幕或圖片的像素寬高。在實驗中,可以寫成任意的數值,在開機時,圖片會自動變形為指定的寬高數值。
接下來有幾行就表示定義了幾部分的開機動畫
“p 1 0 part0”→→“動畫階段標識符  動畫迴圈播放次數  本階段動畫播放結束時延遲時間長度  本階段動畫素材檔案夾名稱”
動畫迴圈播放次數為“0”時表示無限迴圈直到開機完成。
相關代碼:345→418行 movie()方法。

好了,編寫好desc.txt檔案後,我們就要把準備好的資源檔打包成bootanimation.zip檔案了。檔案名稱必須為“bootanimation.zip”的原因請見代碼中常量SYSTEM_BOOTANIMATION_FILE的定義。zip為linux通用壓縮包格式。
打包方法可以使用WinRAR。請選擇“zip”壓縮格式,壓縮方式請選擇“儲存”。如:

好了。bootanimation.zip就製作完了,使用工具將手機中的/system/media下的bootanimation.zip替換一下,重啟手機後就發現開機動畫已經顯示成你先前準備好的素材了。

對2.1的補充:
電腦還沒有出現之前,有一種叫做電傳打字機(Teletype Model 33)的玩意,每秒鐘可以打10個字元。但是它有一個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。  
  於是,研製人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字元。一個叫做“斷行符號”,告訴打字機把列印頭定位在左邊界;另一個叫做“換行”,告訴打字機把紙向下移一行。  
  這就是“換行”和“斷行符號”的來曆,從它們的英語名字上也可以看出一二。  
  後來,電腦發明了,這兩個概念也就被般到了電腦上。那時,儲存空間很貴,一些科學家認為在每行結尾加兩個字元太浪費了,加一個就可以。於是,就出現了分歧。Unix 系統裡,每行結尾只有“<換行>”,即“/n”;Windows系統裡面,每行結尾是“<換行><斷行符號>”,即“/n/r”;Mac系統裡,每行結尾是“<斷行符號>”。一個直接後果是,Unix/Mac系統下的檔案在Windows裡開啟的話,所有文字會變成一行;而Windows裡的檔案在Unix/Mac下開啟的話,在每行的結尾可能會多出一個^M符號。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.