Android 4.1性能分析的一般步骤(二)

  毕业到现在,做了一年多的Android了,一直都在负责性能这方面,感觉这方面的东西太杂了,要学的很多,要了解的也很多,而且没有一个系统的分析方法,最近一直都在玩systrace,结合自己以前学的东西,总结归纳,似乎有了点入门的感觉。

  性能大的方向有响应时间及吞吐量,Android这种智能终端上,一般响应时间比较多,主要是系统的流畅性。以前看到哪个地方不流程,都只能去打LOG分析,这个方法太低效了,不仅要明白流程,而且要在代码里添加LOG,相当低效,究其原因,还是Android没有怎个系统级的性能分析工具,不能想Linuxe kernel的oprofile跟perf一样,不能知道一段时间内函数的调用次数及时间,但Android 4.1上添加了一个systrace以后,就是为了解决这个问题。对于使用systrace的一般步骤,可以参考http://blog.csdn.net/oujunli/article/details/8138172

  既然有是分析性能,首先要确定是的是否有卡顿的现象。以滑动列表为例,看是否流畅,可以查看每帧所发的时间,具体方式是

  1、打开设置-》开发者选项-》GPU呈现模式分析。

  2、滑动列表后,使用adb shell dumpsys gfxinfo。

  3、得到Profile data in ms这三列数据,Excel做出表格,看是否有时间大于16ms(原因是Android 4.1以后加了vsync,保证每帧刷新时间为16ms),实现代码在HardwareRenderer.java中,如下图:

 

      

   然后使用systrace分析大于16ms的时候,systrace见http://blog.csdn.net/oujunli/article/details/8138172,最后使用traceview分析到底阻塞在什么地方,traceview如下图:

Android 4.1性能分析的一般步骤(二)_第1张图片

 

 

  traceview使用方法见下面的连接:

http://developer.android.com/tools/debugging/debugging-ui.html

  大致的步骤也就这样吧!

 

 

 

你可能感兴趣的:(Android 4.1性能分析的一般步骤(二))