毕业到现在,做了一年多的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如下图:

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

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

大致的步骤也就这样吧!

更多相关文章

  1. Android(安卓)切换系统语言源码分析
  2. 提升Android应用开发性能的十大要点(1)
  3. Android(安卓)UI设计之自定义SwitchButton开关,实现类似IOS中UISw
  4. 仿小米和iphone日历效果,基于Android(安卓)week view
  5. 【译】利用多线程提高程序性能(for Android)
  6. android APP性能优化总结
  7. Android使用ViewPager实现左右循环滑动及轮播效果
  8. Android(安卓)Scroll分析(一)
  9. Android软键盘(三)自动弹出键盘的现象

随机推荐

  1. TextView常用属性
  2. 怎样做出一个dialog样式的activity
  3. Android(安卓)SDK/Android(安卓)NDK/Andr
  4. RelativeLayout的常用属性
  5. android 按钮宽度按比例
  6. 系统自带样式Android:theme
  7. Android中的颜色
  8. android:inputType参数类型说明
  9. android 一行两个按钮居中 布局
  10. Android之布局属性归纳