android系统启动过程中有几个图片及动画过程,这里主要分析最后andriod的动画
1 linux启动小企鹅涉及的目录为android_source/kernel/drivers/video/logo下面有很多相关的图标,涉及到的文件就是 logo.c
2 当android系统从Linux内核启动后,会初始化anddroid平台,屏幕上将会出现”A N D R I O D”文字字样画面
我这边没有出现,涉及到的文件为android_source/system/core/init/init.c,这里不展开说
3 android开机动画
涉及到的文件为:android_source/frameworks/base/cmds/bootanimation/BootAnimation.cpp
#define OEM_BOOTANIMATION_FILE "/oem/media/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"
#define FIXED_ONE 1
#define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
#define USER_SHUTDOWN_ANIMATION_FILE "/data/local/shutdownanimation.zip"
#define SYSTEM_SHUTDOWN_ANIMATION_FILE "/system/media/shutdownanimation.zip"
bool BootAnimation::threadLoop()
{
bool r;
// We have no bootanimation file, so we use the stock android logo
// animation.
if (mZip == NULL) {
r = android();
} else {
r = movie();
}
eglMakeCurrent(mDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
eglDestroyContext(mDisplay, mContext);
eglDestroySurface(mDisplay, mSurface);
mFlingerSurface.clear();
mFlingerSurfaceControl.clear();
eglTerminate(mDisplay);
IPCThreadState::self()->stopProcess();
return r;
}
主要意思就是:如果在相关目录,比如/system/media ,/data/local 找不到bootanimation.zip,则会去加载frameworks/base/core/res/assets/images下的两张图片
前景图片android-logo-mask.png和背景图片android-logo-shine.png,开机动画会显示一个"android"动画
如果在相关目录找到了bootanimation.zip,如果/system/media和/data/local都存在,则优先加载/data/local,那么会去显示bootanimation.zip定义的动画效果
文件名为bootanimation.zip 一定是这个不能修改,里面包含part1 part2文件夹 和desc.txt,part 文件夹里面放的是动画拆分的图片,格式为png, desc.txt里面是播放的设置。
格式是这样的
480 800 15
p 1 0 part0
p 0 0 part1
480 800是指显示的分辨率 宽 高
15是一秒的帧数
p后面的数字是指播放次数 0为循环,N为播放N次
后面那位数字 一般为0(空指令), 表示播放一遍后稍作停顿的时间
part0,part1 为文件夹名
一般我们只使用part0目录
bootanimation.zip文件的制作方法如下:
1)先制作desc.txt、part0和part1三个文件,如下:
2)把desc.txt、part0和part1三个文件制作为自拍格式的压缩文件,如下:
其中图示标出的1、2和3和地方必须如图所示。在点击确定之后就会生成一个bootanimation.zip文件,即时Android系统播放的logo文件。直接替换掉系统data/local/下的bootanimation.zip即可
可以只制作part0,本人就是只做了part0,注意的是必须是zip压缩格式,并且压缩方式选择存储