Android9 系统编译 修改开机动画

参考文章
Android8.1 修改开机动画

开始:

我手上有一张gif图片。去百度找了个gif分解的网站,把gif分解为了180张图片。
如图Android9 系统编译 修改开机动画_第1张图片
把最后一张,也是完整显示的一张复制出来放到part0下,其余文件放在part1下,由于我前30张图是全白的空白图片,所以我删了,保留了后150张
创建desc.txt
内容如下:

1920 1280 25          // 开机动画大小为宽1920 高 1280,动画的显示速度为25帧每秒。
p 1 25 part0   // part1目录下png图片显示一次,循环间隔为25帧时间。
p 0 50 part1   // part2目录下png图片无限循环,循环间隔为50帧时间。

//part1最好设置为0,无限循环,否则可能会出现动画显示完黑屏

Android9 系统编译 修改开机动画_第2张图片

zip -r -X -Z store bootanimation part*/* desc.txt
adb remount
adb push '/home/ubuntu/下载/bootanimation.zip' /system/media/bootanimation.zip

这样开机就能显示新的动画了。后面的烧录参考文首的文章

下面就是本文的重点了:
Android的代码可扩展性比较强,也就导致了这个每份代码的bootanimation.zip代码目录不尽相同,所以就出现了很多博客里说的相应目录,这个目录可以自己定,关键是mk文件中怎么copy。
我这里是放在了device/mediatek/common/下面,然后在device/mediatek/common/device.mk中增加一句copy命令

PRODUCT_COPY_FILES +=
device/mediatek/common/bootanimation.zip:system/media/bootanimation.zip

然后说一下修改中遇到的问题
1、adb remount 没有权限
这是因为模拟器没有root,在运行模拟器上需要添加-writable-system
我的完整命令如下
emulator -partition-size 4096 -skin '1920x1280' -logcat w -writable-system

2、开机图片闪烁,错乱
这是因为当时下载图片的时候
图片命名frame1,frame10,frame100的时候,命令打包zip -r -X -Z store bootanimation part*/* desc.txt会出现frame100打包到前面,然后再打包frame2,造成顺序错乱。
需要将所有文件重新命名,frame1改为frame001,frame10改为frame010,这样打包就不会出现闪烁或者错乱的问题。还好ubuntu可以选中多个文件,右键重命名,批量修改。

3、动画显示不全,动画显示异常

388 353 25 // 开机动画大小为宽600 高 480,动画的显示速度为24帧每秒。
p 1 25 part0 // part1目录下png图片显示一次,循环间隔为25帧时间。
p 1 0 part1 // part2目录下png图片无限循环,循环间隔为0帧时间。

主要是这里出现的问题,这也是为什么需要放2个目录的原因。
因为android在开机启动后,先显示part0下的那张图片,之后会卡顿1-2秒,需要在卡顿之后再显示动画,不然会出现动画显示异常。所以我part0的参数是p 1 25,25帧停留时间加上动画显示速度是25帧,也就是停留一秒,再显示动画,需要根据自己机型去调试,这样就不会出现动画显示的问题了

你可能感兴趣的:(Android系统,framework,Android,android,framework)