新聞中心
這篇文章主要介紹Android中如何實現(xiàn)app啟動優(yōu)化,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)服務項目包括連云網(wǎng)站建設、連云網(wǎng)站制作、連云網(wǎng)頁制作以及連云網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,連云網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到連云省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
App 啟動方式
冷啟動
App 沒有啟動過或 App 進程被殺,系統(tǒng)中不存在該 App 進程,此時啟動即為冷啟動。需要創(chuàng)建 App 進程,加載相關(guān)資源,啟動 Main Thread,初始化首屏 Activity 等。在這個過程中,屏幕會顯示一個空白的窗口(顏色基于主題),直至首屏 Activity 完全啟動。
熱啟動
熱啟動意味著 App 進程只是處于后臺,系統(tǒng)只是將其從后臺帶到前臺展示給用戶。類同與冷啟動,在這個過程中,屏幕會顯示一個空白的窗口(顏色基于主題),直至 activity 渲染完畢。
溫啟動
介于冷啟動和熱啟動之間,一般來說在以下兩種情況下發(fā)生:
用戶返回退出了 App,然后又啟動。進程可能還在運行,但是 activity 需要重建。
用戶退出 App 后,系統(tǒng)可能由于內(nèi)存原因?qū)?App 殺死,進程和 activity 都需要重啟,但是可以在 onCreate 中將被動殺死鎖保存的狀態(tài)(saved instance state)恢復。
啟動時間檢測
adb
adb shell am start -W
[應用報名]/[Activity的全路徑名],得到三個時間值:
1、ThisTime
一般和 TotalTime 相同,如果應用啟動開啟了一個過渡用的全透明頁面預處理一些事情,這樣會比 TotalTime 小。
2、TotalTime
應用啟動時間,包括創(chuàng)建進程、Application 初始化、Activity 初始化到顯示。
3、WaitTime
一般比 TotalTime 大,包括系統(tǒng)的耗時。
代碼打點
Application 的 attachBaseContext 在應用進程首先創(chuàng)建時調(diào)用,可做冷啟動的開始打點。
優(yōu)化
1、布局優(yōu)化
2、邏輯優(yōu)化
必要且耗時的邏輯,考慮單獨開線程執(zhí)行
必要不耗時,按優(yōu)先級高低依次執(zhí)行
非必要的延遲初始化,等用到再初始化
3、針對冷啟動的欺騙效果
使用 placeholder UI
Android 最新的 Material Design 建議使用一個 placeholder UI 來展示給用戶直至 App 加載完畢,類似 iOS 的做法。
自定義主題,設置 windowBackground 屬性,給 Window 加上背景。
先加載一個不渲染布局的 Activity 作為啟動屏
寫一個什么都不做的 LogoSplashActivity
public class LogoSplashActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 這里并沒有 setContentView,單純只是用來跳轉(zhuǎn)到相應的 Activity // 目的是減少首屏渲染 if (AppPref.isFirstRunning(this)) { IntroduceActivity.launch(this); } else { MainActivity.launch(this); } finish(); } }
在 AndroidManifest.xml 中設置其為啟動屏,并加上主題
這樣啟動屏顯示 LogoSplashActivity,本身不渲染布局,顯示主題設置的 placehold UI 背景。
以上是“Android中如何實現(xiàn)app啟動優(yōu)化”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享標題:Android中如何實現(xiàn)app啟動優(yōu)化
URL地址:http://www.ef60e0e.cn/article/psdidg.html