RK3399之开机Logo动画壁纸相关

背景

  • Platform: RK3399
  • OS: Android7.1.2
  • Kernel: v4.4.103

只需替换kernel/logo.bmp(uboot)和kernel/logo_kernel.bmp

修改Android开机动画

蒙版图片动画

蒙版图片动画是通过两张图片叠加移动实现动画效果,所以只需修改这2张图片

镂空蒙版图片:(要求背景为黑色,字体中间镂空)
frameworks/base/core/res/assets/images/android-logo-mask.png
镂空蒙版后面的闪光图片:
frameworks/base/core/res/assets/images/android-logo-shine.png

替换后的处理:

1
2
3
4
5
6
7
8
9
10
#防止源码不编译图片,需更新图片时间戳
$ touch frameworks/base/core/res/assets/images/android-logo-mask.png

#重新编译模块
$ source build/envsetup.sh
$ lunch xxx
$ mmm frameworks/base/core/res/

#生成新的 system.img
make snod

逐帧动画

逐帧动画主要由一系列变化得图片组成。相关文件为bootanimation.zip,该压缩包有相关动画图片和控制参数

bootanimation.zip文件详解

  • bootanimation.zip文件结构:

    |文件|说明|
    |:—|:—|
    |desc.txt|动画属性描述文件|
    |part0|第一阶段动画图片目录|
    |part1|第二阶段动画图片目录|

  • desc.txt 的文档,内容如下:

    1
    2
    3
    1280 800 15
    p 1 0 part0
    p 0 10 part1
  • desc.txt文件详解:

    ||||||
    |—|—|—|—|—|
    |图片属性|1366(图片宽度)|768(图片高度)|15(每秒显示帧数)|无|
    第一阶段动画属性|p(默认标志符)|1(循环次数为1)|0(进入下阶段的停顿时间,ms)|part0(该阶段图片的存放目录)|
    第二阶段动画属性|p(默认标志符)|0(0:播放完不停顿进入下阶段?无限循环)|10(进入下阶段的停顿时间,ms?每个阶段在两次循环显示之间的时间间隔)|part1(该阶段图片的存放目录)|

步骤

  • 准备
    part0/part1文件夹中的动画图片按播放顺序命名好,例如:001.png、002.png,并根据需要修改好desc.txt文件

  • 压缩:
    windows压缩时需要选择为储存模式
    linux进入bootanimation文件夹里面,进行zip压缩的命令如下:

    1
    2
    #-0是数字0,表示存储
    zip -r -0 bootanimation.zip *

    特别注意:在压缩为zip格式的时候要注意选择压缩方式为“存储”模式, 且不能多嵌套一层文件夹

  • 拷贝:
    需要将该压缩文件bootanimation.zip在编译的时候拷贝到system/media/目录,
    修改device/rockchip/rk3399/xxx\BoardConfig.mk, 添加编译拷贝代码:

    1
    PRODUCT_COPY_FILES += device/rockchip/rk3399/xxx/bootanimation.zip:system/media/bootanimation.zip
  • 重新编译
    重新编译生成 system.img,步骤同上蒙版图片动画。

壁纸

默认壁纸(default_wallpaper.png)修改:
720dp路径:frameworks/base/core/res/res/drawable-sw720dp-nodpi
600dp路径:frameworks/base/core/res/res/drawable-sw600dp-nodpi
默认:frameworks/base/core/res/res/drawable-nodpi
更新图片后记得用touch命令更新下时间戳

参考

Donate comment here