性能优化工具篇总结
2018-09-20 本文已影响136人
Stan_Z
这段时间总结了一些常用的性能优化工具,当然这些并没有包含全部的工具,下面稍微对这些工具做个简单的总结:
学习计划
一.应用codeReview工具
工具名 | 说明 |
---|---|
StrictMode | 检测应用主线程不规范代码 |
Lint | AS中提供的代码分析工具,它能够检查出代码当中存在的问题,定义该问题的严重程度,并给出相应的解决方案,这样我们就可以快速地定位和修复问题。 |
二、内存问题分析工具
2.1.明显内存问题初筛
工具名 | 说明 |
---|---|
Allocation Tracker | 查看堆内存分配情况,可以直接跳转源码 |
Heap Viewer | 查看堆内存分配数据,提供初步判断 |
两者配合Memory monitor使用可定位一些比较明显的内存泄漏、内存抖动等问题。
2.2.内存泄漏问题
工具名 | 说明 |
---|---|
MAT | 优点:精确详细分析,缺点:有一些门槛,且分析相对比较耗时耗力。 |
LeakCanaray | 优点:傻瓜式分析工具 缺点:无法检测出Service的内存泄漏,无法检测最底层的MainActivity |
三、重复布局&过度绘制
工具名 | 说明 |
---|---|
调试GPU过度绘制 & GPU呈现模式 | 可以宏观分析页面问题 |
Layout Inspector | 对视图层次结构分析 |
四、卡顿掉帧
工具名 | 说明 |
---|---|
Systrace | 可以给出整个系统的一些关键模块的性能信息 |
TraceView | 擅长Method问题追踪 |
Simpleperf | 通过火焰图,我们能非常直观地看到性能的瓶颈 |
五、功耗问题
工具名 | 说明 |
---|---|
Battery Historain | 分析电量、充电放电状态、一段时间内的用户使用行为、以及手机温度等等 |
六、其他三方工具(有兴趣可以去玩玩,在此不做分析了)
NetEase/Emmagee
frogermcs/AndroidDevMerics
......
最后想说的是,目前对工具的总结很多还只停留在初步使用阶段,工具就是这样的,越用越熟练。另外笔者认为这些工具里面,比较重要的也比较常用的工具是:MAT、TraceView、Systrace. 掌握好这些工具的使用,会帮助你更好地定位性能问题。