一.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
效果: