Android
開發中,性能優化策略十分重要Android
性能優化的詳細攻略, 含:優化方向、緣由 & 具體優化方案,但願大家會喜歡文章較長,建議預留較長時間閱讀 / 收藏html
性能優化的目的是爲了讓應用程序App
更快、更穩定 & 更省。具體介紹以下:面試
(Crash)
和 無響應(ANR)
的問題針對上述目的,需優化的性能指標 含:流暢性、穩定性、資源節省性數據庫
因爲咱們打開的頁面大可能是
Activity
,下面將給出加速啓動Activity
的方式小程序
優化緣由(即 頁面顯示速度慢的緣由) a. 頁面需繪製的內容(佈局 & 控件)太多,從而致使頁面測量時間過長 b. 繪製效率太低,從而致使繪製時間過長緩存
優化方案 佈局優化 & 繪製優化。具體請看文章:性能優化
ANR
狀況,從而致使 應用程序響應速度慢關於
ANR
的簡介以下網絡
- 多線程的方式 包括:
AsyncTask
、繼承Thread
類、實現Runnable
接口、Handler
消息機制、HandlerThread
等- 注:實際開發中,當一個進程發生了
ANR
後,系統會在/data/anr
目錄下建立一個文件traces.txt
,經過分析該文件可定位出ANR
的緣由
合理的刷新機制多線程
動畫的使用架構
下面,總結 關於流暢性的性能優化方案框架
Android
應用穩定性的緣由有不少,主要是:應用崩潰(Crash)
、應用無響應(ANR)
這2個錯誤的結果將致使程序沒法使用
(Crash)
、應用無響應(ANR)
優化原理 儘可能避免應用程序出現 ANR
狀況
優化方案 使用多線程,將大量 & 耗時操做放在工做線程中執行
- 多線程的方式 包括:
AsyncTask
、繼承Thread
類、實現Runnable
接口、Handler
消息機制、HandlerThread
等- 關於多線程的使用,可看我寫的關於多線程的文集:多線程系列
- 注:實際開發中,當一個進程發生了
ANR
後,系統會在/data/anr
目錄下建立一個文件traces.txt
,經過分析該文件可定位出ANR
的緣由
Crash
不少狀況是由於 內存溢出,即OOM
;故 需避免出現 OOM
現象內存溢出 簡介:
下面,總結 關於穩定性的性能優化方案
優化緣由 因爲移動設備的硬件性能有限,故減小應用程序的資源消耗顯得十分重要
優化方向 內存大小、安裝包大小、耗電量 & 網絡流量
優化緣由 避免因不正確使用內存 & 缺少管理,從而出現 內存泄露(ML)
、內存溢出(OOM)
、內存空間佔用過大 等問題,最終致使應用程序崩潰(Crash
)
優化方向 常見的內存問題以下
Bitmap
相關特別在移動網絡下,用戶下載應用時,對安裝包大小的要求更高,所以減少安裝包大小可以讓更多用戶願意下載 & 使用產品
優化緣由 每次獲取資源時 都經過流量 & 網絡加載的方式,將耗費大量網絡流量
優化方案 主要經過 緩存 減小網絡流量,採用三級緩存方案:即 內存緩存 - 硬盤緩存- 數據庫- 文件 - 網絡緩存
具體描述:當加載資源時,先從內存緩存中尋找;若內存緩存中沒有,則從文件緩存中尋找;若文件緩存中沒有,最終再經過流量從網絡中加載獲取
6.4 減小應用的耗電量
App
的功能發展,人們的平常生活都離不開智能手機 & 各式各樣的應用程序App
,故 應用程序的耗電量指標則顯得十分重要具體優化方案以下:
下面,總結 關於資源節省性的性能優化方案
App
項目的持續性需求;雖項目一開始時,性能優化的優先級較低,但當應用程序App
的用戶體量達到必定規模時,性能優化 則很是重要Android
開發中的性能優化 全部知識,含:優化方向、緣由 & 具體優化方案,下面用2張圖總結:
想學習更多Android知識,請加入Android技術開發交流 7520 16839
進羣與大牛們一塊兒討論,還可獲取Android高級架構資料、源碼、筆記、視頻
包括 高級UI、Gradle、RxJava、小程序、Hybrid、移動架構、React Native、性能優化等全面的Android高級實踐技術講解性能優化架構思惟導圖,和BATJ面試題及答案!
羣裏免費分享給有須要的朋友,但願可以幫助一些在這個行業發展迷茫的,或者想系統深刻提高以及困於瓶頸的朋友,在網上博客論壇等地方少花些時間找資料,把有限的時間,真正花在學習上,因此我在這免費分享一些架構資料及給你們。但願在這些資料中都有你須要的內容。
Android高級技術大綱,以及系統進階視頻,及面試題和答案
面試題及答案
Android高級技術大綱
Android 進階視頻資料