android包内存放视频,Android性能优化:手把手教你如何让App更快、更稳、更省(含内存、布局优化等)...
為其決定了應用程序的開發質量:可用性、流暢性、穩定性等,是提高用戶留存率的關鍵
本文全面講解性能優化中的所有知識,獻上一份 Android性能優化的詳細攻略, 含:優化方向、原因 & 具體優化方案,希望你們會喜歡文章較長,建議預留較長時間閱讀 / ?收藏
目錄
示意圖
1. 性能優化的目的
性能優化的目的是為了讓應用程序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現象內存溢出 簡介:
示意圖
5.3 總結
下面,總結 關于穩定性的性能優化方案
示意圖
6. 資源節省性優化原因
由于移動設備的硬件性能有限,故減少應用程序的資源消耗顯得十分重要
優化方向
內存大小、安裝包大小、耗電量 & 網絡流量
6.1 內存優化優化原因
避免因不正確使用內存 & 缺乏管理,從而出現 內存泄露(ML)、內存溢出(OOM)、內存空間占用過大 等問題,最終導致應用程序崩潰(Crash)
優化方向
常見的內存問題如下內存泄露
內存抖動
圖片Bitmap相關
代碼質量 & 數量
日常不正確使用
具體優化方案
下面,我將詳細分析每項的內存問題 & 給出優化方案。具體請看文章:
6.2 減少安裝包大小優化原因
應用程序的安裝包大小雖對應用程序的使用無影響,但影響的是:空間占有率:即 應用程序占有手機內存的大小
下載門檻:應用的安裝包越大,用戶下載的門檻越高特別在移動網絡下,用戶下載應用時,對安裝包大小的要求更高,因此減小安裝包大小可讓更多用戶愿意下載 & 使用產品安裝包結構 介紹
示意圖優化方案
示意圖
6.3 減少網絡流量優化原因
每次獲取資源時 都通過流量 & 網絡加載的方式,將耗費大量網絡流量
優化方案
主要通過 緩存 減少網絡流量,采用三級緩存方案:即 內存緩存 - 硬盤緩存- 數據庫- 文件 - 網絡緩存具體描述:當加載資源時,先從內存緩存中尋找;若內存緩存中沒有,則從文件緩存中尋找;若文件緩存中沒有,最終再通過流量從網絡中加載獲取
6.4 減少應用的耗電量優化原因
隨著智能手機普及 & 應用程序App的功能發展,人們的日常生活都離不開智能手機 & 各式各樣的應用程序App,故 應用程序的耗電量指標則顯得十分重要
具體優化方案如下:
示意圖
6.5 總結
下面,總結 關于資源節省性的性能優化方案
示意圖
7. 總結區別于 功能性開發需求的短期性,性能優化是貫穿整個應用程序App項目的持續性需求;雖項目一開始時,性能優化的優先級較低,但當應用程序App的用戶體量達到一定規模時,性能優化 則非常重要
本文全面總結了Android開發中的性能優化 所有知識,含:優化方向、原因 & 具體優化方案,下面用2張圖總結:
性能優化概述
示意圖
作者:Carson_Ho
鏈接:https://www.jianshu.com/p/516effe7649d
打開App,閱讀手記
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的android包内存放视频,Android性能优化:手把手教你如何让App更快、更稳、更省(含内存、布局优化等)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: libgdx使用android控件,在A
- 下一篇: as3转换为html5,AS3和HTML