Android性能分析的几种方法

Android性能分析的几种方法

  1. 通过Memory Monitor 查找内存泄漏
    Android Profiler中的Memory Monitor可以实时查看app的内存占用情况。通过操作app界面,抓取某段时间的heap dump分析内存泄漏情况


    Android性能分析的几种方法_第1张图片
    image

这个图是从主页反复进入选择APP页面过程抓取的heap dump信息,通过搜索SelectAppActivity发现存在多个实例,存在内存泄漏无疑,要查找具体泄漏的原因需要用到mat工具。
将刚才的heap dump导出文件,然后通过android 命令行工具hprof-conv转换为标准的heap dump,导入mat查看


Android性能分析的几种方法_第2张图片
image

然后通过path to GC Roots找到引用路径,发现是EventBus未注销引起的泄漏


Android性能分析的几种方法_第3张图片
image
Android性能分析的几种方法_第4张图片
image
  1. LeakCanary
    LeakCanary是square公司出的一个java/Android内存泄漏检测工具,具体使用见github:https://github.com/square/leakcanary

在apk运行过程中发生内存泄漏


Android性能分析的几种方法_第5张图片
image
  1. 使用Android Device Monitor中的TraceView分析性能
    TraceView有两种使用方法:
  • 方法级别:在代码中手动开启,统计某一函数的耗时,会在sdcard中输出trace文件,导入ddms即可查看
    Debug.startMethodTracing('tracepath') Debug.stopMethodTracing()
  • 时间段级别:通过ddms的Method Profiling或者Android Profile CPU中的method trace开启,用于统计一段时间内的函数耗时
Android性能分析的几种方法_第6张图片
image

比如分析list滚动性能,通过incl cpu time / call total 计算每个onBindingViewHolder耗时,来查看是否有阻塞操作


image

你可能感兴趣的:(Android性能分析的几种方法)