App效能之優化

2021-07-30 20:50:54 字數 2087 閱讀 4464

本文暫不對工具的使用做過多的深入.

在後續的具體例項中會具體說明怎麼用這些工具來達成分析目的和解決問題的.

1, 官方工具

1.1 strictmode

說明 顧名思義, 「嚴格模式」, 主要用來限制應用做一些不符合效能規範的事情. 一般用來檢測主線程中的耗 時操作和阻塞. 開啟strictmode後, 如果執行緒中做一些諸如讀寫檔案, 網路訪問等操作, 將會在log console輸出一些警告, 警告資訊包含stack trace來顯示哪個地方出了問題.

文件作用主要用來做主執行緒優化分析

1.2 systrace

說明 systrace是乙個收集和檢測時間資訊的工具, 它能顯示cpu和時間被消耗在哪兒了, 每個程序和執行緒都在其cpu時間片內做了什麼事兒. 而且會指示哪個地方出了問題, 以及給出fix建議.

其以trace檔案(html)的方式記錄. 可以直接用chrome瀏覽器開啟檢視. 介面如下:

文件作用作用很多, 個人主要用來分析ui的繪製時間, 結合hierarchy viewer來提公升ui效能.

也可以用來發現耗時操作.

1.3 hierarchy viewer

說明 hierarchy viewer提供了乙個視覺化的介面來觀測布局的層級, 讓我們可以優化布局層級, 刪除多餘的不必要的view層級, 提公升布局速度.

有必要說明下的是:

上圖紅框標出的三個點是關鍵分析資料. 左起依次代表view的measure, layout和draw的效能. 另外顏色表示該view的該項時間指數, 分為:

作用用來做view層級分析, 可以分析出view tree中的效能阻塞點, 以便對症下藥, 提公升布局效能.

hierarchy viewer需要root的機器(產品機沒有開啟viewserver)才可以執行.

可以使用第三方的開源的viewserver來協助我們在未root的機器上使用hierarchy viewer分析.

1.4 traceview

說明 乙個圖形化的工具, 用來展示和分析方法的執行時間.

traceview

文件作用分析方法呼叫棧以及其執行時間, 優化方法執行.

1.5 memory monitor

memory monitor

文件作用用來做記憶體分析, 記憶體洩露排查的不二之選. 可以結合heap viewer, allocation tracker來分析.

可以匯出hprof檔案結合第三方的mat工具分析洩**.

1.6 other monitor

說明 android studio的monitor還提供了其他三個motinor — cpu, gpu, network.

文件作用分別用來跟蹤監測cpu,gpu和network的使用極其變化, 可以作為網路優化, 流量優化和渲染優化等的乙個指導. (個人並不常用到~)

1.7 其他

android的開發者模式中也提供了較多的用來監測效能的選項, 可以用下:

developer options

2, 第三方工具

以下工具全部開源, 開源萬歲…

2.1 google的battery historian

說明 google出品, 通過android系統的bugreport檔案來做電量使用分析的工具.

文件作用用來做電量使用分析.

2.2 網易的

文件作用文件

作用說明

乙個library, 用來檢測activity生命週期執行效能, dagger2注入效能以及幀率效能的工具.

文件作用如果你的應用使用的dagger2, 這個就比較必要了.

3, 結語

App效能優化

首先,我們來了解一下,安卓裡面的記憶體分配方式以及它的 方式,的設定最大記憶體這段 不起作用 設定了也沒有什麼用 對於那種太久沒有使用的程序,而且又消耗記憶體的,就直接被gc 安卓的一種 機制 給 掉了。上附帶的功能進行檢視 當然也可以通過 來實現檢視 runtime.getruntime maxt...

App優化之效能分析工具

本文暫不對工具的使用做過多的深入.在後續的具體例項中會具體說明怎麼用這些工具來達成分析目的和解決問題的.作用 作用 hierarchy viewer 有必要說明下的是 上圖紅框標出的三個點是關鍵分析資料.左起依次代表view的measure,layout和draw的效能.另外顏色表示該view的該項...

APP效能優化基礎

這裡我大概從以下幾個方面分析吧 資料解析 從解析難度和速度來看,大家都比較傾向於json,目前也是最主流的資料格式。在android開發中可以使用優秀的解析庫來加快我們的解析速度,xml有jsoup,json有jackson gson,我們可以通過這些庫來幫助我們更快的完成資料解析,提高我們客戶端的...