bootanimation.zip的文件结构:包含一个desc.txt和N个文件夹(一般两个)。desc.txt是用来指导如何执行动画页面。文件夹里存放要播放的照片(支持png和jpg格式)。
重点是descs.txt 文档的内容:
1280 720 10压缩包:把part文件夹和decs.txt打包成zip格式,不能是rar,并且打包时采用“存储”模式,命名为bootanimation.zip。大小不要超过5M,太大会卡
源码分析:
位置:frameworks/base/cmds/bootanimation/BootAnimation.cpp
定义部分:
#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"</span>
BootAnimation::readyToRun()
里面是判断句
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; }</span>
if (mAndroidAnimation) { r = Android(); // 执行android字体闪动的图片 } else { r = movie(); // 执行bootanimation.zip中提供的动画图片 }</span>
BootAnimation:Android()加载android-logo-mask.png和android-logo-shine.png两张图片。
BootAnimation::movie()加载bootanimation.zip中的内容。
源码里默认是没有bootanimation.zip动画的,总会执行android闪动字体画面。
如果想修改闪动的字画可以直接替换,具体在frameworks/base/core/res/assets/image目录下,动画效果是发光效果图不断左右移动。