前言
-
logo图片的格式一般为bmp格式
-
logo图片大小一般只支持8M大小
目前android开机画面由三个部分(阶段)组成:
第一部分在bootloader启动时显示(静态)
第二部分在启动kernel时显示(静态)
第三部分在系统启动时(bootanimation)显示(动画)
这里我主要修改的是开机动画,开机的第三部分
Android的开机动画是以bootanimation.zip的形式存储在手机、TV等安卓设备上,安卓启动时候,搜索开机动画的ZIP文件的优先顺序如下,只会播放其中一个:
如果设置prop属性vold.decrypt = 1,则:
(1)/system/media/bootanimation-encrypted.zip (if getprop("vold.decrypt") = '1')
否则:
(2)/system/media/bootanimation.zip 位置一:/system/media/
(3)/oem/media/bootanimation.zip 位置二:/oem/media/
从以上路径可知,在源码集成的时候,只需让Makefile在编译过程中,将bootanimation.zip复制到android设备的其中一个目录即可。
备注:
我在修改的时候按照文章说的方式试着在用adb的方式在/oem文件夹下创建/media目录,首先报错Read-only file system错误
,接着尝试着adb shell
下输入mount -o remount -o rw /
去使文件夹可读写,结果报错:/dev/block/dm-0' is read-only
,网上找了许久,挺多人遇到这个问题,但好像都没有解决,有办法望告知一声
步骤
制作 bootanimation.zip
- 准备png图片(大量图片轮播成为动画效果)
-
编写动画描述文件 desc.txt,内容格式如下:
- 第一行的三个数字分别表示开机动画在屏幕中的显示宽度、高度以及帧速(fps)。 剩余的每一行都用来描述一个动画片段,这些行必须要以字符“p”来开头,后面紧跟着两个数字以及一个文件目录路径名称。
- 第一个数字表示一个片断的循环显示次数,如果它的值等于0,那么就表示无限循环地显示该动画片断。
- 第二个数字表示每一个片断在两次循环显示之间的时间间隔,这个时间间隔是以一个帧的时间为单位的。
- 文件目录下面保存的是一系列png文件,这些png文件会被依次显示在屏幕中。
举例说明:
600 480 24 // 开机动画大小为宽600 高 480,动画的显示速度为24帧每秒。
p 1 0 part1 // part1目录下png图片显示一次,循环间隔为0帧时间。
p 0 10 part2 // part2目录下png图片无限循环,循环间隔为10帧时间。
为了节省时间,我这里找了一个开机动画的资源:
https://pan.baidu.com/s/1OGkHslcLWKU79U-UBXchrQ#list/path=%2F
快速查看查看效果
当我们制作好bootanimation.zip之后,如果每次都是通过编译刷机的方式看见效果,未免效率低下。我们可以通过adb的方式去调试跟查看效果: * adb push 文件到 system/media/文件夹下 * 重启设备,就可以查看效果了
我的系统是aosp10,并没有开机动画,所以在/system目录下,并没有media目录,这时就需要我们去通过mkdir命令去新建一个media目录,再把bootanimation.zip推进去
代码设置
平台不同,配置也不同
我的设备是pixel4XL,对应的产品代号为coral,每个人可以去官网查看自己的设备代号
- 将ZIP文件放置于下面目录
源码根目录/device/google/coral/media
中(media目录是我新建的)
- 在上面media目录中添加makefile文件,,例如:Bootanimation.mk
$(warning ########media-BoardConfig.mk#########)
PRODUCT_COPY_FILES += \
device/google/coral/media/bootanimation.zip:system/media/bootanimation.zip
- 添加Bootanimation.mk到编译规则当中
- 编译刷机即可看见修改过后的动画
参考文档
基于Android P,自定义Android开机动画的方法 - 掘金 (juejin.cn)
【Android 12 AOSP学习】Android系统修改开机logo图片及开机动画还有遇到的问题_aosp如何更改启动图标_逝回。的博客-CSDN博客
Android 修改开机LOG和启动动画_android framework 启动流程 开机logo 和 开机动画_青春给了狗的博客-CSDN博客