1. 程式人生 > >Android程式冷啟動白屏時間較長

Android程式冷啟動白屏時間較長

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