Android性能优化——TraceView的使用
2016-08-04 23:49
323 查看
序
最近开发的界面有个奇怪的现象,界面本身逻辑很简单。就是查询本地数据库,并以ListView展示。但是就这个简单的界面,却偶尔会出现需要等待两秒左右的时间才能显示列表,在性能比较底的手机上还会更久。怀疑是主线程的执行了耗时操作操作。因为在等待列表出现的过程中,界面无法响应触控操作。既然原因是主线程执行了耗时操作,那就需要找出具体是哪个方法做了耗时操作。Android已经为我们提供了分析工具——TraceView,运用这个工具我们可以测量一段时间内的哪个方法执行了耗时操作。如果对于TraceView还不是很了解,这里就不做详细介绍了。网上已经有很多介绍的博客了。具体的可以查看Trace官方文档,或者查看这篇博客正确使用Android性能分析工具——TraceView
(温馨提示:如果图太小看不清,chrome浏览器可以使用ctrl加鼠标滚轮放大网页查看)
开始测量
选中线程,开始测量
在手机做一些操作,然后停止测量(下图所示)
最后就会得到类似下面这样的测量结果
可以看到蓝色区域占了很长一段(下图所示)
点击蓝色区域后,下方列表会跳转到该蓝色区域对应的方法(如下图)
双击该方法,可以看到一个闪烁的动画,表示该方法所占用的时间段。可以看到非常长(如下图所示)
下面对各列做一个简要的介绍
现在已经可以看出,是在主线程做文件IO导致卡顿的。但是这里只是底层的方法,我们要追溯到我们所写的方法中去。通过不断的点击Parents中的方法就可以做到
最终我们跳转到了调用的方法
由上图可以看到,某一个Fragment的onSaveInstanceState中调用了CacheObject的putSerialObjList(),而这里面做的正是文件IO操作——对象序列化保存。
最近开发的界面有个奇怪的现象,界面本身逻辑很简单。就是查询本地数据库,并以ListView展示。但是就这个简单的界面,却偶尔会出现需要等待两秒左右的时间才能显示列表,在性能比较底的手机上还会更久。怀疑是主线程的执行了耗时操作操作。因为在等待列表出现的过程中,界面无法响应触控操作。既然原因是主线程执行了耗时操作,那就需要找出具体是哪个方法做了耗时操作。Android已经为我们提供了分析工具——TraceView,运用这个工具我们可以测量一段时间内的哪个方法执行了耗时操作。如果对于TraceView还不是很了解,这里就不做详细介绍了。网上已经有很多介绍的博客了。具体的可以查看Trace官方文档,或者查看这篇博客正确使用Android性能分析工具——TraceView
(温馨提示:如果图太小看不清,chrome浏览器可以使用ctrl加鼠标滚轮放大网页查看)
开始测量
选中线程,开始测量
在手机做一些操作,然后停止测量(下图所示)
最后就会得到类似下面这样的测量结果
可以看到蓝色区域占了很长一段(下图所示)
点击蓝色区域后,下方列表会跳转到该蓝色区域对应的方法(如下图)
双击该方法,可以看到一个闪烁的动画,表示该方法所占用的时间段。可以看到非常长(如下图所示)
下面对各列做一个简要的介绍
现在已经可以看出,是在主线程做文件IO导致卡顿的。但是这里只是底层的方法,我们要追溯到我们所写的方法中去。通过不断的点击Parents中的方法就可以做到
最终我们跳转到了调用的方法
由上图可以看到,某一个Fragment的onSaveInstanceState中调用了CacheObject的putSerialObjList(),而这里面做的正是文件IO操作——对象序列化保存。
总结
可以看到,通过TraceView,我们可以轻松的找到耗时方法,从而对App性能进行优化。相关文章推荐
- android TraceView使用以及listview 的性能优化测试(二)
- Android性能优化之TraceView和Lint使用详解
- Android 性能优化:使用 TraceView 找到卡顿的元凶
- Android 性能优化:使用 TraceView 找到卡顿的元凶
- android TraceView使用以及listview 的性能优化测试(一) .
- android TraceView使用以及listview 的性能优化测试(一)
- Android 性能优化之TraceView的使用
- Android 性能优化:使用 TraceView 找到卡顿的元凶
- Android 性能优化 二 TraceView工具的使用
- Android 性能优化 之 TraceView工具的使用
- Android 中性能优化工具之TraceView使用总结
- android TraceView使用以及listview 的性能优化测试(一)
- Android 性能优化 二 TraceView工具的使用
- Android 性能优化 二 TraceView工具的使用
- Android 性能优化 TraceView工具的使用
- Android性能优化之TraceView和Lint使用详解
- Android 性能优化:使用 TraceView 找到卡顿的元凶
- Android TraceView和Lint使用详解及性能优化
- android TraceView使用以及listview 的性能优化测试(二)
- Android性能优化之TraceView和Lint使用详解