改動Android啟動畫面
阿新 • • 發佈:2017-07-16
動畫 post local suffix med 根目錄 虛擬 framework thread
一.Android的啟動步驟
1.啟動Linux
2.載入Android
3.顯示Android桌面
二.分析
Android載入開機動畫的源代碼文件是:
/opt/android4.3/frameworks/base/cmds/BootAnimation.cpp
關註當中的常量定義:
#include "BootAnimation.h"
#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"
#define EXIT_PROP_NAME "service.bootanim.exit"
在status_t BootAnimation::readyToRun()裏使用了它們:
從threadLoop裏推斷,在不同情況下,載入不同動畫。當中:
- android();是android字體閃動,它調用的是:
“./frameworks/base/core/res/assets/images/android-logo-mask.png”和
“./frameworks/base/core/res/assets/images/android-logo-shine.png”
一張鏤空的圖,一張發光效果。 - movie()是bootanimation.zip
bootanimation.zip包括:
目錄part1
目錄part2
… 可能有非常多個目錄
desc.txt
目錄裏是png組成的動畫
desc.txt格式:
480 | 250 | 15 | |
圖片的寬 | 圖片的高 | 每秒顯示的幀數 | |
p | 1 | 0 | part0 |
標識符 | 循環的次數 | 階段切換間隔時間 | 相應圖片的目錄 |
p | 0 | 10 | part1 |
標識符 | 循環的次數 | 階段切換間隔時間 | 相應圖片的目錄 |
我直接下載了一個其它人做的動畫
http://download.csdn.net/downlaod/zhoucong50/3480737
放到目錄裏/opt/android4.3/out/target/product/generic/system/media/下
回到根目錄 ,運行
make snod
再啟動虛擬機:
emulator
效果:
改動Android啟動畫面