aosp_006. 修改android开机动画

我们平时目测的开机logo一般是两种:静态的和动画的。其实在实现logo的过程中,有四幅图片:(1)、uboot显示;(2)、kernel显示logo_linux_clut244.ppm;(3)、android第一幅intilogo.rle;(4)、android第二幅,bootanimation。前三幅一般我们做成相同的,(4)为动画显示。启动过程如下所示。
 

Android的开机动画是由Linux本地守护程序bootanimation专门控制实现的,其代码在:frameworks/base/cmds/bootanimation/目录下,修改Android开机动画有两种方式:

Ø 蒙板图片替换:

替换frameworks/base/core/res/assets/images/目录下的两个图片文件:android-logo-mask.png和android-logo-shine.png。android-logo-mask.png是镂空蒙板图片,android-logo-shine.png是镂空蒙板后面的闪光png图片。两个图片通过叠加移动来达到动画效果。

Android系统默认的开机动画是由两张图片android-logo-mask.png和android-logo-shine.png通过程序调用实现的动画效果(明暗变化)。 
这两张图片保存在<android-source>/frameworks/base/core/res/assets/images中。

简单替换的方法就是自定义png图片,替换 android-logo-mask.png文件,并重新编译:

$ mmm -B frameworks/base/core/res/

会生成新的<android-source>/out/target/product/xxx/system/framework/framework-res.apk文件,替换的图片就在其中。

Ø 逐帧动画替换:

在/data/local/或/system/media/目录创建bootanimation.zip文件,该压缩包文件里存放有逐帧动画及控制脚本。

制作Android开机动画文件时,文件bootanimation.zip压缩模式需为存储模式。如果不是存储模式,开机界面将会出现黑屏的情况,无法正常播放。

压缩命令如下:

zip -r -0 bootanimation.zip part0 part1 desc.txt

-r:压缩

执行上面命令,即可将part0目录,part1目录,desc.txt文件以存储的压缩方式压缩为bootanimation.zip。

目录结构:
dosc.txt    part0

dosc.txt内容

//part0内图像像素 540*960 每帧(s)播放11张图片
540 960 11
// 1:重复播放一次,但是“0”侧代表无限循环播放   0:前后两帧之间间隔时间/帧数
p 1 0 part0

part0 目录中的图片的命名要是连续的,比如pic_001, pic_002, _pic_003 … 图片格式png或jpg都可

假如你拿到一个gif文件,那么如何将其制作成开机动画呢?首先将该动画使用PS打开(我是用的是PS6),然后等其加载完成后,gif的每一帧都会被加载出来。而我们需要做的就是将他们导出来,同时需要修改尺寸为自己手机尺寸。然后每一帧名称为有序排列。操作步骤如下!

加载完成后,点击"文件"->"导出"->"渲染视频"弹出一个选项框:

名称只需要保留.jpg,如果是xxx.jpg的话,生成的图片会是xxx001.jpg这种形式了。

选择文件夹为你导出图片的路径。接下来那个选项选择photoshop图像序列,起始编号为1,位数根据图片最大数量选择,图片分辨率,左边为宽,右边为高,帧数一般默认为30 fps,设置完了之后点击渲染。即可快速将gif动画分解为对应分辨率和序列名称的开机动画图片资源。再按照1中说说的目录结构制作即可。

猜你喜欢

转载自blog.csdn.net/zzq1824837536/article/details/88680050