android修改開機動畫和鈴聲
1. Linux 系統啟動,出現Linux小企鵝畫面(reboot)(Android 1.5及以上版本已經取消載入圖片);
2. Android平臺啟動初始化,出現"A N D R I O D"文字字樣畫面;
3. Android平臺圖形系統啟動,出現含閃動的ANDROID字樣的動畫圖片(start)。
現在我們說的是第三種方式(基於模擬器):
android開機動畫叫原始碼位於frameworks/base/cmds/bootanimation下,這個程式會將/data/local/bootanimation.zip或/system/media/bootanimation.zip裡面的png圖片以動畫的形式播放出來。
首先,我們先來分析一下原始碼:
frameworks/base/cmds/bootanimation/BootAnimation.cpp
首先看一下定義的常量:
1 2 3 4 |
#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" |
BootAnimation::readyToRun()
進入一個if判斷語句
1 2 3 4 5 6 7 8 9 10 11 |
if ((encryptedAnimation
&&
(access(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE,
R_OK) = = 0 )
&&
(mZip. open (SYSTEM_ENCRYPTED_BOOTANIMATION_FILE) = = NO_ERROR))
||
((access(USER_BOOTANIMATION_FILE,
R_OK) = = 0 )
&&
(mZip. open (USER_BOOTANIMATION_FILE) = = NO_ERROR))
||
((access(SYSTEM_BOOTANIMATION_FILE,
R_OK) = = 0 )
&&
(mZip. open (SYSTEM_BOOTANIMATION_FILE) = = NO_ERROR)))
{
mAndroidAnimation = false;
}
|
BootAnimation::threadLoop()
1 2 3 4 5 |
if (mAndroidAnimation)
{
r = Android(); / / 執行android字型閃動的圖片
} else {
r = movie(); / / 執行bootanimation.
|