前言
效能優化的目的在 Android開發中,效能優化策略十分重要
因為其決定了應用程式的開發品質:可用性、流暢性、穩定性等,是提高使用者留存率的關鍵
本文全面講解效能優化中的所有知識,獻上一份 Android效能優化的詳細攻略, 含:優化方向、原因 & 具體優化方案,希望你們會喜歡
優化方向流暢性效能優化的目的是為了讓應用程式App 更快、更穩定 & 更省。具體介紹如下:
更快:應用程式 執行得更加流暢、不卡頓,能快速響應使用者操作
更穩定:應用程式 能 穩定執行 & 解決使用者需求,在使用者使用過程中不出現應用程式崩潰(Crash) 和 無響應(ANR)的問題
更省:節省耗費的資源,包括 記憶體佔有、電池量、網路資源等
優化原因
利於 減少使用中的卡頓、響應時間久等問題,給與使用者一個操作流暢的體驗
優化方向
主要針對3個方面優化:啟動速度、頁面顯示速度、響應速度
1.啟動速度
初次開啟應用時,需載入很多資源 or 功能邏輯,採用 非同步載入(多執行緒)、分步載入、延期載入的策略,減少啟動應用時載入的任務,從而提高啟動速度。
2.頁面顯示速度
頁面需繪製的內容(佈局 & 控制元件)太多,從而導致頁面測量時間過長,繪製效率過低,從而導致繪製時間過長
3.響應速度
應用程式出現 ANR 情況,從而導致 應用程式響應速度慢,使用多執行緒,將大量 & 耗時操作放在工作執行緒中執行
4.其他優化方案
合理的重新整理機制動畫的使用根據不同場景選擇穩定性合適的動畫框架使用
硬體加速的方式
提高流暢度使用動畫後需停止動畫
應用崩潰(Crash)、應用無響應(ANR)
1.應用無響應(ANR)
儘量避免應用程式出現 ANR 情況,使用多執行緒,將大量 & 耗時操作放在工作執行緒中執行
2.應用崩潰(Crash)
應用崩潰Crash很多情況是因為 記憶體溢位,即OOM;故 需避免出現 OOM現象
資源節省性由於移動裝置的硬體效能有限,故減少應用程式的資源消耗顯得十分重要,記憶體大小、安裝包大小、耗電量 & 網路流量
1.記憶體優化
避免因不正確使用記憶體 & 缺乏管理,從而出現 記憶體洩露(ML)、記憶體溢位(OOM)、記憶體空間佔用過大 等問題,最終導致應用程式崩潰(Crash)
2.減少安裝包大小
應用程式的安裝包大小雖對應用程式的使用無影響,但影響的是:
空間佔有率:即 應用程式佔有手機記憶體的大小
下載門檻:應用的安裝包越大,使用者下載的門檻越高
特別在行動網路下,使用者下載應用時,對安裝包大小的要求更高,因此減小安裝包大小可讓更多使用者願意下載且使用產品
減少引入不必要的庫
程式碼混淆
外掛化
3.減少網路流量
每次獲取資源時 都通過流量 & 網路載入的方式,將耗費大量網路流量,主要通過 快取 減少網路流量,採用三級快取方案:即 記憶體快取 - 硬碟快取- 資料庫- 檔案 - 網路快取
4.減少應用的耗電量
總結隨著智慧手機普及 & 應用程式App的功能發展,人們的日常生活都離不開智慧手機 & 各式各樣的應用程式App,故 應用程式的耗電量指標則顯得十分重要
正確使用WakeLock機制
儘量使用JobScheduler
使用電量分析工具
區別於功能性開發需求的短期性,效能優化是貫穿整個應用程式App專案的持續性需求;雖專案一開始時,效能優化的優先順序較低,但當應用程式App的使用者體量達到一定規模時,效能優化 則非常重要