縮短應用冷啟動時間實戰小記

2021-10-24 01:19:41 字數 739 閱讀 7922

說明:這裡說的冷啟動,不是真正的冷啟動,而是第一次從launcher開啟應用的過程。

起因:我在專案中負責的應用屬於核心應用,應用在開機之後就會啟動起來,並在後台執行乙個核心服務。但是由於介面布局複雜,資料狀態比較多,導致使用者第一次點進應用時,等待的時間比較長,大概有2s多吧。

經過:在使用了非同步載入資料和優化布局後,發現效果還是不夠理想。應用的activity中包含了許多fragment,在開始的時候就會去載入顯示乙個fragment。通過列印資訊發現,第乙個fragment內部通過layoutinflater去載入view的時候,花費了將近1s的時間。於是想著如果提前把view載入出來,到了建立fragment的時候直接使用這個view,不就可以節約時間了嗎。

結果:

layoutinflater factory = layoutinflater.

from

(mself)

; dialview = factory.

inflate

(r.layout.bluetooth_dial,null)

;//預載入view

if

getinstance()

.dialview != null)

else

Android應用啟動時間優化

在android系統中把啟動分為冷啟動,熱啟動,溫啟動。三者的過程各不相同,其中以冷啟動過程最為繁瑣,時間消耗最長。所以市面上所說的啟動優化,一般都泛指冷啟動的優化。什麼是邏輯非同步?就是用多執行緒去替代之前單個主線程的工作,盡量保證讓oncreate流暢不被堵塞。那麼我們該怎麼設計呢?設計的思路我...

如何加快Python 應用的啟動時間

我聽說pipenv9.0.2已經發布,啟動時間有了很大的改進。我很快就試了一下,但我覺得並不快。所以我用python3.7的新特性來研究它。在本文中,我將介紹該特性以及如何使用它。啟動時間 匯入時間 例如,pipenv h 的執行時間比顯示幫助訊息的時間長得多。一般來說,當應用程式啟動時,會有一些啟...

adb獲取啟動時間

coding utf 8 import subprocess import time thistime是一連串啟動activity的最後乙個activity的啟動耗時。totaltime是新應用啟動的耗時,包括新程序的啟動和activity的啟動,但不包括前乙個應用activity pause的耗時...