Android實(shí)戰(zhàn)APP啟動(dòng)速度優(yōu)化
APP啟動(dòng)速度非常重要,APP啟動(dòng)速度慢,可能會(huì)造成用戶體驗(yàn)不良好,尤其是在最近用Android studio之后,如果長(zhǎng)時(shí)間不打開app,啟動(dòng)速度就會(huì)特別的慢,下面我們一起探討一下影響app啟動(dòng)速度的原因,以及解決方案。
檢測(cè)啟動(dòng)時(shí)間
首先我們要知道app的啟動(dòng)時(shí)間,然后你也可以憑著感覺(jué)來(lái),這里我教大家一個(gè)裝逼的方法:
adb shell am start -W [packageName]/[.MainActivity]
用adb命令可以檢測(cè)啟動(dòng)時(shí)間,示例如下:
./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: ok Activity: com.hchstudio.dict/.MainActivity ThisTime: 7524 TotalTime: 7524 WaitTime: 7551 Complete
- com.hchstudio.dict為應(yīng)用包名
- .MainActivity為所要啟動(dòng)的主頁(yè)面函數(shù)
- WaitTime為我們所關(guān)注的啟動(dòng)時(shí)間
那么7551算不算啟動(dòng)時(shí)間長(zhǎng)呢?答案是很長(zhǎng),。。。這是一個(gè)很長(zhǎng)時(shí)間沒(méi)有啟動(dòng)的app,當(dāng)它第一次啟動(dòng)的時(shí)候就有很長(zhǎng)的啟動(dòng)時(shí)間,下面來(lái)說(shuō)怎么來(lái)減少吧。
減少應(yīng)用啟動(dòng)耗時(shí)
app的啟動(dòng)流程,簡(jiǎn)單的說(shuō),主要包括兩部分:
- Application
- 啟動(dòng)界面的onCreate方法
因此最簡(jiǎn)單的方法就是盡量減少這兩個(gè)方法中的耗時(shí)操作。
上面的方法從代碼上解決了啟動(dòng)速度,但是用戶啟動(dòng)的時(shí)候還是感覺(jué)慢,怎么辦呢?直接上代碼:
<!-- 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為啟動(dòng)界面的主題樣式,給你的app首頁(yè)主題樣式加上android:windowBackground,放一下app的背景圖片,這樣即使app啟動(dòng)慢,也會(huì)首先加載背景,這樣就會(huì)給用戶造成一種假象,認(rèn)為是app已經(jīng)啟動(dòng)。
Instant Run
對(duì)于Android studio的新功能Instant Run,你知道多少呢?
Instant Run也是影響啟動(dòng)的因素之一,不過(guò)這個(gè)在發(fā)布的版本里是沒(méi)有的,所以小伙伴們不要擔(dān)心。
相關(guān)文章
Android自定義View實(shí)現(xiàn)簡(jiǎn)單炫酷的球體進(jìn)度球?qū)嵗a
這篇文章主要給大家介紹了關(guān)于Android自定義View實(shí)現(xiàn)簡(jiǎn)單炫酷的球體進(jìn)度球的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01Android實(shí)現(xiàn)多參數(shù)文件和數(shù)據(jù)上傳
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)多參數(shù)文件和數(shù)據(jù)上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12android控件實(shí)現(xiàn)多張圖片漸變切換
這篇文章主要為大家詳細(xì)介紹了android控件實(shí)現(xiàn)多張圖片漸變切換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08Android編程實(shí)現(xiàn)仿心跳動(dòng)畫效果的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)仿心跳動(dòng)畫效果的方法,實(shí)例分析了Android基于線程實(shí)現(xiàn)動(dòng)畫過(guò)度效果的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11Android XML設(shè)置屏幕方向(android:screenOrientation)詳解
這篇文章主要介紹了Android XML設(shè)置屏幕方向(android:screenOrientation)詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04Android 10 啟動(dòng)Init進(jìn)程解析
這篇文章主要為大家介紹了Android 10 啟動(dòng)Init進(jìn)程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10