android性能跟蹤分析工具系列

android各種工具分類

  • app 每幀耗時追蹤

    • GPU 呈現(xiàn)模式分析
      android 手機自帶功能檀咙,可以查看每一幀的耗時,和不同類型任務(wù)耗時
      這是官方給的顏色解釋
image
  • Swap Buffers:表示處理任務(wù)的時間屏镊,也可以說是CPU等待GPU完成任務(wù)的時間,線條越高宋距,表示GPU做的事情越多沐扳;

  • Command Issue:表示執(zhí)行任務(wù)的時間,這部分主要是Android進(jìn)行2D渲染顯示列表的時間织鲸,為了將內(nèi)容繪制到屏幕上舔腾,Android需要使用Open GL ES的API接口來繪制顯示列表,紅色線條越高表示需要繪制的視圖更多搂擦;

  • Sync & Upload:表示的是準(zhǔn)備當(dāng)前界面上有待繪制的圖片所耗費的時間稳诚,為了減少該段區(qū)域的執(zhí)行時間,我們可以減少屏幕上的圖片數(shù)量或者是縮小圖片的大衅偬摺采桃;

  • Draw:表示測量和繪制視圖列表所需要的時間,藍(lán)色線條越高表示每一幀需要更新很多視圖丘损,或者View的onDraw方法中做了耗時操作;

  • Measure/Layout:表示布局的onMeasure與onLayout所花費的時間工扎,一旦時間過長徘钥,就需要仔細(xì)檢查自己的布局是不是存在嚴(yán)重的性能問題;

  • Animation:表示計算執(zhí)行動畫所需要花費的時間肢娘,包含的動畫有ObjectAnimator呈础,ViewPropertyAnimator,Transition等等橱健。一旦這里的執(zhí)行時間過長而钞,就需要檢查是不是使用了非官方的動畫工具或者是檢查動畫執(zhí)行的過程中是不是觸發(fā)了讀寫操作等等;

  • Input Handling:表示系統(tǒng)處理輸入事件所耗費的時間拘荡,粗略等于對事件處理方法所執(zhí)行的時間臼节。一旦執(zhí)行時間過長,意味著在處理用戶的輸入事件的地方執(zhí)行了復(fù)雜的操作珊皿;

  • Misc Time/Vsync Delay:表示在主線程執(zhí)行了太多的任務(wù)网缝,導(dǎo)致UI渲染跟不上vSync的信號而出現(xiàn)掉幀的情況;(主線程阻塞,太多耗時操作)

6.x 中的圖中蟋定,把顏色分的更新了粉臊,頁更能表現(xiàn)出更多的任務(wù)來,仔細(xì)看最底下的深綠色新添加的驶兜,是我們需要仔關(guān)注的扼仲,表示 UI線程因為任務(wù)多远寸,造成渲染界面延遲。

  • systrace
    studio DDMS 里面的工具屠凶,可以查看每一幀的耗時驰后,和造成耗時的方法

  • app 性能追蹤

    • TraceView
      追蹤方法的執(zhí)行情況,查看方法的耗時和 cpu 資源消耗
    • blockcanary
      在主線程 looper 中添加 printer阅畴,利用 looper 在分發(fā)任務(wù)執(zhí)行前后會調(diào)用 printer 的機制倡怎,判斷任務(wù)前后的耗時,超過閥值就生成一條日志提醒
  • 內(nèi)存追蹤

    • MAT
    • Memory Monitor
    • Allocation Gracker
    • Heap Viewer
    • LeakCanary
  • GPU性能分析

    • Hierarchy Viewer
    • 調(diào)試 GPU過度繪制
  • 代碼分析工具

  • lint

我對性能優(yōu)化理解
上面我羅列了這么多工具贱枣,根本目的還是為了能夠在我們需要的時候發(fā)現(xiàn)問題监署,定位問題工具只不過是具體的一種手段,這里我說下自己的體會

性能優(yōu)化的核心做法無外乎4種:

  • 減少重復(fù)工作
    這里側(cè)重于代碼的具體編寫纽哥,能 new 一個對象的钠乏,你非要 new 10個對象
  • 優(yōu)化執(zhí)行時機
    典型的案例是在頁面的 onCreate 函數(shù)里,你干好多耗時操作春塌,讓一些不是很著急的工作去和頁面加載工作搶資源晓避,這里耗時操作可以在做一個延遲加載,在頁面顯示后再去干
  • 工作量拆分
    打個比喻好比工作量對于一個人來說很大只壳,那么就多找?guī)讉€人干俏拱。具體的例子有微信 V2.0 版的架構(gòu),就把 webview 放到單獨一個進(jìn)程去干吼句,在操作系統(tǒng)來看一個進(jìn)程就好比一個人一樣的
  • 優(yōu)化架構(gòu)
    高玩都說一個好的架構(gòu)比代碼優(yōu)化重要的多锅必,打個比喻,圖錢加載現(xiàn)在都是用一個全局的緩存惕艳,但是你在每一個頁面里都維護(hù)一個緩存搞隐,那么你每個頁面里的緩存維護(hù)的再好,性能也比不上好的架構(gòu)只需維護(hù)一個緩存
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末远搪,一起剝皮案震驚了整個濱河市劣纲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谁鳍,老刑警劉巖癞季,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異倘潜,居然都是意外死亡余佛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門窍荧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辉巡,“玉大人,你說我怎么就攤上這事蕊退〗奸梗” “怎么了憔恳?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長净蚤。 經(jīng)常有香客問我钥组,道長,這世上最難降的妖魔是什么今瀑? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任程梦,我火速辦了婚禮,結(jié)果婚禮上橘荠,老公的妹妹穿的比我還像新娘屿附。我一直安慰自己,他們只是感情好哥童,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布挺份。 她就那樣靜靜地躺著,像睡著了一般贮懈。 火紅的嫁衣襯著肌膚如雪匀泊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天朵你,我揣著相機與錄音各聘,去河邊找鬼。 笑死抡医,一個胖子當(dāng)著我的面吹牛躲因,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播魂拦,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼搁嗓!你這毒婦竟也來了芯勘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤腺逛,失蹤者是張志新(化名)和其女友劉穎荷愕,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棍矛,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡安疗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了够委。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荐类。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖茁帽,靈堂內(nèi)的尸體忽然破棺而出玉罐,到底是詐尸還是另有隱情屈嗤,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布吊输,位于F島的核電站饶号,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏季蚂。R本人自食惡果不足惜茫船,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望扭屁。 院中可真熱鬧算谈,春花似錦、人聲如沸疯搅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幔欧。三九已至罪治,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間礁蔗,已是汗流浹背觉义。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留浴井,地道東北人晒骇。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像磺浙,于是被迫代替她去往敵國和親洪囤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容