一款App如何才能被稱為“好用”呢?如何才能夠受到大家的喜愛呢?其實這非常簡單:功能強大和性能優越。
說到性能,首先就是APP的啟動性能問題,正所謂萬事開頭難,這個“開頭”在這里可以理解為APP的啟動,APP的啟動問題很大一部分決定了是否能留住用戶。
8秒定律測試
在性能測試中遵循2-5-8原則:
- 當App啟動的響應時間小于2s,客戶認為app啟動速度很快
- 當App啟動的響應時間介于2-5秒之間,客戶認為app啟動速度還可以
- 當App啟動的響應時間介于5-8秒客戶認為app啟動速度很慢,但還可以接受
- 當App啟動的響應時間大于8秒,客戶認為app啟動速度是不可接受的,甚至認為App沒有響應。
因此,做好啟動優化是非常有必要的 。
對我們Android開發人員來說;性能優化是必不可少的。而進入大廠性能優化,往往也是面試過程中必問到的技術之一。
例如:
如何去除過重的app初始化 ? 怎樣通過減少冗余或嵌套布局來展平視圖層次結構 ? 開啟線程懶加載資源怎么做? 阻塞磁盤上的屏幕繪圖或網絡I / O。
這里簡單說幾個啟動優化相關的面試題例子;如果你都會當我沒說。但是就這些來技術做優化肯定是不夠的。
要優化App的啟動速度,首先需要了解App的啟動流程。在Android系統中,系統會為每一個應用開辟一個linux進程,默認情況下應用都運行在自己的進程中。
當用戶點擊桌面圖標啟動一個應用界面時,底層的完整流程如下:
從流程圖得知:
- 如果App進程不存在,則需要執行3,4,5,6步,我們稱之為“冷啟動”,一般是首次啟動,或者進程被殺死后;
- 如果App進程存在,則直接實例化并啟動目標Activity,我們稱之為“溫啟動”,一般發生在應用退出后,進程被殺前;
- 還有一種情況,如果進程和目標Activity都存在,只是切到后臺,我們稱之為“熱啟動”,如按了Home鍵。
根據以上app啟動流程,我們可以往那些方面進行優化呢?怎么樣把優化做到極致這是關鍵,大多數人都有過優化的經歷,但是公司對程序員的剛需是極大化的,項目優化做起來很吃力,許多人勉強能達到項目要求。
這是為什么?究竟是哪方面做的不足?而我們怎么細分優化呢?
這里我推薦阿里的架構師整理的《Android性能優化》資料分享,讓你站在高工的角度,深度理解APP啟動原理與內存相關原理,掌握一線大廠啟動與內存方面的各種優化手段。