Android實(shí)戰(zhàn)APP啟動(dòng)速度優(yōu)化
APP啟動(dòng)速度非常重要,APP啟動(dòng)速度慢,可能會(huì)造成用戶體驗(yàn)不良好,尤其是在最近用Android studio之后,如果長時(shí)間不打開app,啟動(dòng)速度就會(huì)特別的慢,下面我們一起探討一下影響app啟動(dòng)速度的原因,以及解決方案。
檢測(cè)啟動(dòng)時(shí)間
首先我們要知道app的啟動(dòng)時(shí)間,然后你也可以憑著感覺來,這里我教大家一個(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)的主頁面函數(shù)
- WaitTime為我們所關(guān)注的啟動(dòng)時(shí)間
那么7551算不算啟動(dòng)時(shí)間長呢?答案是很長,。。。這是一個(gè)很長時(shí)間沒有啟動(dòng)的app,當(dāng)它第一次啟動(dòng)的時(shí)候就有很長的啟動(dòng)時(shí)間,下面來說怎么來減少吧。
減少應(yīng)用啟動(dòng)耗時(shí)
app的啟動(dòng)流程,簡單的說,主要包括兩部分:
- Application
- 啟動(dòng)界面的onCreate方法
因此最簡單的方法就是盡量減少這兩個(gè)方法中的耗時(shí)操作。
上面的方法從代碼上解決了啟動(dòng)速度,但是用戶啟動(dòng)的時(shí)候還是感覺慢,怎么辦呢?直接上代碼:
<!-- 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首頁主題樣式加上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)的因素之一,不過這個(gè)在發(fā)布的版本里是沒有的,所以小伙伴們不要擔(dān)心。
相關(guān)文章
Android JSON數(shù)據(jù)與實(shí)體類之間的相互轉(zhuǎn)化(GSON的用法)
這篇文章主要介紹了Android JSON數(shù)據(jù)與實(shí)體類之間的相互轉(zhuǎn)化(GSON的用法),非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-01-01
Android實(shí)現(xiàn)類似iOS分欄控制器
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)類似iOS分欄控制器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Android 8.0升級(jí)不跳轉(zhuǎn)應(yīng)用安裝頁面的解決方法
這篇文章主要為大家詳細(xì)介紹了Android 8.0升級(jí)不跳轉(zhuǎn)應(yīng)用安裝頁面的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
Android實(shí)現(xiàn)截圖分享qq 微信功能
在日常生活中,經(jīng)常用到qq,微信截圖分享功能,今天小編通過本文給大家介紹Android實(shí)現(xiàn)截圖分享qq 微信功能,具體實(shí)現(xiàn)代碼大家參考下本文2017-12-12
Android 開發(fā)訂單流程view實(shí)例詳解
這篇文章主要介紹了 Android 開發(fā)訂單流程view實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03
Android Alertdialog(實(shí)現(xiàn)警告對(duì)話框)
本篇文章主要介紹了Android Dialog對(duì)話框,具體實(shí)現(xiàn)了警告對(duì)話框的效果,有需要的可以了解一下。2016-11-11
Android入門之RelativeLayout、FrameLayout用法分析
這篇文章主要介紹了Android入門之RelativeLayout、FrameLayout用法分析,需要的朋友可以參考下2014-08-08
android viewpager實(shí)現(xiàn)豎屏滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了android viewpager實(shí)現(xiàn)豎屏滑動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07

