Android开机动画分析


开机动画

系统会按照下面的顺序选择一个开机动画资源(一个zip文件,比如bootanimation.zip):

/system/media/bootanimation-encrypted.zip (if getprop("vold.decrypt") = '1')
/system/media/bootanimation.zip
/oem/media/bootanimation.zip

开机动画资源的文件结构如下:

desc.txt - 一个文本文件
part0  \
part1   \  PNG图片帧存放的文件夹
...     /
partN  /

其中desc.txt的内容如下:

1080 1920 60
c 1   90 part0 #FFFFFF -1
c 1   0  part1 #FFFFFF -1
p 240 0  part2 #FFFFFF -1
p 0   0  part3 #FFFFFF -1

第一行的格式为:

WIDTH HEIGHT FPS

分别表示,图片宽,高,帧率.

后面几行的格式为:

TYPE COUNT PAUSE PATH [#RGBHEX [CLOCK1 [CLOCK2]]]

TYPE是动画片段的类型:

  • p表示会播放动画,直到启动完毕被中断
  • c表示把片段播放完就结束.

COUNT表示片段播放多少次,0表示循环播放直到启动完毕.

PAUSE表示这部分片段播放完之后要延迟的帧数.

PATH表示动画片段所在的文件夹

RGBHEX表示一个背景色(可选的).

CLOCK1 CLOCK2表示绘制的当前时间的坐标(可选的),

在片段文件夹中,有一个trim.txt的文本文件,用于指定图片尺寸和坐标:

186x266+447+885
186x266+447+885
186x266+447+885
186x266+447+885
186x266+447+885

格式为:WxH+X+Y

如果想自定义开机动画,或者看一下具体的动画资源格式,可以开启个模拟器,或者找一个root的手机.

可以调用以下代码手动执行以下bootanimation程序,显示开机动画(需要root或者模拟器):

adb shell
su
cd /system/bin
bootanimation

开机动画资源的格式文档在这里:frameworks/base/cmds/bootanimation/FORMAT.md

源码路径为:frameworks/base/cmds/bootanimation


文章作者: 姜康
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 姜康 !
评论
 上一篇
AOSP的编译 AOSP的编译
aosp现在使用soong编译工具进行编译了,比之前的老版本编译要容易方便得多了. 步骤 配置好repo等工具 下载aosp源码 开始编译 模拟器演示或者刷写到真实设备上 其实这几个步骤都没什么好说的.第一二步按照要求下载工具和源码即可,
2020-06-12
下一篇 
Android系统启动流程分析 Android系统启动流程分析
Boot ROM当按下电源键,硬件上电之后,会从一个固定的内存区域读取程序.这个程序是烧写到硬件上的(ROM),用于将bootloader加载到RAM中,并开始执行它. bootloaderbootloader用于告诉设备如何找到系统内核,
2020-06-12
  目录