Android效能優化:手把手教你如何讓App更快、更穩、更省(含記憶體、佈局優化等)
效能優化的目的是為了讓應用程式 App
更快、更穩定 & 更省 。具體介紹如下:
- 更快:應用程式 執行得更加流暢、不卡頓,能快速響應使用者操作
- 更穩定:應用程式 能 穩定執行 & 解決使用者需求,在使用者使用過程中不出現應用程式崩潰
(Crash)
和 無響應(ANR)
的問題 - 更省:節省耗費的資源,包括 記憶體佔有、電池量、網路資源等
2. 需優化的效能指標
針對上述目的,需優化的效能指標 含: 流暢性、穩定性、資源節省性
3. 優化方向
- 針對上述效能指標,本文主要講解的優化方向如下:

- 下面,我將針對每一種效能指標,詳細講解其優化方案
4. 流暢性
- 優化原因 利於 減少使用中的卡頓、響應時間久等問題,給與使用者一個操作流暢的體驗
- 優化方向 主要針對3個方面優化:啟動速度、頁面顯示速度、響應速度
4.1 啟動速度
- 優化原因(即 啟動速度慢的原因) 初次開啟應用時,需載入很多資源 or 功能邏輯
- 優化方案 採用 非同步載入(多執行緒)、分步載入、延期載入 的策略,減少啟動應用時載入的任務,從而提高啟動速度
由於我們開啟的頁面大多是 Activity
,下面將給出加速啟動 Activity
的方式

4.2 頁面顯示速度
-
優化原因(即 頁面顯示速度慢的原因) a. 頁面需繪製的內容(佈局 & 控制元件)太多,從而導致頁面測量時間過長 b. 繪製效率過低,從而導致繪製時間過長
-
優化方案 佈局優化 & 繪製優化。具體請看文章:
4.3 響應速度
- 優化原因 應用程式出現
ANR
情況,從而導致 應用程式響應速度慢
關於 ANR
的簡介如下

- 優化方案 使用多執行緒 ,將大量 & 耗時操作放在工作執行緒中執行
- 多執行緒的方式 包括:
AsyncTask
、繼承Thread
類、實現Runnable
介面、Handler
訊息機制、HandlerThread
等 - 注:實際開發中,當一個程序發生了
ANR
後,系統會在/data/anr
目錄下建立一個檔案traces.txt
,通過分析該檔案可定位出ANR
的原因
4.4 其他優化方案
-
合理的重新整理機制
-
動畫的使用
- 根據不同場景選擇 合適的動畫框架
- 使用 硬體加速的方式 提高流暢度
- 使用動畫後需停止動畫
4.5 總結
下面,總結 關於流暢性的效能優化方案

5. 穩定性
- 影響
Android
應用穩定性的原因有很多,主要是:應用崩潰(Crash)
、應用無響應(ANR)
這2個錯誤的結果將導致程式無法使用
- 下面,將主要講解該2個優化方向:應用崩潰
(Crash)
、應用無響應(ANR)
5.1 應用無響應(ANR)
- 簡介

-
優化原理 儘量避免應用程式出現
ANR
情況 -
優化方案 使用多執行緒 ,將大量 & 耗時操作放在工作執行緒中執行
- 多執行緒的方式 包括:
AsyncTask
、繼承Thread
類、實現Runnable
介面、Handler
訊息機制、HandlerThread
等 - 關於多執行緒的使用,可看我寫的關於多執行緒的文集:多執行緒系列
- 注:實際開發中,當一個程序發生了
ANR
後,系統會在/data/anr
目錄下建立一個檔案traces.txt
,通過分析該檔案可定位出ANR
的原因
5.2 應用崩潰(Crash)
- 優化原理 應用崩潰
Crash
很多情況是因為 記憶體溢位 ,即OOM
;故 需避免出現OOM
現象
記憶體溢位 簡介:

- 優化方案 關於記憶體優化,具體請看文章: Android效能優化:這是一份全面&詳細的記憶體優化指南