Android13 自定义开机动画

Android开机动画有两种,一种是经典Android静态图片,一种是动画。

如果zip动画资源不存在,则执行android(),此函数默认加载静态图片。

如果要自定义静态图片,则只需要替换android-logo-mask.pngandroid-logo-shine.png这两张图片即可。这两张图片位于/frameworks/base/core/res/assets/images

反之,如果zip动画资源存在,则执行movie(),此函数加载zip动画资源。

Android开机动画使用的是逐帧动画,即连续播放一组图片实现动画效果,因此,我们只需要准备zip动画资源,放置到对应目录下即可。

step1:创建开机动画资源

新建文件夹bootanimation-20240612,这里文件夹名称可自定义。在该文件夹中创建子目录part0、part1、part2、part3、part4、part5desc.txt文件。

在part0到part5目录中按顺序存放PNG图片,建议以数字命名,比如part4存放145.png到206.png,那么part5就从207.png开始。


*

step2:设置动画参数,主要包括分辨率、帧率、帧间隔

在desc.txt文件中添加如下配置:

r 复制代码
832 520 30
c 1 30 part0
c 1 0 part1
c 0 0 part2
c 1 30 part3
c 1 0 part4
c 1 0 part5

配置说明,以前两行为例:

  • 832 520代表图像的分辨率。
  • 30代表图像显示的帧率,即一秒钟显示30帧,一张图片显示1/30帧。
  • c代表continue,表示即使系统启动完毕,动画也继续播放,直至动画播放完毕。对应还有p,代表play,表示如果系统启动完毕了,动画将停止播放。
  • 1代表当前文件夹下的图像播放一次。2则播放两次,如果无限播放,则设为0。
  • 30代表两帧之间的间隔时长,单位是帧,30则刚好间隔1秒,因为我们设置的图像显示的帧率为30。
  • part0表示当前播放的图像文件夹。

step3:资源打包

bootanimation-20240612文件夹压缩为bootanimation-20240612.zip文件。
*

step4:替换系统资源

bootanimation-20240612.zip拷贝到/device/qcom/qssi/bootanimation/目录中,如果没有该目录,则需要手动创建。然后在/device/qcom/qssi/qssi.mk中添加配置(只要是能生效的makefile文件都行):

makefile 复制代码
# add boot animation
PRODUCT_COPY_FILES += \
  device/qcom/qssi/bootanimation/bootanimation-20240612.zip:/system/media/bootanimation.zip

拷贝目标路径可以自定义,只要能被系统匹配到即可


*

step5:编译image,刷机验证

相关推荐
前行的小黑炭1 小时前
Android Lifecycle代码分析:为什么使用;注解的方式为什么过期?源码分析;状态与事件
android
和煦的春风1 小时前
案例分析 | SurfaceFlinger 大片Runnable引起的卡顿
android·linux
浩宇软件开发2 小时前
Android开发,实现一个简约又好看的登录页
android·java·android studio·android开发
未扬帆的小船2 小时前
在gpt的帮助下安装chales的证书,用于https在root情况下抓包
android·charles
万户猴2 小时前
【 Android蓝牙-十】Android各版本蓝牙行为变化与兼容性指南
android·蓝牙
张风捷特烈4 小时前
FFmpeg 7.1.1 | 调试 ffmpeg.c 环境 - Widows&Clion&WSL
android·ffmpeg
努力努力再努力wz4 小时前
【Linux实践系列】:进程间通信:万字详解命名管道实现通信
android·linux·运维·服务器·c++·c
百锦再5 小时前
Android Studio 中使用 SQLite 数据库开发完整指南(Kotlin版本)
android·xml·学习·sqlite·kotlin·android studio·数据库开发
Gerry_Liang5 小时前
Java基础361问第16问——枚举为什么导致空指针?
android·java·开发语言
RichardLai885 小时前
[Flutter 基础] - Flutter基础组件 - Image
android·flutter