ARTICLE · 1280153
保姆级学习开发安卓手机软件实战(十七)--减少冷启动窗口影响
保姆级学习开发安卓手机软件实战(十七)--减少冷启动窗口影响前几天一直是用平板调试,没太多感觉,但是今天换成手机调试,发现启动有一个冷启动窗口: 
这是系统在 App 还没画第一帧时,先用你的主题画一个占位窗口,避免黑屏。冷启动窗口默认白色,而我们的 App 是深色工业风,所以那个"白闪"特别刺眼。 它不能删掉,但是能定制,而且可以伪装成你自己的启动页。根据你的主题配置(主题是 Theme.Material.Light): 

res/values/colors.xml
<?xml version="1.0" encoding="utf-8"?><resources><colorname="purple_200">#FFBB86FC</color><colorname="purple_500">#FF6200EE</color><colorname="purple_700">#FF3700B3</color><colorname="teal_200">#FF03DAC5</color><colorname="teal_700">#FF018786</color><colorname="black">#FF000000</color><colorname="white">#FFFFFFFF</color><!-- 冷启动窗口背景:必须和 Color.kt 里的 Bg 完全一致(#0E1114) --><colorname="app_bg">#FF0E1114</color></resources>
res/values/themes.xml(V31)
<?xml version="1.0" encoding="utf-8"?><resources><!--Android 12+ 专属:系统强制会先画一个 Splash Screen(就是你照片里白色底 + 绿色安卓机器人那个),这里把它改成和 App 启动页一模一样。所以只在这个目录里"追加"属性,通用部分仍继承 Base.Theme.JSTZ1。--><stylename="Theme.JSTZ1"parent="Base.Theme.JSTZ1"><!-- 启动屏背景 = App 背景色,白屏消失 --><item name="android:windowSplashScreenBackground">@color/app_bg</item><!-- 隐藏系统那个圆形 App 图标(用透明形状顶掉) --><item name="android:windowSplashScreenAnimatedIcon">@drawable/ic_splash_blank</item><!-- 图标底色也设成同色,避免出现一圈浅色圆底 --><item name="android:windowSplashScreenIconBackgroundColor">@color/app_bg</item><!-- 不做品牌动画,App 画出第一帧立刻交接给 Compose 的 Splash --><item name="android:windowSplashScreenAnimationDuration">0</item></style></resources>
res/values/themes.xml
<?xml version="1.0" encoding="utf-8"?><resources><!--通用底主题(所有 Android 版本共用)冷启动时系统会先用这里的 windowBackground 画一个占位窗口,默认白色会闪一下,所以刷成 App 的背景色#0E1114。--><stylename="Base.Theme.JSTZ1"parent="android:Theme.Material.Light.NoActionBar"><item name="android:windowBackground">@color/app_bg</item><!-- 配合 MainActivity 的 enableEdgeToEdge():系统栏透明,不留白边/黑边 --><item name="android:statusBarColor">@android:color/transparent</item><item name="android:navigationBarColor">@android:color/transparent</item><!-- 去掉窗口内容上方的装饰阴影 --><item name="android:windowContentOverlay">@null</item></style><!-- Android 11 及以下使用的最终主题 --><stylename="Theme.JSTZ1"parent="Base.Theme.JSTZ1" /></resources>
新建 res/drawable/ic_splash_blank.xml
<?xml version="1.0" encoding="utf-8"?><shapexmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><solidandroid:color="@android:color/transparent" /></shape>
改完 Build 一次,划掉进程再冷启动看效果。如果看到的还是"白屏"而不是深色,说明主题没挂上——把 AndroidManifest 第 26 行确认一下还指着 @style/Theme.JSTZ1:

这样运行软件,就不是白色闪过了,是同色启动界面的背景色。















































































