自我理解
在Activity的内容被绘制到屏幕之前(setContentView设置的View被绘制到屏幕之前),是需要时间的,在内容展示之前,会展示空白,为了提升用户体验,避免闪屏(突然从空白到显示一个Activity的界面),引入了startwindow,在应用的窗口完整setContentView内容绘制之前,展示一个占位的窗口,盖在应用的窗口上面,这个占位窗口的背景默认是白色的,如果不设置的话,就会出现黑白屏问题,我们可以设置自定义的背景,来替代掉原来的白色背景,在Android 12上在startwindow这个基础上,实现了更强大的SplashScreen.
注意,无论是startwindow还是在此基础上实现的SplashScreen,都只是单纯解决了闪屏和黑白屏问题,但并不能提升启动速度,为了提升启动速度,彻底解决黑白屏问题,不要在application中进行耗时的操作,不要在onResume(包括onResume)方法之前执行耗时操作,能延迟的延迟,能懒加载的懒加载,另外尽量提升首帧的绘制速度,尽量简化setContentView设置的View,能使用ViewStub懒加载的就使用ViewStub…..等等.