安卓开机界面修改
1.android开机动画显示原理
开机时,系统自动检测在/system/media/目录或/data/local/目录有没有bootanimation.zip文件。如果有,这按照bootanimation.zip里面的png排列顺序依次显示开机图片,开起来就是动画效果;否则按照android默认的方式显示开机动画。
android开机动画叫源码位于frameworks/base/cmds/bootanimation下,这个程序编译后生成/syetem/bin/bootanimation,将/data/local/bootanimation.zip或/system/media/bootanimation.zip里面的png图片以动画的形式播放出来。
在每个方案目录下的init.rc文件中,指定了bootanimation的执行:
servicebootanim/system/bin/bootanimation
加载开机动画和音乐的源码在:
frameworks/base/cmds/bootanimation/BootAnimation.cpp
首先看一下定义的常量:
#defineUSER_BOOTANIMATION_FILE"/data/local/bootanimation.zip"
#defineSYSTEM_BOOTANIMATION_FILE"/system/media/bootanimation.zip"
#defineSYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"
BootAnimation::readyToRun()准备工作:
进入一个if判断语句
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()执行动画:
if(mAndroidAnimation){
r=Android();//执行android字体闪动的图片
}else{
r=movie();//执行bootanimation.zip中提供的动画图片
}
BootAnimation::Android()会加载"images/android-logo-mask.png""images/android-logo-shine.png"。而BootAnimation::movie()会加载bootanimation.zip中的内容
另外,开机音乐路径的加载在bootanimation_main.cpp中指定:
boot->playBootMusic("/system/media/boot.wav")。
2.修改开机动画
知道原理之后,就可以直接自定义开机画面,开机动画和音乐资源放在android\device\softwinner\wing-XXXXX\media中,编译之后会放在/system/media/目录中。
动画文件bootanimation.zip文件由下面几个文件目录组成:
desc.txt动画属性描述文件;
part0第一阶段动画图片的目录(动画是由一帧帧图片组成的);
part1第二阶段动画图片的目录;
...
Partn。
一般来说就两个文件夹part0、part1,两个文件夹里面放着编号号的png图片。
desc.txt文件内容格式如下:
3204805
p10part0
p00part1
其中,320为图片的宽,480为图片的高,后面的那个5表示帧数,即每秒播放的图片张数。
p为描述符,后面的1表示播放一次,后面的0表示阶段切换时间,part0表示png资源路径。
p为描述符,后面的0表示本阶段无限循环(直到开机结束),再后面的0表示本阶段切换时间,part1表示路径。
开机logo的路径:lichee\tools\pack\chips\sun9iw1p1\boot-resource\boot-resource\bootlog0.bmp
\boot-resource\boot-resource\bat\bootlog0.bmp
图片和desc.txt文档都准备好后,开始打包为bootanimation.zip。选中图片文件夹part0和desc.txt(提醒一下:打包前将图片文件夹中的Thumbs.db删除),然后右键选择WINRAR的"添加到压缩文件"进入自定义压缩文件设置:压缩文件格式选择:ZIP,压缩方式选择:存储,然后点击确定即可。
更多相关文章
- android编译系统的makefile文件Android.mk写法
- android文件系统挂载分析
- Android技术积累:图片异步加载
- Android基于多触控的图片缩放和拖动代码实现
- Android的图片上传
- Android 平台上拍照/录像,图片/视频选择,编辑和压缩的一站式解决方
- Android 自定义文件路径选择器
- Android 动画实现原理