APP啟動速度非常重要,APP啟動速度慢,可能會造成用戶體驗不良好,尤其是在最近用Android studio之后,如果長時間不打開app,啟動速度就會特別的慢,下面我們一起探討一下影響app啟動速度的原因,以及解決方案。
檢測啟動時間
首先我們要知道app的啟動時間,然后你也可以憑著感覺來,這里我教大家一個裝逼的方法:
adb shell am start -W [packageName]/[.MainActivity]
用adb命令可以檢測啟動時間,示例如下:
./adb shell am start -W "com.hchstudio.dict"/".MainActivity"Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.hchstudio.dict/.MainActivity }Status: okActivity: com.hchstudio.dict/.MainActivityThisTime: 7524TotalTime: 7524WaitTime: 7551Complete
那么7551算不算啟動時間長呢?答案是很長,。。。這是一個很長時間沒有啟動的app,當它第一次啟動的時候就有很長的啟動時間,下面來說怎么來減少吧。
減少應用啟動耗時
app的啟動流程,簡單的說,主要包括兩部分:
因此最簡單的方法就是盡量減少這兩個方法中的耗時操作。
上面的方法從代碼上解決了啟動速度,但是用戶啟動的時候還是感覺慢,怎么辦呢?直接上代碼:
<!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorAccent</item><item name="colorAccent">@color/colorAccent</item></style><style name="AppTheme.Launcher"><item name="android:windowBackground">@color/colorLauncher</item></style>
這是android style文件,其中AppTheme.Launcher為啟動界面的主題樣式,給你的app首頁主題樣式加上android:windowBackground,放一下app的背景圖片,這樣即使app啟動慢,也會首先加載背景,這樣就會給用戶造成一種假象,認為是app已經啟動。
Instant Run
對于Android studio的新功能Instant Run,你知道多少呢?
Instant Run也是影響啟動的因素之一,不過這個在發布的版本里是沒有的,所以小伙伴們不要擔心。
新聞熱點
疑難解答