在bootanimation.zip放入铃声
一直以为开机的bootanimation.zip 只能放动画,查看代码(android 7,.1)之后才知道铃声也能放在里面
bootanimation.zip 制作方法
参照frameworks\base\cmds\bootanimation 中的FORMAT.md
bootanimation.zip应该包括以下这些文件夹
desc.txt - 一个文本文件
part0 \
part1 \ PNG 格式的动画图片(名称要按顺序命名)
… /
partN /desc.txt 格式
第一行定义的动画的基本参数,宽,高,每秒帧数
WIDTH HEIGHT FPS
eg: 320 480 10
下面几行是定义 part文件夹下的动画怎么播放,格式:TYPE COUNT PAUSE PATH [#RGBHEX CLOCK]
eg: p 1 0 part0
p 1 0 part1
p 0 0 part2trim.txt
可以根据背景颜色裁剪动画大小,如果这个文件没有每一帧被认为是大小相同的动画。audio.wav
每个 part文件夹都可以放一个,文件名必须是audio.wav,才能播放音乐,只会播放一次。- bootanimation.zip的压缩命令
cd <path-to-pieces>
zip -0qry -i \*.txt \*.png \*.wav @ ../bootanimation.zip *.txt part*
注意事项
- desc.txt文件末尾最好加一空行,不让容易有莫名其妙的问题
- 照上述方法将audio.wav放在第一个动画播放的文件夹(part0)没有声音,是因为开机动画开启的时候media服务还没有启动,可以修改frameworks/base/cmds/bootanimation/bootanim.rc
service bootanim /system/bin/bootanimation
class core
user graphics
group graphics audio
disabled
oneshot
writepid /dev/stune/top-app/tasks
将user graphics 改为user media这样放在part0里的声音就能正常播放,但是这样开机动画播放的时间会变短。
如果不想修改bootanim.rc 可以让part0只播放4,5秒的动画,在之后的part1放入音频文件,这样的感觉就是动画音乐不同步,但是开机感觉会比较快
相关的adb调试命令
修改bootanim.rc单编编译出来的文件在out\target\product\XXXXX\system\etc\init\bootanim.rc
adb push \\work\out\target\product\QT5516\system\etc\init\bootanim.rc system/etc/init
adb shell chmod 644 system/etc/init/bootanim.rc
记得修改权限不然不能运行
不想重启的话(关于声音调试最好重启,只看动画效果可以以下命令)
adb shell setprop service.bootanim.exit 0
adb shell setprop ctl.start bootanim
播放动画
adb shell setprop service.bootanim.exit 1
停止动画