安卓系统修改开机动画,关机动画

简介: 笔记

开机动画


两种开机动画

关于安卓动画的研究主要在frameworks/base/cmds/bootanimation/BootAnimation.cpp中。

安卓系统默认的开机动画(谷歌)的动画是显示android字样。如下:

bool BootAnimation::threadLoop()
{
    bool r;
    if (mAndroidAnimation) {
        //如果没有bootanimation.zip则执行android原生动画
        r = android();
    } else {
        //否则执行自定义动画
        r = movie();
    }
    ...
    return r;
}

android()

代码如下:

bool BootAnimation::android()
{
    // SPRD: update android bootanimation resource @{
    if (mWidth <= 160) {
        initTexture(&mAndroid[0], mAssets, "images/welcome_rh.bmp");
        initTexture(&mAndroid[1], mAssets, "images/welcome_rh.bmp");
    } else if (mWidth <= 240) {
        initTexture(&mAndroid[0], mAssets, "images/welcome_rh.bmp");
        initTexture(&mAndroid[1], mAssets, "images/welcome_rh.bmp");
    } else {
        initTexture(&mAndroid[0], mAssets, "images/welcome_rh.bmp");
        initTexture(&mAndroid[1], mAssets, "images/welcome_rh.bmp");
    }
...
}

可以看到,原生动画是播放的两张图片,根据屏幕宽度来决定使用不同分辨离线率的图片。

该图片资源加载的是frameworks/base/core/res/assets/images下面的,所以如果需要修改这种开机动画的图片,那么就要把图片添加到该目录下,然后在android()方法中调用该图片即可。


movie()

该方法走的是自定义的开机动画,格式为bootanimation.zip。

  • system/media/bootanimation.zip,放到该目录下,动画可以执行到开机完成
  • data/local/bootanimation.zip,该到该目录下,动画只能执行10S。
    一般情况下我们放在system/media下面。


bootanimation.zip的制作

要注意以下几点:

  • 图片格式必须为png
  • 图片命名要有顺序
  • 压缩时要选择压缩方式为存储,即压缩比为0


bootanimation.zip的内容格式

包括part0,part1两个文件夹和一个desc.txt文件。

part0--一般用来存放播放一次的图片

part1--一般用来存放循环播放的图片

desx.txt--图片播放的配置文件


desc.txt

格式如下:

1080 1920 22
p 1 0 part0
p 0 0 part1

1080 1920分别为屏幕像素宽高,22为播放购帧率

p表示播放,1--播放一次,0--播放时动画线程休眠时间,一般为0,part0--指定为part0文件夹

p表示播放,0--循环播放,0--播放时动画线程休眠时间,一般为0,part1--指定为part1文件夹

保存的时候要注意为ANSI格式的,可以使用Notepad++来创建,默认为ANSI。


打包

如果是windows下面打包,注意选择打包方式为存储

5.png

如果是linux,可以执行如下命令(par0,part1文件夹和desc.txt在同一文件夹下):

zip -r -X -Z store bootanimation.zip part*/*.png desc.txt

到这里开机动画文件就做好了,再把bootanimatin.zip拷贝到system/meida或者data/local下面就可以了。

开机铃声和关机动画和关机铃声后续更新。。。

如果错误,欢迎指定,不胜感谢!

目录
相关文章
|
2月前
|
传感器 人工智能 边缘计算
机器视觉公司有哪些:国产平台德创引领产教融合
本文整合苏州德创、基恩士、康耐视、奥普特、研华科技五家机器视觉公司,涵盖资质、产品、产教融合优势,提供选型参考,助力院校实现教学与产业需求精准对接。
|
2月前
|
缓存 前端开发 Java
深入理解 Java 类加载器:双亲委派机制的前世今生与源码解析
本文深入解析Java类加载器与双亲委派机制,从Bootstrap到自定义加载器,剖析loadClass源码,揭示类加载的线程安全、缓存机制与委派逻辑,并探讨SPI、Tomcat、OSGi等场景下打破双亲委派的原理与实践价值。(238字)
370 8
深入理解 Java 类加载器:双亲委派机制的前世今生与源码解析
|
API Android开发 开发者
failed to set system property error code: 0x18
failed to set system property error code: 0x18
1035 1
|
Java Android开发 C++
Android源代码定制:MK文件执行顺序|属性覆盖
Android源代码定制:MK文件执行顺序|属性覆盖
1555 2
Android源代码定制:MK文件执行顺序|属性覆盖
|
安全 Java 测试技术
Java“AccessControlException”解决
Java中的“AccessControlException”通常发生在尝试访问受限资源时,如文件或网络。解决方法包括:确保所需权限已授予,检查安全策略配置,使用doPrivileged块执行敏感操作。调整策略文件或代码以匹配实际需求。
744 1
|
消息中间件 存储 Linux
|
Web App开发 存储 移动开发
前端基础(十七)_HTML5新特性
本文概述了HTML5的关键新特性,包括canvas图形绘制、多媒体的`video`和`audio`元素、本地存储功能、语义化标签(如`header`、`footer`、`nav`等)及其新增表单控件和属性(如`url`、`email`、`date`类型输入框等)。这些改进增强了网页的功能性和用户体验。
281 1
前端基础(十七)_HTML5新特性
|
安全 编译器 API
Android HAL深入探索(5): 调试HAL报错与解决方案
Android HAL深入探索(5): 调试HAL报错与解决方案
3362 1
|
Kubernetes 网络协议 Python
运维开发.Kubernetes探针与应用
运维开发.Kubernetes探针与应用
829 2
|
NoSQL Java 数据库
neo4j图数据库下载安装配置
neo4j图数据库下载安装配置