关于Android9,开机动画结束后出现几秒黑屏才进入主界面

查阅了网上各位大佬们的修改方法,主要分为几种情况:

 1.系统原生默认是非DirectBoot模式,需要主界面以及boot的AndroidManifest.xml需要添加相关属性,让主界面加快启动:android:directBootAware="true"(这种可能主要是手机系统端需要格外注意)

2.通过延长开机动画的时长,确保主界面已经完全启动后再结束开机动画,大概思路就是开机动画源码中判断退出的函数多加一判断标志位,标志位会在activitymanager主界面启动完成后进行赋值,涉及相关文件如下:

frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java

frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java

frameworks/base/cmds/bootanimation/BootAnimation.h

frameworks/base/cmds/bootanimation/BootAnimation.cpp

3.通过在原生设置的FallbackHome.java文件中添加相关代码,应该是想使用最后一帧停留的方式进行掩盖黑屏的方法.(但是不清楚是不是类似于静帧方式)getWindow().setBackgroundDrawableResource(R.drawable.background),涉及相关文件如下:

packages/apps/Settings/src/com/android/settings/system/FallbackHome.java

4.通过在framework层中把boot启动主界面改为直接跳过boot启动主界面,涉及相关文件如下:

frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java

总结:方法一应用本身已添加相关属性,没做过多尝试。方法二添加后没明显效果,但是在Android12,14平台目前也有使用该方式进行处理的情况,处于暂时解决阶段。方式三添加后没看出明显的变化。最后通过方法四生效后才发现原来问题出现在boot这个apk中,最后通过在源码中一行一行添加log打印才找出延时的那三秒执行程序,原来是之前写代码的时候挖的坑。搞了几天,刚刚才解决,心血来潮想记录下该雨过天晴的时刻。

(以上解决方法都能在网上搜索出来,具体的patch就不罗列出来,都是大佬们的过来经验,有需求可自行在网上查阅,也欢迎各位大佬指教,有说的不对的地方请见谅。下班!!!!!!)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值