android包内存放视频,Android性能优化:手把手教你如何让App更快、更稳、更省(含内存、布局优化等)...
為其決定了應(yīng)用程序的開(kāi)發(fā)質(zhì)量:可用性、流暢性、穩(wěn)定性等,是提高用戶留存率的關(guān)鍵
本文全面講解性能優(yōu)化中的所有知識(shí),獻(xiàn)上一份 Android性能優(yōu)化的詳細(xì)攻略, 含:優(yōu)化方向、原因 & 具體優(yōu)化方案,希望你們會(huì)喜歡文章較長(zhǎng),建議預(yù)留較長(zhǎng)時(shí)間閱讀 / ?收藏
目錄
示意圖
1. 性能優(yōu)化的目的
性能優(yōu)化的目的是為了讓?xiě)?yīng)用程序App 更快、更穩(wěn)定 & 更省。具體介紹如下:更快:應(yīng)用程序 運(yùn)行得更加流暢、不卡頓,能快速響應(yīng)用戶操作
更穩(wěn)定:應(yīng)用程序 能 穩(wěn)定運(yùn)行 & 解決用戶需求,在用戶使用過(guò)程中不出現(xiàn)應(yīng)用程序崩潰(Crash) 和 無(wú)響應(yīng)(ANR)的問(wèn)題
更省:節(jié)省耗費(fèi)的資源,包括 內(nèi)存占有、電池量、網(wǎng)絡(luò)資源等
2. 需優(yōu)化的性能指標(biāo)
針對(duì)上述目的,需優(yōu)化的性能指標(biāo) 含:流暢性、穩(wěn)定性、資源節(jié)省性
3. 優(yōu)化方向針對(duì)上述性能指標(biāo),本文主要講解的優(yōu)化方向如下:
示意圖下面,我將針對(duì)每一種性能指標(biāo),詳細(xì)講解其優(yōu)化方案
4. 流暢性優(yōu)化原因
利于 減少使用中的卡頓、響應(yīng)時(shí)間久等問(wèn)題,給與用戶一個(gè)操作流暢的體驗(yàn)
優(yōu)化方向
主要針對(duì)3個(gè)方面優(yōu)化:啟動(dòng)速度、頁(yè)面顯示速度、響應(yīng)速度
4.1 啟動(dòng)速度優(yōu)化原因(即 ?啟動(dòng)速度慢的原因)
初次打開(kāi)應(yīng)用時(shí),需加載很多資源 or 功能邏輯
優(yōu)化方案
采用 異步加載(多線程)、分步加載、延期加載的策略,減少啟動(dòng)應(yīng)用時(shí)加載的任務(wù),從而提高啟動(dòng)速度由于我們打開(kāi)的頁(yè)面大多是Activity,下面將給出加速啟動(dòng)Activity的方式
示意圖
4.2 頁(yè)面顯示速度優(yōu)化原因(即 ?頁(yè)面顯示速度慢的原因)
a. 頁(yè)面需繪制的內(nèi)容(布局 & 控件)太多,從而導(dǎo)致頁(yè)面測(cè)量時(shí)間過(guò)長(zhǎng)
b. 繪制效率過(guò)低,從而導(dǎo)致繪制時(shí)間過(guò)長(zhǎng)
優(yōu)化方案
布局優(yōu)化 & 繪制優(yōu)化。具體請(qǐng)看文章:
4.3 響應(yīng)速度優(yōu)化原因
應(yīng)用程序出現(xiàn) ANR 情況,從而導(dǎo)致 應(yīng)用程序響應(yīng)速度慢關(guān)于ANR的簡(jiǎn)介如下
示意圖優(yōu)化方案
使用多線程,將大量 & 耗時(shí)操作放在工作線程中執(zhí)行多線程的方式 包括:AsyncTask、繼承 Thread類(lèi)、實(shí)現(xiàn) Runnable接口、Handler消息機(jī)制、HandlerThread等
注:實(shí)際開(kāi)發(fā)中,當(dāng)一個(gè)進(jìn)程發(fā)生了ANR后,系統(tǒng)會(huì)在 /data/anr目錄下創(chuàng)建一個(gè)文件 traces.txt,通過(guò)分析該文件可定位出ANR的原因
4.4 其他優(yōu)化方案合理的刷新機(jī)制
示意圖
動(dòng)畫(huà)的使用根據(jù)不同場(chǎng)景選擇 合適的動(dòng)畫(huà)框架
使用 硬件加速的方式 提高流暢度
使用動(dòng)畫(huà)后需停止動(dòng)畫(huà)
4.5 總結(jié)
下面,總結(jié) 關(guān)于流暢性的性能優(yōu)化方案
示意圖
5. 穩(wěn)定性影響Android 應(yīng)用穩(wěn)定性的原因有很多,主要是:應(yīng)用崩潰(Crash)、應(yīng)用無(wú)響應(yīng)(ANR)這2個(gè)錯(cuò)誤的結(jié)果將導(dǎo)致程序無(wú)法使用下面,將主要講解該2個(gè)優(yōu)化方向:應(yīng)用崩潰(Crash)、應(yīng)用無(wú)響應(yīng)(ANR)
5.1 應(yīng)用無(wú)響應(yīng)(ANR)簡(jiǎn)介
示意圖優(yōu)化原理
盡量避免應(yīng)用程序出現(xiàn) ANR 情況
優(yōu)化方案
使用多線程,將大量 & 耗時(shí)操作放在工作線程中執(zhí)行多線程的方式 包括:AsyncTask、繼承 Thread類(lèi)、實(shí)現(xiàn) Runnable接口、Handler消息機(jī)制、HandlerThread等
關(guān)于多線程的使用,可看我寫(xiě)的關(guān)于多線程的文集:多線程系列
注:實(shí)際開(kāi)發(fā)中,當(dāng)一個(gè)進(jìn)程發(fā)生了ANR后,系統(tǒng)會(huì)在 /data/anr目錄下創(chuàng)建一個(gè)文件 traces.txt,通過(guò)分析該文件可定位出ANR的原因
5.2 應(yīng)用崩潰(Crash)優(yōu)化原理
應(yīng)用崩潰Crash很多情況是因?yàn)?內(nèi)存溢出,即OOM;故 需避免出現(xiàn) OOM現(xiàn)象內(nèi)存溢出 簡(jiǎn)介:
示意圖
5.3 總結(jié)
下面,總結(jié) 關(guān)于穩(wěn)定性的性能優(yōu)化方案
示意圖
6. 資源節(jié)省性優(yōu)化原因
由于移動(dòng)設(shè)備的硬件性能有限,故減少應(yīng)用程序的資源消耗顯得十分重要
優(yōu)化方向
內(nèi)存大小、安裝包大小、耗電量 & 網(wǎng)絡(luò)流量
6.1 內(nèi)存優(yōu)化優(yōu)化原因
避免因不正確使用內(nèi)存 & 缺乏管理,從而出現(xiàn) 內(nèi)存泄露(ML)、內(nèi)存溢出(OOM)、內(nèi)存空間占用過(guò)大 等問(wèn)題,最終導(dǎo)致應(yīng)用程序崩潰(Crash)
優(yōu)化方向
常見(jiàn)的內(nèi)存問(wèn)題如下內(nèi)存泄露
內(nèi)存抖動(dòng)
圖片Bitmap相關(guān)
代碼質(zhì)量 & 數(shù)量
日常不正確使用
具體優(yōu)化方案
下面,我將詳細(xì)分析每項(xiàng)的內(nèi)存問(wèn)題 & 給出優(yōu)化方案。具體請(qǐng)看文章:
6.2 減少安裝包大小優(yōu)化原因
應(yīng)用程序的安裝包大小雖對(duì)應(yīng)用程序的使用無(wú)影響,但影響的是:空間占有率:即 應(yīng)用程序占有手機(jī)內(nèi)存的大小
下載門(mén)檻:應(yīng)用的安裝包越大,用戶下載的門(mén)檻越高特別在移動(dòng)網(wǎng)絡(luò)下,用戶下載應(yīng)用時(shí),對(duì)安裝包大小的要求更高,因此減小安裝包大小可讓更多用戶愿意下載 & 使用產(chǎn)品安裝包結(jié)構(gòu) 介紹
示意圖優(yōu)化方案
示意圖
6.3 減少網(wǎng)絡(luò)流量?jī)?yōu)化原因
每次獲取資源時(shí) 都通過(guò)流量 & 網(wǎng)絡(luò)加載的方式,將耗費(fèi)大量網(wǎng)絡(luò)流量
優(yōu)化方案
主要通過(guò) 緩存 減少網(wǎng)絡(luò)流量,采用三級(jí)緩存方案:即 內(nèi)存緩存 - 硬盤(pán)緩存- 數(shù)據(jù)庫(kù)- 文件 - 網(wǎng)絡(luò)緩存具體描述:當(dāng)加載資源時(shí),先從內(nèi)存緩存中尋找;若內(nèi)存緩存中沒(méi)有,則從文件緩存中尋找;若文件緩存中沒(méi)有,最終再通過(guò)流量從網(wǎng)絡(luò)中加載獲取
6.4 減少應(yīng)用的耗電量?jī)?yōu)化原因
隨著智能手機(jī)普及 & 應(yīng)用程序App的功能發(fā)展,人們的日常生活都離不開(kāi)智能手機(jī) & 各式各樣的應(yīng)用程序App,故 應(yīng)用程序的耗電量指標(biāo)則顯得十分重要
具體優(yōu)化方案如下:
示意圖
6.5 總結(jié)
下面,總結(jié) 關(guān)于資源節(jié)省性的性能優(yōu)化方案
示意圖
7. 總結(jié)區(qū)別于 功能性開(kāi)發(fā)需求的短期性,性能優(yōu)化是貫穿整個(gè)應(yīng)用程序App項(xiàng)目的持續(xù)性需求;雖項(xiàng)目一開(kāi)始時(shí),性能優(yōu)化的優(yōu)先級(jí)較低,但當(dāng)應(yīng)用程序App的用戶體量達(dá)到一定規(guī)模時(shí),性能優(yōu)化 則非常重要
本文全面總結(jié)了Android開(kāi)發(fā)中的性能優(yōu)化 所有知識(shí),含:優(yōu)化方向、原因 & 具體優(yōu)化方案,下面用2張圖總結(jié):
性能優(yōu)化概述
示意圖
作者:Carson_Ho
鏈接:https://www.jianshu.com/p/516effe7649d
打開(kāi)App,閱讀手記
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的android包内存放视频,Android性能优化:手把手教你如何让App更快、更稳、更省(含内存、布局优化等)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: libgdx使用android控件,在A
- 下一篇: as3转换为html5,AS3和HTML