前语
-
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帧时刻。
为了节省时刻,我这儿找了一个开机动画的资源:pan.baidu.com/s/1OGkHslcL…
快速检查检查作用
当咱们制造好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开机动画的办法 – ()
【Android 12 AOSP学习】Android体系修正开机logo图片及开机动画还有遇到的问题_aosp怎么更改发动图标_逝回。的博客-CSDN博客
Android 修正开机LOG和发动动画_android framework 发动流程 开机logo 和 开机动画_青春给了狗的博客-CSDN博客