前言
这段时间开始修改开机动画,把修改开机logo和动画总结如下
一、开机logo替换
uboot和kernel阶段的logo分别为开机显示的第一张和第二张logo图片;
logo图片路径:
uboot logo源文件:kernel/logo.bmp ;
kernel logo源文件:kernel/logo_kernel.bmp;
需要更换某一张,只需用同名的bmp替换掉;
重新编译内核即可,编译后的文件在boot.img中;
全部编译,编译后的文件在update.img中;
注意:可以根据产品需求进行修改替,换Logo图片大小目前只支持到8M以内大小的bmp格式图片,支持8、16、24、32位的bmp,不然会编译不通过;
二、修改开机动画
1、开机动画说明
android系统开机过程默认是会显示一个android画面,该开机画面是在应用程序 bootanimation 显示的动画;
bootanimation 程序会检查系统制定目录下是否存在动画文件(.zip文件),如果不存在,则显示的是Android系统默认的开机动画(明暗闪烁的 Android Logo),否则的话,就是由用户自定义的开机动画;
2、修改方式
替换那个Android LOGO,直接替换frameworks\base\core\res\assets\images下面的图片;
将开机的动画复制到device/rockchip/common/bootshutdown/bootanimation.zip
3、动画bootanimation.zip制作
安卓的开机动画是由一系列的连续 PNG 图片作为帧组成的动画形式。不是合成为一张 GIF 图 片,而 是 一个 文件 包 ,将 各帧 P N G 图片 以压 缩 方式 保存 。这 个保 存的 文件 名就 是
bootanimation.zip,压缩方式要求是存储压缩;
bootanimation.zip压缩包里面包含数张png格式的图片,还有一个desc.txt的文本文档,开机时按desc.txt里面的指令,屏幕上会按文件名称顺序连续的播放一张张的图片;
①.制作帧动画
图片张数尽量不要太多;关键:图片一定要按顺序命名;
第一阶段动画图片目录:part0-------存放每帧 PNG 图片文件夹
第二阶段动画图片目录:part1-------存放每帧 PNG 图片文件夹
②desc.txt文件
1280 720 25
p 1 0 part0
p 0 0 part0
其中1280 720代表分辨率,表示帧动画以这个分辨率显示;25表示的是帧数,就是每秒播放的图片数量;
p1(播放一次) 0(阶段切换间隔时间)part0 代表这part0文件夹
p0(重复播放)0 (阶段切换间隔时间)part1 代表着part1文件夹内
③压缩
最后一步是压缩成名为 bootanimation.zip 的压缩文件;
压缩格式必须是.zip,还有最重要的是,压缩方式必须选择为“存储”,否则系统读不到。完成后即可替换原有开机动画;
注意:替换的时候不要忘记 bootanimation.zip 的权限为 755;
找到一组连续的动画,进行批量压缩处理,把像素大小调到适合自己的手机即可,输出格式为 png, 名称为一组连续数字比如 0000.png,0001.png。然后分别放到 part0 和 part1,根据实际情况修改desc.txt
压缩命令:
zip -r -0 bootanimation.zip part0 part1 desc.txt
总结
开机动画源码在/frameworks/base/cmds/bootanimation/ 等到以后在分析
推荐阅读
AOSP Android11系统源码下载方法(Pixel3)
AOSP Android11系统源码编译方法(Pixel3)
干货|Android APP应用工程师转Framework工程师(仅此一篇够了)
Ubuntu20.04系统添加swap交换空间解决Android系统编译过程内存不足的问题