当前位置:首页 > 公众号精选 > 嵌入式案例Show
[导读]点击上方蓝字关注我哦~ 01 前言 前一篇文章中简述了如何修改开机logo,本篇来介绍如何修改开机动画。 02  开机动画的显示原理 Android系统开机动画, 是由bootanimation进程将一组逐帧的图片按次序循环播放,从而形成形成的动画效果。 bootanimation启动 boot

点击上方蓝字关注我哦~

01

前言



前一篇文章中简述了如何修改开机logo,本篇来介绍如何修改开机动画。

02

 开机动画的显示原理


Android系统开机动画, 是由bootanimation进程将一组逐帧的图片按次序循环播放,从而形成形成的动画效果。

bootanimation启动

bootanimation是一个native进程,由c++编写,在开机的过程中由init进程启动。

/init.rcservice bootanim /system/bin/bootanimation class coreuser graphicsgroup graphics audiodisabledoneshot

在SurfaceFlinger.cpp启动时在初始化init()函数里会调用startBootAnim()。

void SurfaceFlinger::startBootAnim() {property_set("service.bootanim.exit", "0");property_set("ctl.start", "bootanim");}

同时设置了两个系统属性:service.bootanim.exit和ctl.start。

init进程检测到ctl.start被设成bootanim后,

就会再去init.rc里找bootanim的service, 然后启动/system/bin/bootanimation进程。

bootanimation实现

bootanimation代码目录在

frameworks/base/cmds/bootanimation/里。功能实现主要在BootAnimation.cpp文件里。

Bootanimation继承于Thread(), 所以bootanimation显示的主要部分在threadLoop()函数里。

bool BootAnimation::threadLoop(){bool r; if (mZip == NULL) {r = android();} else {r = movie();}return r;}

mZip表示桢动画的zip文件对象,优先级依次是

”/system/media/bootanimation-encrypted.zip”“/system/media/bootanimation-encrypted.zip””/system/media/bootanimation.zip”

如果这三个文件全都不存在,就会调用android()函数,也就是原生的”android”几个字母滚动的动画。如果其中任何一个zip文件存在,则调用movie()函数,这里面会解压zip包,然后在一个while循环里显示,也就是看到的动画效果。

bootanimation退出

开机动画显示都是在一个死循环里,当系统启动完成之后,必须要退出bootanimation, 然后显示launcher桌面。

当Android系统启动完成发送boot_complete广播的同时,会调用SurfaceFlinger.cpp的bootFinished()函数。在bootanimation进程的android()或者movie()里都会循环调用checkExit()函数检测“service.bootanim.exit”的值;

当”service.bootanim.exit”的值为1时,调用requestExit()便会通知线程需要结束,也就退出了动画播放。Android系统开机动画就结束了。

03

开机动画的制作


创建 bootanimation.zip 文件,该压缩包文件里存放有逐帧动画和控制脚本,通过连续切换显示图片达到动画的效果。

bootanimation.zip压缩包文件结构:

desc.txt 动画属性描述文件

part0 第一阶段动画图片目录

part1 第二阶段动画图片目录

制作方法:

(1)将第一部分图片按播放顺序命名好,保存在part0的文件夹中,

例如:001.jpg、002.jpg。实测图片格式为png或bmp也可。

(2)将第二部分图片按播放顺序命名好,保存在part1的文件夹中,

例如:001.jpg、002.jpg

(3) desc.txt 的文档:

800 1280 12p 1 0 part0p 0 10 part1


第一行:图片属性800(宽度) 1280(高度) 12(每秒显示帧数) 无

第二行:第一阶段动画属性 p(默认标志符) 1(循环次数为1) 0(进入该阶段的间隔时间 part0(该阶段图片的存放目录)

第三行:第二阶段动画属性 p(默认标志符) 0(无限循环)10(进入该阶段的间隔时间)part1(该阶段图片的存放目录)

每秒显示帧数:每秒显示的图片数量。

间隔时间:该阶段结束后间隔多久进入下一阶段显示,单位为每张图片的显示时间。

如果并没有两个阶段的动画,可以只有一个文件夹。并且在desc.txt只描述一个。如本例:

Part目录就三张滚动的图片。

desc.txt内容

800 1280 1p 0 0 part


1秒刷新一张且无限循环。

(4) 选中part0、part1和desc.txt进入自定义压缩,压缩文件格式为 zip,压缩方式为存储,命名为bootanimation.zip。注意选择文件时为多选,而不是选择desc.txt上一级的目录。

(5) push验证。将生成的bootanimation.zip push到/system/media/目录下,重启验证。


(6) 将压缩包拷贝到 device/*/$(TARGET_DEVICE) 目录下。

例如:RK3399 的目录在

device/rockchip/rk3399/bootanimation.zip


(7) 修改 

device/*/$(TARGET_DEVICE)/$(TARGET_DEVICE).mk 文件。

例如:

RK3399 是 device/rockchip/rk3399/rk3399.mk中添加。

PRODUCT_COPY_FILES += device/rockchip/rk33399/bootanimation.zip:system/media/bootanimation.zip

表示将zip拷贝到system/media/目录内。


(8) 编译system.img,烧录即可。

/ The End /

推荐阅读


安卓系统定制开机logo图片


新增LED设备--从上层到底层理解安卓架构之Service篇


本文由【嵌入式案例Show】原创出品,未经许可,请勿转载

扫码关注我们

看更多嵌入式案例


喜欢本篇内容请给我们点赞、在看

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭