Android12.0.0_r3源码添加自定义开机动画

首先看一段源码:

bool BootAnimation::threadLoop(){
    bool result:
    //We have no bootanimation file, so we use the stock android logo animation.
    if(mZipFileName.isEmpty()){
        result = android();
    }else {
        result = movie();
    }
}

由上面一段代码可以发现,从aosp上下载的源码是没有bootanimation.zip文件的,即没有自定义的开机动画(只有android字体的标识),而且如果不在源码层面去添加修改自定义动画,可直接在设备上“/system/media/”文件夹下将animation.zip复制到此,重启即可实现替换掉android原生的开机动画。

那么,是否可以这样操作:将我们准备好的bootanimation.zip文件置于源码某处,然后在刷机时,将此zip文件同样刷到设备的/system/media/文件夹下面,是否就可以实现了?

因此,我是如此操作:

1.我的自定义开机动画压缩文件是:oneadd_bootanimation.zip,我将它放在SystemUI程序资源文件夹下:frameworks/base/packages/SystemUI/res/raw/oneadd_bootanimation.zip

2.在/build/target/product/media_system.mk文件下增加以下内容

PRODUCT_COPY_FILES += \  
    frameworks/base/packages/SystemUI/res/raw/oneadd_bootanimation.zip:system/media/bootanimation.zip

然后,m编译即可,查看out/target/product/redfin/system/media/文件夹下存在bootanimation.zip文件。

重新刷机后,开机启动查看,开机动画已成功替换。

后话:用chatgpt问了如何给android12源码添加自定义开机动画,他给我的回复是在/build/target/product/文件夹下找到core.mk文件并添加上面那一行(我查了下,andriod8的源码确实有这个文件,但从adnroid10开始就没有这个文件,反而添加了media_system.mk文件,所以感觉chatgpt给的答案也不一定是正确答案,它可能仅仅是从搜索引擎上去找到一些资料,但其实并不能保证完全正确,但可能思路还是不差的),但是我去源码找的时候根本就没有这个文件,只有core_64_bit.mk文件,然后我在此文件上添加了上面的那一行内容,但编译报错通不过,最后再找了找,发现后面有个media_system.mk的文件,想着试一试,最后编译通过,刷机验证开机动画效果符合预期。从这一点说明,可能各个android版本的源码可能各个文件会不一致,具体实际的开发中可能要自己多去试试,积累各个版本的经验。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值