版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得在任何公眾號(hào)發(fā)布。

通常項(xiàng)目比較大的APP都面臨著如下性能問題,APP啟動(dòng)慢、界面跳轉(zhuǎn)慢、事件相應(yīng)慢、滑動(dòng)和動(dòng)畫卡頓、展現(xiàn)內(nèi)容慢等,有的公司處理的很好,有的還有很大的優(yōu)化空間,對(duì)于性能優(yōu)化,怎么去做,我總結(jié)了一下性能優(yōu)化如何入手,Android性能優(yōu)化這個(gè)系列目前已經(jīng)完成11篇,涉及到常用內(nèi)存優(yōu)化工具的使用,比如Memory Monitor、MAT、Allaction Tracing、TraceView 等,也涉及到如何提高應(yīng)用的啟動(dòng)速度以及頁(yè)面的渲染速度,還有流暢度的檢測(cè)。學(xué)會(huì)這些,基本上可以處理一般的性能問題了,這段時(shí)間需要研究插件化和算法,實(shí)在抽不出來時(shí)間去總結(jié)學(xué)習(xí)性能優(yōu)化的相關(guān)知識(shí)了,日后會(huì)在此頁(yè)面中更新。
1、Android性能優(yōu)化第(一)篇---基本概念 http://www.itdecent.cn/p/c0e5c13d5ecb
第一篇簡(jiǎn)單回顧java的內(nèi)存區(qū)域劃分、引用、內(nèi)存泄露以及場(chǎng)景,還有垃圾回收
2、Android性能優(yōu)化第(二)篇---Memory Monitor檢測(cè)內(nèi)存泄露 http://www.itdecent.cn/p/ef9081050f5c
第二篇主要是使用過Android Studio自帶工具M(jìn)emory Monitor 檢測(cè)內(nèi)存泄露
3、Android性能優(yōu)化第(三)篇---MAT比Menmery Monitor更強(qiáng)大 http://www.itdecent.cn/p/2d47d1cf5ccf
接上一篇,介紹另外一種內(nèi)存泄露的檢測(cè)工具M(jìn)AT
4、Android性能優(yōu)化第(四)篇---Android渲染機(jī)制 http://www.itdecent.cn/p/9ac245657127
學(xué)習(xí)一下Android渲染機(jī)制,為什么16ms沒完成繪制就會(huì)卡頓?
5、Android性能優(yōu)化第(五)篇---Allaction Tracing追蹤內(nèi)存分配的軌跡 http://www.itdecent.cn/p/d9e426c10581
Allaction Tracing是追蹤內(nèi)存分配的工具,可以很直觀的看到某個(gè)操作是如何一步步分配的
6、Android性能優(yōu)化第(六)篇---TraceView 分析圖怎么看 http://www.itdecent.cn/p/388c693c1b58
TraceView 是 Android 平臺(tái)特有的數(shù)據(jù)采集和分析工具,主要用做熱點(diǎn)分析,找出最需要優(yōu)化的點(diǎn)。我就是靠它將我公司的項(xiàng)目的啟動(dòng)速度明顯的提高了。
7、Android性能優(yōu)化第(七)篇---StrickMode嚴(yán)苛模式檢測(cè)耗時(shí)與內(nèi)存問題 http://www.itdecent.cn/p/2ebc9363ea16
StrictMode意思為嚴(yán)格模式,是用來檢測(cè)程序中違例情況的開發(fā)者工具。使用一般是場(chǎng)景是檢測(cè)主線程中本地磁盤和網(wǎng)絡(luò)讀寫等耗時(shí)的操作。注意這個(gè)StrictMode是在Anroid2.3以后引入的。嚴(yán)格模式主要檢測(cè)兩大問題,一個(gè)是線程策略,即TreadPolicy,另一個(gè)是VM策略,即VmPolicy。
8、Android性能優(yōu)化第(八)篇---App啟動(dòng)速度優(yōu)化之耗時(shí)檢測(cè)處理 http://www.itdecent.cn/p/a0e242d57360
介紹如何統(tǒng)計(jì)應(yīng)用的啟動(dòng)時(shí)間和性能檢查項(xiàng),并且用TraceView逐個(gè)修復(fù)
9、Android性能優(yōu)化第(九)篇---App啟動(dòng)速度優(yōu)化之啟動(dòng)頁(yè)設(shè)計(jì) http://www.itdecent.cn/p/777fe2f71039
因?yàn)閱?dòng)頁(yè)一般View的數(shù)量比較少,業(yè)務(wù)邏輯比較簡(jiǎn)單,啟動(dòng)不太費(fèi)勁,但是該怎么寫啟動(dòng)頁(yè)面讓應(yīng)用的啟動(dòng)速度更快呢?
10、Android性能優(yōu)化第(十)篇---布局優(yōu)化 http://www.itdecent.cn/p/c0e0cca14162
Android系統(tǒng)每隔16ms就重新繪制一次Activity,如果沒有完成就會(huì)有丟幀的現(xiàn)象。為了減輕UI繪制的負(fù)擔(dān),有必要把Layout編寫的一些注意事項(xiàng)總結(jié)一下
11、Android性能優(yōu)化第(十 一)篇---卡頓分析,正確評(píng)測(cè)流暢度 http://www.itdecent.cn/p/d126640eccb1
說到應(yīng)用的流暢度,都會(huì)想到FPS,F(xiàn)PS評(píng)測(cè)應(yīng)用流暢度不準(zhǔn)確,系統(tǒng)獲取FPS的原理是:手機(jī)屏幕顯示的內(nèi)容是通過Android系統(tǒng)的SurfaceFLinger類,把當(dāng)前系統(tǒng)里所有進(jìn)程需要顯示的信息合成一幀,然后提交到屏幕上進(jìn)行顯示,F(xiàn)PS就是1秒內(nèi)SurfaceFLinger提交到屏幕的幀數(shù)。但是用FPS來評(píng)測(cè)一個(gè)應(yīng)用是否真的卡頓存在兩個(gè)問題,我們可以使用Choreographer幀率檢測(cè)。
還有幾個(gè)想寫的,過兩個(gè)月抽出來時(shí)間去總結(jié),對(duì)低性能say no,希望朋友們來個(gè)mark,知識(shí)共享。未來性能優(yōu)化還有四篇,如下
12、Android性能優(yōu)化第(十二)篇---耗內(nèi)存大戶Bitmap
13、Android性能優(yōu)化第(十三)篇---安裝包性能瘦身
14、Android性能優(yōu)化第(十四)篇---MultiDex初次啟動(dòng)優(yōu)化
15、Android性能優(yōu)化第(十 五)篇---Systrace的使用
`Please accept mybest wishes for your happiness and success !