作者:凌空御風
連結:https://www.jianshu.com/p/5fd677c8e348
【APP冷啟動秒開】:冷啟動是指應用殺掉行程時的啟動;秒開是指點選桌面APP的圖示後立即顯示啟動頁面(PS:這個啟動頁面不能是白屏、黑屏或長時間頁面不顯示無反應)。
【最佳化效果圖】 【對比效果圖】
原因
在給出實現方案之前,先解釋兩個問題:
1、什麼是Android的冷啟動時間?
冷啟動時間是指使用者從桌面點選APP的那一刻起到啟動頁面的Activity呼叫onCreate()方法之間的這個時間段(通俗點說是從點選APP到看到APP的啟動頁面顯示的時間)。
2、在冷啟動的時間段發生了什麼?
首先我們要知道當開啟一個Activity的時候發生了什麼。在一個Activity開啟時,如果該Activity所屬的Application還沒有啟動,那麼系統會為這個Activity建立行程(每建立一個行程都會呼叫一次Application,所以Application的onCreate()方法可能會被呼叫多次),在行程的建立和初始化中,勢必會消耗一些時間,在這個時間裡,WindowManager會先載入APP裡的主題樣式的視窗背景(Background)作為預覽元素,然後才去真正的載入佈局,如果這個時間過長,而預設的背景又是黑色或者白色,這樣會給使用者造成一種錯覺,這個APP很卡,很不流暢,自然也影響了使用者體驗。
解決方案
知道了上面的2個問題,那麼消除啟動時的黑屏、白屏或無響應的方案就有了。
設定啟動頁面的theme,配置上相應的slogan,如圖一所示,註意這兒不用windowBackground而是用background,因為在有底部虛擬導航欄的手機上slogan顯示會變動。
loading_bg檔案如下,底部放置一個slogan:
將 activity 的背景設定透明。
以上秒開效果只是顯示效果,具體進入軟體的速度還是要減少在application中初始化的時間。
●編號359,輸入編號直達本文
●輸入m獲取到文章目錄
Java程式設計
更多推薦《18個技術類公眾微信》
涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。