針對冷啟動的時候的一些耗時,如果項目稍微大一些,在Application中配置了更多的初始化操作,這樣可能達到1s,這樣每次啟動都會感覺到明顯的延遲,所以在進行初始化的時候采取如下措施:
1、在Application構(gòu)造器方法、attachBaseContext()、onCreate()方法中不要進行具有耗時操作的初始化,一些數(shù)據(jù)預取放在異步線程中,可以采取Callable實現(xiàn)。
2、對于sp的初始化,因為sp的特性在初始化的時候會對數(shù)據(jù)全部讀出來存在內(nèi)存中,所以這個數(shù)據(jù)化放在主線程中不合適,反而會延遲應用的啟動速度,對于這個還是要放在異步線程中處理。
3、對于MainActivity由于在獲取到第一幀之前,需要對contentView進行測量布局繪制操作,盡量減少布局的層次,考慮StubView的延遲加載策略,當然在onCreate、onStart、onResume方法中避免做耗時操作。
遵循上面三種策略可明顯提高app啟動速度。