Instant Run在我们使用AndroidStudio编译apk的时候,使用的gradle tool版本较高的话,程序会在启动的时候去初始化Instant Run,从而导致启动时间较长,例如:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
}
}
当我们换作2.0.0的时候,则不会出现该问题
这样我们基本就把问题的原因定位出来了,支持Instant Run功能的时候就会出现长时间白屏的情况,不支持Instant Run功能的时候就一切正常,看来罪魁祸首果然还是Instant Run。
但是,其实该问题只会在debug版本中出现,在release版本中不会出现该问题,如下所示:
不过仔细观察会发现,仍然有短暂的白屏出现,因为程序启动的时候,不可避免的会去做一些初始化操作,所有程序都是要经历这个过程的。
虽说这个白屏时间很短,并没有什么太大的影响,不过我们还是可以通过代码来进一步优化的。修改styles.xml中主题相关的代码,如下所示:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
......
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
</style>
其中我们加入了两个属性,windowIsTranslucent和windowNoTitle,将这两个属性都设置成true,就可以让程序在初始化的时候窗口是透明的,初始化结束后程序主界面才会显示出来,从而也就完全看不到白屏界面了,如下图所示:
使用这种方式,虽然白屏界面看不到了,但是由于初始化的过程中窗口是透明的,会让用户感觉程序启动的响应速度稍微慢了点,暂时忽略
主要内容转载至:http://blog.csdn.net/guolin_blog/article/details/51019856