您的位置:首页 > 其它

安卓开机界面修改

2015-11-23 11:08 337 查看

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的执行:

service bootanim /system/bin/bootanimation



加载开机动画和音乐的源码在:

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"

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文件内容格式如下:

320 480 5

p 1 0 part0

p 0 0 part1



其中,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,压缩方式选择:存储,然后点击确定即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: