今天聊下个人比较惯用的一些App性能测试和分析工具, 先上个图:
![性能分析工具]
tools_mind_node
本文暂不对工具的使用做过多的深入.
在后续的具体实例中会具体说明怎么用这些工具来达成分析目的和解决问题的.
1, 官方工具
一般来说, 学习一门新的技术, 最应该做的就是阅读其官方文档, 那是最权威的.
Android本身给我们提供了很多App性能测试和分析工具, 而且大部分都集成到Android Studio或DDMS中, 非常方便使用.
1.1 StrictMode
1.2 Systrace
- 说明
Systrace是一个收集和检测时间信息的工具, 它能显示CPU和时间被消耗在哪儿了, 每个进程和线程都在其CPU时间片内做了什么事儿. 而且会指示哪个地方出了问题, 以及给出Fix建议.
其以trace文件(html)的方式记录. 可以直接用Chrome浏览器打开查看. 界面如下:
Systrace
1.3 Hierarchy Viewer
- 说明
Hierarchy Viewer提供了一个可视化的界面来观测布局的层级, 让我们可以优化布局层级, 删除多余的不必要的View层级, 提升布局速度.
Hierarchy Viewer
有必要说明下的是:
上图红框标出的三个点是关键分析数据. 左起依次代表View的Measure, Layout和Draw的性能. 另外颜色表示该View的该项时间指数, 分为:
* 绿色, 表示该View的此项性能比该View Tree中超过50%的View都要快.
* 黄色, 表示该View的此项性能比该View Tree中超过50%的View都要慢.
* 红色, 表示该View的此项性能是View Tree中最慢的.
Hierarchy Viewer需要Root的机器(产品机没有开启ViewServer)才可以执行.
可以使用第三方的开源的ViewServer来协助我们在未Root的机器上使用Hierarchy Viewer分析.
1.4 TraceView
- 说明
一个图形化的工具, 用来展示和分析方法的执行时间.
TraceView
1.5 Memory Monitor
- 说明
内存使用检测器, 可以实时检测当前Application的内存使用和释放等信息, 并以图形化界面展示.
Memory Monitor
1.6 Other Monitor
1.7 其他
Android的开发者模式中也提供了较多的用来监测性能的选项, 可以用下:
Developer options
2, 第三方工具
以下工具全部开源, 开源万岁...
2.1 Google的Battery Historian
2.2 网易的
2.3 Square
2.4 AndroidDevMetrics
3, 结语
MAT没有侧重的提, 是因为这个工具在ADT时代比较常用, AS2.0之后, 本身的Memory Monitor越来越强大, 结合日益完善的第三方工具基本上可以完成内存方面的优化了.
欢迎大家分享自己常用的App性能分析工具, 共同学习~
^_^