Android程式冷啟動白屏時間較長
阿新 • • 發佈:2019-01-28
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