Android性能优化(traceView)

一、性能优化的目的:减少卡顿

二、性能优化工具:TraceView

TraceView是android SDK自带的工具,加载traceview文件,用图形化的方式展示代码的调用次数、执行时间,利于我们分析问题

三、如何生成traceview文件

1、在代码中插入

//开始trace

Debug.startMethodTracing("test");

//结束trace

Debug.stopMethodTracing();

编译、安装、运行程序后会生成*.trace文件,导出文件 adb pull /sdcard/*.trace ./ 到本地

2、通过Android Studio系统

tools->Android->Android Device Monitor,进入管理页面

Android性能优化(traceView)_第1张图片

点击start Method Profiling点击后变灰色

当我们停止收集数据的时候会出现如下分析图表

Android性能优化(traceView)_第2张图片

四、TraceView工具面板介绍

  该图表分为上下部分:

上面是时间轴面板 (Timeline Panel)

每一行代表一个线程的执行耗时情况

左侧显示的是线程信息

右侧黑色部分是显示执行时间段、白色是线程暂停时间段,

右侧鼠标放在上面会出现时间线纵轴,在顶部会显示当前时间线所执行的具体函数信息

下面是分析面板(Profile Panel) - 图表的下半部分是具体的每个方法执行的时间情况。

显示方法执行情况的前提:先选中某个线程。如main()线程

Inclusive time - 函数本身运行花费时间 + 函数调用其他函数时间

Exclusive time - 函数本身运行花费时间。

Calls + RecurCall/Total 调用 + 重复调用次数 / 函数总调用次数

Cpu Time/Call 总的Cpu时间与总的调用次数之比

Android性能优化(traceView)_第3张图片

五、如何进行具体的分析

1. 如何定位到所关心的地方?

上面只是介绍了如何使用TraceView且有两种用法,但是有时使用第一种方式范围又不太精确,使用第二种添加代码的方式,可能有些地方又监听不到。这种情况可以尝试把开始或者结束放到延迟线程中,延迟一段时间在执行开始或者结束。

2. 如何查找出哪些地方比较耗时?

TraceView罗列出了是所有监听到的方法,当然也包括Android系统很多方法的耗时,如何在这么多方法里面查找到自己关心的? 可以通过TraceView 底部的find 来查找,通常Android app都是有包名的,可以先针对某些关心的列排序后,在通过包名进行一个个查找,这些就省去自己筛选出自己app 方法耗时排行的时间。

你可能感兴趣的:(Android性能优化(traceView))