Android性能優(yōu)化的方方面面

版權(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 !

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,745評(píng)論 25 709
  • 版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得在任何公眾號(hào)發(fā)布。 通常項(xiàng)目比較大的APP都面臨著如下性能問題,AP...
    passiontim閱讀 816評(píng)論 1 17
  • 又到周六了~~這次來談?wù)勑阅軆?yōu)化吧。大家在工作中或多或少都會(huì)拿自家的應(yīng)用和競(jìng)品app做比對(duì),不可避免的需要做一些a...
    Android_Jieyao閱讀 4,604評(píng)論 4 113
  • just a try。1.png
    am1006閱讀 241評(píng)論 0 0
  • 兩情相悅是一件多么奢侈的事情。 微博上有一個(gè)話題“喜歡上一個(gè)不喜歡自己的人是什么樣的感覺?”有一個(gè)回答令我印象深刻...
    碧云女子閱讀 846評(píng)論 8 5

友情鏈接更多精彩內(nèi)容