本文的思路如下:先以本次雲課堂b版本、c版冷啟動優化為切入點,闡述如何做冷啟動優化(第
一、二、三、四段落)。然後以此為demo,抽取通常做乙個技優/技改的思路、方**(第五段落)。
引用google的官方定義:
launching the main thread.
creating the main activity.
inflating views.
laying out the screen.
performing the initial draw.
如下圖:
一開始目測,雲課堂android客戶端大眾版和企業版的冷啟動時間都不是特別理想,表現為:
幾個原則:
是不是非常easy?從android自身原理的乙個小細節,就可以給使用者提公升非常大的體驗。
public ilivemodule getlivemodule()
public ilivemodule getlivemodule() return module;3)、splash頁面跳轉至main頁面的邏輯優化}
如上文中說的歷史遺留問題,修復這個問題,效能一下子提公升了1s+。
4)、別的一些細節點
如:啟動過程可能會用到一些utils等工具類,某些utils類中定義了靜態變數,這些靜態變數的初始化有一定的耗時,可以把靜態變數的初始化移到第一次使用的時候。這樣可以避免在用到工具類的其他方法時提前做了沒必要的初始化。
5)、抓細節
冷啟動的優化是個非常瑣碎的事情,先把大頭去掉,後面就是摳細節,細節處深挖,能節約一點時間算一點,螞蟻小也是肉。
以下是c版的資料比對:
會隨著c版5.5.0上線,b版1.8.3上線。
任何一項技術優化,到最後,都是在摳細節,抓住細節處,精益求精,正如網易的slogan:「以匠心,致創新」。
乙個技術優化改造,無非就是這幾步:
在具體做的過程中,我們可以更細化,比如:
不要怕事小,而在於用什麼心做這件事情。
原文:從細節處談android冷啟動優化
網易雲新使用者大禮包:
Android 冷啟動(所謂白屏)優化方案
在styles.xml中自定義乙個style stylename welcometheme parent itemname android windowbackground drawable welcomelaunch item 這裡是設定你想要顯示的 itemname android window...
Android效能優化之冷啟動優化
冷啟動 cold start 溫啟動 warm start 熱啟動 hot start adb shell am start w packagename packagename.activity 例如 adb shell am start w com.dateyou.test com.datayou...
Android異常與效能優化 冷啟動優化
冷啟動優化 一 什麼是冷啟動 1.冷啟動的定義 冷啟動就是在啟動應用前,系統中沒有該應用的任何程序資訊 2.冷啟動 熱啟動的區別 熱啟動 使用者使用返回鍵退出應用,然後馬上又重新啟動應用 特點3.冷啟動時間計算 這個時間值從應用啟動 建立程序 開始計算,到完成檢視的第一次繪製 即activity內容...