android framework 基础篇.开机动画定制

194 阅读5分钟

📢 1. 职业规划篇

来聊聊安卓职业规划?整机开发大专能做么?

📢 2.基础篇

基础篇.前言

基础篇.编译环境搭建

基础篇.源码目录简介

基础篇.系统 mk_bp 讲解

基础篇.开机动画定制

基础篇.定制桌面壁纸、导航方式

基础篇.系统属性、api 使用

基础篇.名称修改、名词介绍

基础篇.用 bugreport 带你看 Crash 和 ANR

基础篇.Provision 源码分析

 

📢 3. 系统应用篇

系统应用篇.开机向导制作一

系统应用篇.开机向导制作二

系统应用篇.Settings 导航切换分析

系统应用篇.开机向导导航切换一

系统应用篇.开机向导导航切换二

系统应用篇.gms 制作集成

系统应用篇.开机向导适配 GMS

系统应用篇.Launcher3 结构剖析一

系统应用篇.Launcher3 结构剖析二

系统应用篇.Launcher3 结构剖析三

系统应用篇.Launcher3 图标加载流程一

系统应用篇.Launcher3 图标加载流程二

系统应用篇.Launcher3 桌面布局定制

系统应用篇.解密 Partner、google PAI 机制

系统应用篇.Partner 机制预制壁纸、默认布局

系统应用篇.Launcher 双排 Hotseat 定制一

系统应用篇.Launcher 双排 Hotseat 定制二

系统应用篇.Launcher 双排 Hotseat 定制三

系统应用篇.Launcher Taskbar 简介以及调出

系统应用篇.SystemUI 篇_用工具教会你看布局、进程

系统应用篇.SystemUI 结构讲解一

系统应用篇.SystemUI 结构讲解二

系统应用篇.SystemUI 的启动流程

系统应用篇.SystemUI 导航栏创建一

系统应用篇.SystemUI 导航栏创建二

系统应用篇.SystemUI 自定义导航按键

系统应用篇.SystemUI 快捷面板下拉流程

系统应用篇.SystemUI 定制禁用锁屏下拉通知栏

系统应用篇.SystemUI 通知注册流程

系统应用篇.SystemUI 通知发送流程

 

📢 4. 系统篇

系统篇.SystemServer 篇_应用与系统进程间关系

系统篇.SystemServer 简介、自定义 Service 服务一

系统篇.SystemServer 简介、自定义 Service 服务二

系统篇.SystemServer 简介、自定义 Service 服务三

系统篇.SystemServer 简介、自定义 Service 服务四

系统篇.SELinux 问题解决套路一

系统篇.SELinux 问题解决套路二

系统篇.ActivityManagerService 简介

系统篇.WindowManagerService 简介一

系统篇.WindowManagerService 简介二

系统篇.PackageManagerService 简介一

系统篇.PackageManagerService 简介二

系统篇.FW 实战 - Letterbox 定制应用方向一

系统篇.FW 实战 - Letterbox 定制应用方向二

系统篇.分屏流程一

系统篇.分屏流程二

 

📢 5. 性能篇

(省)低内存优化

性能篇 (省). 低内存查杀机制

性能篇 (省).SystemServer 与 LMK 的 socket 通信

性能篇 (省). 内核进程 LMKD

性能篇 (省). 内存分析

性能篇 (省). 内存泄漏定位与解决

(稳)稳定性优化

性能篇 (稳).WatchDog 检测机制一

性能篇 (稳).WatchDog 检测机制二

性能篇 (稳). 深入 Crash 捕获器流程一

性能篇 (稳). 深入 Crash 捕获器流程二

性能篇 (稳). 深入炸弹 ANR 流程一

性能篇 (稳). 深入炸弹 ANR 流程二

(快)开机优化

性能篇 (快). 开机耗时分析

性能篇 (快). 开机耗时优化

性能篇.实战优化方案分享

framework交流,答疑:251662478

 

🚀 AOSP 开机动画定制:打造专属 BootAnimation!

在 Android 定制 ROM品牌机 UI 设计 过程中,修改开机动画(Boot Animation) 是常见需求。

本篇文章将 手把手带你修改 AOSP 开机动画,让你的 ROM 与众不同! 🎨✨


 

🔹 一、开机动画的原理

Android 开机动画 不是视频文件,而是 一系列 PNG 图片+描述文件,由 SurfaceFlinger 负责渲染。

📌 路径:

 

/system/media/bootanimation.zip  (常规存放路径)
/product/media/bootanimation.zip  (部分设备)

📌 组成文件:

 

bootanimation.zip
 ├── desc.txt       # 动画描述文件
 ├── part0/         # 第一阶段动画帧
 ├── part1/         # 第二阶段动画帧
 ├── ...

📌 desc.txt 内容示例:

 

1080 1920 30       # 分辨率 & 帧率
p 1 0 part0        # 第一部分,循环1次,无延迟
p 0 0 part1        # 第二部分,循环播放

 

🔹 二、修改开机动画

📌 1. 获取官方 bootanimation.zip

 

adb pull /system/media/bootanimation.zip .
unzip bootanimation.zip -d bootanimation

📌 2. 替换图片

  • 确保图片分辨率与 desc.txt 设定一致(否则可能黑屏)。
  • PNG 格式,无需透明通道(降低体积)。

📌 3. 重新打包

 

zip -r0 bootanimation.zip desc.txt part0 part1

📌 4. 替换系统动画

 

adb root
adb remount
adb push bootanimation.zip /system/media/
adb reboot

🎉 重启后,你会看到自定义开机动画!


 

🔹 三、源码级修改(AOSP 方式)

如果你要在 ROM 级别 修改开机动画,应该修改 系统源码

📌 1. 替换默认 bootanimation.zip

路径:

 

AOSP_ROOT/device/google/pixel/media/bootanimation.zip

 

AOSP_ROOT/device/your_device/media/bootanimation.zip

直接替换 bootanimation.zip,然后 make 重新编译。

📌 2. 修改 BootAnimation.cpp (高级)

源码路径:

 

frameworks/base/cmds/bootanimation/BootAnimation.cpp

可修改:

 

const char DEFAULT_BOOTANIMATION[] = "/system/media/bootanimation.zip";

改为:

 

const char DEFAULT_BOOTANIMATION[] = "/product/media/custom_bootanimation.zip";

然后重新编译 AOSP。


 

🔹 四、开机动画的进阶玩法

动态调整帧率,避免卡顿(降低 desc.txt 里的 FPS)。

添加声音(需修改 system/etc/boot_sound.ogg)。

制作 SVG 矢量动画,导出 PNG 适配高分屏。

不同 ROM 设备兼容性优化(部分 ROM 需要 /product/media)。


 

🔹 五、总结

📌 方法1(简单): 直接替换 bootanimation.zip,适合 个人定制

📌 方法2(源码): 修改 AOSP BootAnimation.cpp,适合 深度 ROM 适配

🎯 你学会了吗?欢迎留言交流!🚀