Android性能优化之工具
android 性能优化
TraceView
TraceView 主要用来检测耗时的方法。
使用方法Android Studio——Toos——Android——Android Device Montior
如果显示不出来,就杀死Montior.exe进程,再次打开就可以了
选择一个进程,然后按上面的Start Method Profiling按钮,等红色小点变成黑色以后就表示TraceView已经开始工作了。然后执行我们要检查的操作,例如滑动列表,操作最好不要超过5s,因为最好是进行小范围的性能测试。然后再按一下刚才按的按钮,等一会就会出现上面这幅图,然后就可以开始分析了。
重要指标Calls + Recur Calls / Total
它表示这个方法执行的次数,这个指标中有两个值,一个Call表示这个方法调用的次数,Recur Call表示递归调用次数
Cpu Time / Call
定位问题时 TraceView 的使用方式:哪些方法的执行需要花费很长时间
点击 TraceView 中的 Cpu Time/Call,按照占用 CPU 时间从高到低排序
哪些方法调用次数非常频繁
点击 TraceView 中的 Calls + Recur Calls/Total ,按照调用次数从高到底排序
Inspect Code
Insepct Code是用于对代码进行静态质量分析的工具,它是lint的增强版,可以检测出来很多潜在的问题,同时给你提供改善建议;它不仅可以对整个工程、某个module、某个文件进行所有规则的代码静态质量检测,还可以针对某一项规则对整个工程进行检测。
这个工具能够检测出很多关于Java和Android方面的性能问题,比如布局导致的过渡绘制、在onDraw方法中创建新的实例、Handler内部类导致的潜在内存泄露、使用SparseArray代替HashMap的建议、布局层次太深、TypedArrays和VelocityTrackers没有调用recycle方法导致的内存泄露、存在没有使用的资源文件、系统方法取代自定义实现功能代码块的建议、IO操作导致的内存泄露问题、String和StringBuilder的相互替换等等。
使用方法
Android Studio——Analyze——Inspect Code...
关注指标Android > Lint > Performance
层级相关 建议使用merge
handler持有外部类
Layout包含过多的view
在onDraw方法中创建新的实例
overdraw
-
xx
HierarchyViewer
参考