android系统手机项目定制开机动画,自定义的开机动画需保存在/system/media/bootanimation.zip。
bootanimation.zip制作原理:
Android的开机动画是由一系列连续的png图片作为帧组成的动画形式,将各帧png图片以压缩方式保存。这个保存的文件名就是bootanimation.zip,压缩方式必须为存储压缩。一般包括一个文件、两个目录:
1、desc.txt:动画属性描述文件。用于设置这个动画像素(大小),帧数,循环次数,文件名称等。文件格式需要设置为ANSI格式。
2、part0:第一阶段动画图片目录。存放每帧png图片文件夹。
3、part1:第二阶段动画图片目录。存放每帧png图片文件夹。
desc.txt文件解析:
desc.txt文件内容如下:
1080 2160 25
p 1 0 part0
p 0 0 part1
1080 2160 25:前两个数字代表图片的像素宽度和高度,25代表帧数,也就是1秒播放的图片张数。
p 1 0 part0:p代表标志位,1表示循环次数为1次,0表示阶段间隔时间为0,part0表示对应文件夹。
p 0 0 part1:p代表标志位,0表示无限循环,0表示阶段间隔时间为0,part1表示对应文件夹。
定制过程:
1、根据服务商给出的图片,以及bootanimation.zip制作原理,使用命令行(Linux下以存储方式压缩成zip文件)生成bootanimation.zip。
命令:zip -r -X -Z store bootanimation part*/* desc.txt
2、将制作的bootanimation.zip文件push到手机的/system/media/目录下,重启验证。
关键点就是part0目录中图片的选择,以及desc.txt文件中帧率的设置.
1、最开始服务商给出了240张图片,验证后动画没有播放完毕就开机进入Launcher界面。
2、调整desc.txt文件中设置的帧率,验证后效果并不明显。
2、隔张删除图片,再次验证,动画可以播放完毕,但是动画播放并不流畅。
4、将制作的bootanimation.zip放到其他参考手机验证,同样效果。
5、将其他bootanimation.zip放到手机上,动画效果比较流畅。
此时,怀疑服务商图片问题,图片格式是png格式,但是图片比较大,有的甚至接近200KB,压缩后有5M多。
6、更换小资源的图片,替换后比较流畅。
小资源图片像素为1080*700。
验证:
1、把bootanimation.zip放到device/qcom/acuteangle/BootAnimation/目录下;
2、修改/device/{vendor}/{project}/device.mk(device/qcom/acuteangle/acuteangle.mk),增加:
PRODUCT_COPY_FILES += \
device/qcom/acuteangle/BootAnimation/bootanimation.zip:/system/media/bootanimation.zip
3、重新build系统,烧录机器即可;
遇到的问题:
1、查看手机分辨率
adb shell wm size
adb shell dumpsys window displays