Android App優(yōu)化之性能分析工具

系列文:

  1. 背景:Android App優(yōu)化, 要怎么做?
  2. Android App優(yōu)化之性能分析工具
  3. Android App優(yōu)化之提升你的App啟動(dòng)速度之理論基礎(chǔ)
  4. Android App優(yōu)化之提升你的App啟動(dòng)速度之實(shí)例挑戰(zhàn)
  5. Android App優(yōu)化之Layout怎么擺
  6. Android App優(yōu)化之ANR詳解
  7. Android App優(yōu)化之消除卡頓
  8. Android App優(yōu)化之內(nèi)存優(yōu)化
  9. Android App優(yōu)化之持久電量
  10. Android App優(yōu)化之如何高效網(wǎng)絡(luò)請(qǐng)求

今天聊下個(gè)人比較慣用的一些App性能測(cè)試和分析工具, 先上個(gè)圖:
![性能分析工具]

tools_mind_node

本文暫不對(duì)工具的使用做過(guò)多的深入.
在后續(xù)的具體實(shí)例中會(huì)具體說(shuō)明怎么用這些工具來(lái)達(dá)成分析目的和解決問(wèn)題的.

1, 官方工具

一般來(lái)說(shuō), 學(xué)習(xí)一門新的技術(shù), 最應(yīng)該做的就是閱讀其官方文檔, 那是最權(quán)威的.
Android本身給我們提供了很多App性能測(cè)試和分析工具, 而且大部分都集成到Android Studio或DDMS中, 非常方便使用.

1.1 StrictMode

  • 說(shuō)明
    顧名思義, "嚴(yán)格模式", 主要用來(lái)限制應(yīng)用做一些不符合性能規(guī)范的事情. 一般用來(lái)檢測(cè)主線程中的耗 時(shí)操作和阻塞. 開啟StrictMode后, 如果線程中做一些諸如讀寫文件, 網(wǎng)絡(luò)訪問(wèn)等操作, 將會(huì)在Log console輸出一些警告, 警告信息包含Stack Trace來(lái)顯示哪個(gè)地方出了問(wèn)題.

  • 文檔

  • 作用

    • 主要用來(lái)做主線程優(yōu)化分析

1.2 Systrace

  • 說(shuō)明
    Systrace是一個(gè)收集和檢測(cè)時(shí)間信息的工具, 它能顯示CPU和時(shí)間被消耗在哪兒了, 每個(gè)進(jìn)程和線程都在其CPU時(shí)間片內(nèi)做了什么事兒. 而且會(huì)指示哪個(gè)地方出了問(wèn)題, 以及給出Fix建議.
    其以trace文件(html)的方式記錄. 可以直接用Chrome瀏覽器打開查看. 界面如下:
Systrace

1.3 Hierarchy Viewer

  • 說(shuō)明
    Hierarchy Viewer提供了一個(gè)可視化的界面來(lái)觀測(cè)布局的層級(jí), 讓我們可以優(yōu)化布局層級(jí), 刪除多余的不必要的View層級(jí), 提升布局速度.
Hierarchy Viewer

有必要說(shuō)明下的是:
上圖紅框標(biāo)出的三個(gè)點(diǎn)是關(guān)鍵分析數(shù)據(jù). 左起依次代表View的Measure, Layout和Draw的性能. 另外顏色表示該View的該項(xiàng)時(shí)間指數(shù), 分為:
* 綠色, 表示該View的此項(xiàng)性能比該View Tree中超過(guò)50%的View都要快.
* 黃色, 表示該View的此項(xiàng)性能比該View Tree中超過(guò)50%的View都要慢.
* 紅色, 表示該View的此項(xiàng)性能是View Tree中最慢的.

Hierarchy Viewer需要Root的機(jī)器(產(chǎn)品機(jī)沒(méi)有開啟ViewServer)才可以執(zhí)行.
可以使用第三方的開源的ViewServer來(lái)協(xié)助我們?cè)谖碦oot的機(jī)器上使用Hierarchy Viewer分析.

1.4 TraceView

  • 說(shuō)明
    一個(gè)圖形化的工具, 用來(lái)展示和分析方法的執(zhí)行時(shí)間.
TraceView

1.5 Memory Monitor

  • 說(shuō)明
    內(nèi)存使用檢測(cè)器, 可以實(shí)時(shí)檢測(cè)當(dāng)前Application的內(nèi)存使用和釋放等信息, 并以圖形化界面展示.
Memory Monitor

1.6 Other Monitor

1.7 其他

Android的開發(fā)者模式中也提供了較多的用來(lái)監(jiān)測(cè)性能的選項(xiàng), 可以用下:

Developer options

2, 第三方工具

以下工具全部開源, 開源萬(wàn)歲...

2.1 Google的Battery Historian

2.2 網(wǎng)易的

  • 說(shuō)明
    針對(duì)Android App的CPU, 內(nèi)存, 網(wǎng)絡(luò), 電量等多項(xiàng)綜合的測(cè)試分析.

  • 文檔

  • 作用

    • 比官方工具更適合國(guó)人使用來(lái)做App的整體性能分析.

2.3 Square

  • 說(shuō)明
    Square出品, 必屬精品.
    類似與App探針的內(nèi)存泄露監(jiān)測(cè)工具.

  • 文檔

  • 作用

    • 集成到App中, 用來(lái)做內(nèi)存問(wèn)題預(yù)防最好不過(guò)了.

2.4 AndroidDevMetrics

  • 說(shuō)明
    一個(gè)library, 用來(lái)檢測(cè)Activity生命周期執(zhí)行性能, Dagger2注入性能以及幀率性能的工具.

  • 文檔

  • 作用

    • 如果你的應(yīng)用使用的Dagger2, 這個(gè)就比較必要了.

3, 結(jié)語(yǔ)

MAT沒(méi)有側(cè)重的提, 是因?yàn)檫@個(gè)工具在ADT時(shí)代比較常用, AS2.0之后, 本身的Memory Monitor越來(lái)越強(qiáng)大, 結(jié)合日益完善的第三方工具基本上可以完成內(nèi)存方面的優(yōu)化了.

歡迎大家分享自己常用的App性能分析工具, 共同學(xué)習(xí)~
_

最后編輯于
?著作權(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)容

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